From bf09c24e1588ff986ef208d773bc9cddc7002342 Mon Sep 17 00:00:00 2001 From: tony baldwin Date: Tue, 10 Apr 2012 08:44:31 -0400 Subject: [PATCH] added Random Planets, Empirial Version Also, "blogger", but that is still in progress and untested. --- blogger/blogger.css | 16 ++++ blogger/blogger.php | 200 ++++++++++++++++++++++++++++++++++++++++++++ planets.tar.gz | Bin 0 -> 10240 bytes planets/planets.css | 14 ++++ planets/planets.php | 181 +++++++++++++++++++++++++++++++++++++++ 5 files changed, 411 insertions(+) create mode 100755 blogger/blogger.css create mode 100755 blogger/blogger.php create mode 100644 planets.tar.gz create mode 100755 planets/planets.css create mode 100755 planets/planets.php diff --git a/blogger/blogger.css b/blogger/blogger.css new file mode 100755 index 00000000..4e2294e5 --- /dev/null +++ b/blogger/blogger.css @@ -0,0 +1,16 @@ + +#blogger-enable-label, #blogger-username-label, #blogger-password-label, #blogger-bydefault-label { + float: left; + width: 200px; + margin-top: 10px; +} + +#blogger-checkbox, #blogger-username, #blogger-password, #blogger-bydefault { + float: left; + margin-top: 10px; +} + +#blogger-submit { + margin-top: 15px; +} + diff --git a/blogger/blogger.php b/blogger/blogger.php new file mode 100755 index 00000000..5c9b4399 --- /dev/null +++ b/blogger/blogger.php @@ -0,0 +1,200 @@ + + */ + +function blpost_install() { + register_hook('post_local', 'addon/blpost/blpost.php', 'blpost_post_local'); + register_hook('notifier_normal', 'addon/blpost/blpost.php', 'blpost_send'); + register_hook('jot_networks', 'addon/blpost/blpost.php', 'blpost_jot_nets'); + register_hook('connector_settings', 'addon/blpost/blpost.php', 'blpost_settings'); + register_hook('connector_settings_post', 'addon/blpost/blpost.php', 'blpost_settings_post'); + +} +function blpost_uninstall() { + unregister_hook('post_local', 'addon/blpost/blpost.php', 'blpost_post_local'); + unregister_hook('notifier_normal', 'addon/blpost/blpost.php', 'blpost_send'); + unregister_hook('jot_networks', 'addon/blpost/blpost.php', 'blpost_jot_nets'); + unregister_hook('connector_settings', 'addon/blpost/blpost.php', 'blpost_settings'); + unregister_hook('connector_settings_post', 'addon/blpost/blpost.php', 'blpost_settings_post'); + + // obsolete - remove + unregister_hook('post_local_end', 'addon/blpost/blpost.php', 'blpost_send'); + unregister_hook('plugin_settings', 'addon/blpost/blpost.php', 'blpost_settings'); + unregister_hook('plugin_settings_post', 'addon/blpost/blpost.php', 'blpost_settings_post'); + +} + + +function blpost_jot_nets(&$a,&$b) { + if(! local_user()) + return; + + $bl_post = get_pconfig(local_user(),'blpost','post'); + if(intval($bl_post) == 1) { + $bl_defpost = get_pconfig(local_user(),'blpost','post_by_default'); + $selected = ((intval($bl_defpost) == 1) ? ' checked="checked" ' : ''); + $b .= '
' + . t('Post to blogger') . '
'; + } +} + + +function blpost_settings(&$a,&$s) { + + if(! local_user()) + return; + + /* Add our stylesheet to the page so we can make our settings look nice */ + + $a->page['htmlhead'] .= '' . "\r\n"; + + /* Get the current state of our config variables */ + + $enabled = get_pconfig(local_user(),'blpost','post'); + + $checked = (($enabled) ? ' checked="checked" ' : ''); + + $def_enabled = get_pconfig(local_user(),'blpost','post_by_default'); + + $def_checked = (($def_enabled) ? ' checked="checked" ' : ''); + + $bl_username = get_pconfig(local_user(), 'blpost', 'bl_username'); + $bl_password = get_pconfig(local_user(), 'blpost', 'bl_password'); + $bl_blog = get_pconfig(local_user(), 'blpost', 'bl_blog'); + + + /* Add some HTML to the existing form */ + + $s .= '
'; + $s .= '

' . t('Blogger Post Settings') . '

'; + $s .= '
'; + $s .= ''; + $s .= ''; + $s .= '
'; + + $s .= '
'; + $s .= ''; + $s .= ''; + $s .= '
'; + + $s .= '
'; + $s .= ''; + $s .= ''; + $s .= '
'; + + $s .= '
'; + $s .= ''; + $s .= ''; + $s .= '
'; + + $s .= '
'; + $s .= ''; + $s .= ''; + $s .= '
'; + + /* provide a submit button */ + + $s .= '
'; + +} + + +function blpost_settings_post(&$a,&$b) { + + if(x($_POST,'blpost-submit')) { + + set_pconfig(local_user(),'blpost','post',intval($_POST['blpost'])); + set_pconfig(local_user(),'blpost','post_by_default',intval($_POST['bl_bydefault'])); + set_pconfig(local_user(),'blpost','bl_username',trim($_POST['bl_username'])); + set_pconfig(local_user(),'blpost','bl_password',trim($_POST['bl_password'])); + set_pconfig(local_user(),'blpost','bl_blog',trim($_POST['bl_blog'])); + + } + +} + +function blpost_post_local(&$a,&$b) { + + // This can probably be changed to allow editing by pointing to a different API endpoint + + if($b['edit']) + return; + + if((! local_user()) || (local_user() != $b['uid'])) + return; + + if($b['private'] || $b['parent']) + return; + + $bl_post = intval(get_pconfig(local_user(),'blpost','post')); + + $bl_enable = (($bl_post && x($_REQUEST,'blpost_enable')) ? intval($_REQUEST['blpost_enable']) : 0); + + if($_REQUEST['api_source'] && intval(get_pconfig(local_user(),'blpost','post_by_default'))) + $bl_enable = 1; + + if(! $bl_enable) + return; + + if(strlen($b['postopts'])) + $b['postopts'] .= ','; + $b['postopts'] .= 'blpost'; +} + + + + +function blpost_send(&$a,&$b) { + + if($b['deleted'] || $b['private'] || ($b['created'] !== $b['edited'])) + return; + + if(! strstr($b['postopts'],'blpost')) + return; + + if($b['parent'] != $b['id']) + return; + + + $bl_username = xmlify(get_pconfig($b['uid'],'blpost','bl_username')); + $bl_password = xmlify(get_pconfig($b['uid'],'blpost','bl_password')); + $bl_blog = get_pconfig($b['uid'],'blpost','bl_blog'); + + if($bl_username && $bl_password && $bl_blog) { + + require_once('include/bbcode.php'); + + $title = '' . (($b['title']) ? $b['title'] : t('Post from Friendica')) . ''; + $post = $title . bbcode($b['body']); + $post = xmlify($post); + + $xml = <<< EOT + + + blogger.newPost + + + + $bl_username + $bl_password + $post + 1 + + + +EOT; + + logger('blpost: data: ' . $xml, LOGGER_DATA); + + if($bl_blog !== 'test') + $x = post_url($bl_blog,$xml); + logger('posted to blogger: ' . (($x) ? $x : ''), LOGGER_DEBUG); + + } +} + diff --git a/planets.tar.gz b/planets.tar.gz new file mode 100644 index 0000000000000000000000000000000000000000..30f81dece54bf60586b90d7cc3038cbe47c44d0b GIT binary patch literal 10240 zcmeHLYfl?V7Ue7aiaQ=FZL-G3KoW@oA|}a9qD&qNnH{Z|$SQZ2-Mw^owW_KiWR?Fu z=hnm6Jm!(jd|0g!(2uG*b)VZTO6v}U;WH~wtn=h1@)YkbAe^{aa~8a>(@ZSU;u zKEn8Dw6il>qX&PZOmpbgSfPp5v{H8d@|K%F8oy=9|H7*#_&;0+P2PNUvDv|Q`+qcg z_;7D++5fwHqun*y{_2w40{DOK|AWWy_{Q-5{SCTLuSF&I>7A%ERS_a0mHhUpG^s8c zTc~=UPDIs|l77&Itg|8&nAXmUdML6?)dM<_mIUbq1iHv&O^q_PsAmJl`=`{#VT}gc z{CwQnTk9hUMp95n#3<)hs z%UNNp)H0)s!scXiN#+u7Dgr#7c>W-_sj8>Nj3b{Inq}mXuGl*AL#K&fmV7u(oSw-C zI;6yFKI;4HPG8z|kbDPR;E^F{Y6<)QI^KN@IbtG4M&WN8q`#l zy-k|7b;=lhDpe`~zzTR#hCJ2%V+E2vuZG2;e!?ROZ_A4F1F5OI_rBtpFBV?#Of4&Q z4*01?0Pr$zfHtU5!k%7sUL0(BQIsXI67zk=ZGBVrVAkQr#zs_!LyU{hf~No3*jVRa zTnE1U_ome_Tctvr!IRiXSS!-pdr?d2L)8r2g7=VmT4-ZgpMN8}snLbfWEB~!G=dNT z%4RHGP`X9D5Q448h#BWfo%Iq9+OeCO^rN|N;Y%Kjnz$vrI@$d0N|h*BO&2m*lpjK| zmA&K1NXtoLs1Y;SCnOPx()cM3;%WjUBi@GGu&@Az4{A!aM0~iVZIj{Ft!s_cFoT>T zF6vZzOWmck%ja?2>Q8GvUjW5#7;+hN%vSo#z7LHqA!We^_!r}F8a&f;duW;)c@A;8|%^Yk*Kcu{U)`{ z6SCJ8eY)2zK>wR`Jp_(H&s-NS1d1+-fVy}!(^oJ~BqQ+SxjK`Xr=nuo`^IZCW;*C?ZbGslN{yp;93CA#4i&h zGR&13#~rS4U?5OFc3Ve|+g8`ia)5Sb3c&QuAvrsrCT)==A9y3)>8X-jivZK01Au*@ zx~D%_{4uL=4K#o>Fn4V|4q!sfa{kKUFPPFz;KCHeN2gF>4Y5~LB{2YB$C2KJ$<$_BB zz~++jp#-|Hc=NK)Wdk7>y^o;FloQR^b~^Q8`5fGy7}S1W43C^R3?+5gRL8Q>14|ozQA1KmjPUgG_Zz zi@Jl}8AKCx(ofzCtB{Qnw@<}P zO$2VXmbwy>ADeF918wJa)C zWDepMExvCj=zz84_fOFp5`lg*+A>(dY0Qv`wHog3xfykha zB2(4YwinUEZjtNat}zV99NP2A{Sg-LM-r-;-*Su2YF7hy_B_sfIp$&(RRq6H(YA-?9?krfS$@Yby?Zdqy{_@?i3`TNY{G{m ziaQ&7SxS?G85Xx>*M&oY^E+3vxqPl?sf$#`BDQtJXO7b(w^f--fvQad9B~iIqCUf^ zusrNs?b0E#myJB^SozToQ)4=m<7{!*Noe3s&0Gm5!pK(h;dMZX|2i-X93HO&EafFh zhbjp=JnX>c9U30-%g(R**Sf=L0!@Ep)le4F7F33^&ehwM7*;A&<#VA6F0DZ$@9_+Y zdS_j}86SuOi#P4b$>nXA;{>-ueS`3`3JR^BxR&#=-)| zEwaN-F!+{NV(UVS2CdgJcqt~bylu7{Kw(z;3drd_Q6B*TA3>mJuAQMMm(P+Yl|xt( ztf*ZBuprtTF~ro>Gk>v|@7y8eZHwm-+Z!YLH7eMCj@zdv~q@x3`lg|i0+Hqf7=CTL2>fCU3oE=mP zCOz@o<~+;U;03=D|MSKzUopS<)h#*s#aMSO{Qd90+uNgukK*^=-R->*zW?v;ZSSnU z|K4TKulXKD@7rrM;TZvCd5ZIb-KSDcEfVaa$ZWn(JKNjMM?6+Sl?7H7SXp3Yft3YT7FbzeWr39i{)7d716~Na AzyJUM literal 0 HcmV?d00001 diff --git a/planets/planets.css b/planets/planets.css new file mode 100755 index 00000000..668b65bc --- /dev/null +++ b/planets/planets.css @@ -0,0 +1,14 @@ + + + +#planets-enable-label { + float: left; + width: 200px; + margin-bottom: 25px; +} + +#planets-checkbox { + float: left; +} + + diff --git a/planets/planets.php b/planets/planets.php new file mode 100755 index 00000000..62ba675b --- /dev/null +++ b/planets/planets.php @@ -0,0 +1,181 @@ + + * + * + * + * + * Addons are registered with the system in the + * .htconfig.php file. + * + * $a->config['system']['addon'] = 'plugin1,plugin2,etc.'; + * + * When registration is detected, the system calls the plugin + * name_install() function, located in 'addon/name/name.php', + * where 'name' is the name of the addon. + * If the addon is removed from the configuration list, the + * system will call the name_uninstall() function. + * + */ + + +function planets_install() { + + /** + * + * Our demo plugin will attach in three places. + * The first is just prior to storing a local post. + * + */ + + register_hook('post_local', 'addon/planets/planets.php', 'planets_post_hook'); + + /** + * + * Then we'll attach into the plugin settings page, and also the + * settings post hook so that we can create and update + * user preferences. + * + */ + + register_hook('plugin_settings', 'addon/planets/planets.php', 'planets_settings'); + register_hook('plugin_settings_post', 'addon/planets/planets.php', 'planets_settings_post'); + + logger("installed planets"); +} + + +function planets_uninstall() { + + /** + * + * uninstall unregisters any hooks created with register_hook + * during install. It may also delete configuration settings + * and any other cleanup. + * + */ + + unregister_hook('post_local', 'addon/planets/planets.php', 'planets_post_hook'); + unregister_hook('plugin_settings', 'addon/planets/planets.php', 'planets_settings'); + unregister_hook('plugin_settings_post', 'addon/planets/planets.php', 'planets_settings_post'); + + + logger("removed planets"); +} + + + +function planets_post_hook($a, &$item) { + + /** + * + * An item was posted on the local system. + * We are going to look for specific items: + * - A status post by a profile owner + * - The profile owner must have allowed our plugin + * + */ + + logger('planets invoked'); + + if(! local_user()) /* non-zero if this is a logged in user of this system */ + return; + + if(local_user() != $item['uid']) /* Does this person own the post? */ + return; + + if($item['parent']) /* If the item has a parent, this is a comment or something else, not a status post. */ + return; + + /* Retrieve our personal config setting */ + + $active = get_pconfig(local_user(), 'planets', 'enable'); + + if(! $active) + return; + + /** + * + * OK, we're allowed to do our stuff. + * Here's what we are going to do: + * load the list of timezone names, and use that to generate a list of world planets. + * Then we'll pick one of those at random and put it in the "location" field for the post. + * + */ + + $planets = array('Alderaan','Tatooine','Dagoba','Polis Massa','Coruscant','Hoth','Endor','Kamino','Rattatak','Mustafar','Iego','Geonosis','Felucia','Dantooine','Ansion','Artaru','Bespin','Boz Pity','Cato Neimoidia','Christophsis','Kashyyk','Kessel','Malastare','Mygeeto','Nar Shaddaa','Ord Mantell','Saleucami','Subterrel','Death Star','Teth','Tund','Utapau','Yavin'); +# $zones = timezone_identifiers_list(); +# foreach($zones as $zone) { +# if((strpos($zone,'/')) && (! stristr($zone,'US/')) && (! stristr($zone,'Etc/'))) +# $planets[] = str_replace('_', ' ',substr($zone,strpos($zone,'/') + 1)); +# } +# +# if(! count($planets)) +# return; + $planet = array_rand($planets,1); + $item['location'] = $planets[$planet]; + + return; +} + + + + +/** + * + * Callback from the settings post function. + * $post contains the $_POST array. + * We will make sure we've got a valid user account + * and if so set our configuration setting for this person. + * + */ + +function planets_settings_post($a,$post) { + if(! local_user()) + return; + if($_POST['planets-submit']) + set_pconfig(local_user(),'planets','enable',intval($_POST['planets'])); +} + + +/** + * + * Called from the Plugin Setting form. + * Add our own settings info to the page. + * + */ + + + +function planets_settings(&$a,&$s) { + + if(! local_user()) + return; + + /* Add our stylesheet to the page so we can make our settings look nice */ + + $a->page['htmlhead'] .= '' . "\r\n"; + + /* Get the current state of our config variable */ + + $enabled = get_pconfig(local_user(),'planets','enable'); + + $checked = (($enabled) ? ' checked="checked" ' : ''); + + /* Add some HTML to the existing form */ + + $s .= '
'; + $s .= '

' . t('Planets Settings') . '

'; + $s .= '
'; + $s .= ''; + $s .= ''; + $s .= '
'; + + /* provide a submit button */ + + $s .= '
'; + +} -- 2.39.5