From 591fa095aa86f15fd43a3969f63ea85a0bb0889c Mon Sep 17 00:00:00 2001 From: friendica Date: Sun, 13 Nov 2011 15:45:08 -0800 Subject: [PATCH] tumblr post addon --- tumblr.tgz | Bin 0 -> 2023 bytes tumblr/tumblr.css | 16 +++++ tumblr/tumblr.php | 179 ++++++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 195 insertions(+) create mode 100644 tumblr.tgz create mode 100644 tumblr/tumblr.css create mode 100644 tumblr/tumblr.php diff --git a/tumblr.tgz b/tumblr.tgz new file mode 100644 index 0000000000000000000000000000000000000000..e91e516142b1837da0ccc1f7374380c0350d672c GIT binary patch literal 2023 zcmVrw#v?Va$H8cHb~YSNPM)5g9t=k(`2PSV_o|g1X(9**I9L;J$@mouZ=s8q zle5vYXV1QbPG4|{%>UWH<9HR{gAD25v$OFn{vVBplX1!aC+Pq2>1cca!+X%BG5+WN zKYxKf?{=LhPrC2~ek5x;g?B0#;7ybW_&N$h>WPTU<=-ezSQJiSbUc*LFH^CK_!M5V zOA4=z0pWZlL_Bqz+@!}|w02@1Em%OEH4H-c< zmn;#K&sR}&*|TF*XdXl!3G4wB!zR8Tg-#=qk;vA-CC>iyHs~-CY{Bp`jQG01-vK(I zp??eLACZ`cRBR%CnUpl%0aSA)w*Y&_DJWeC7A}*$6xJ-eVk_%OfZee(78KC^*l=m4-U0pJIQe6@naXB^y~l@S@c7U*zGjQw zBT!D7rwQe~e!pw-f>V+55MxF@914U{5?}^PD&{fjykN^-nRlR7vIn-&May8JxFSKX zKfoC+{9EvxzV)+Ay)C3r5!;-;s(^R z;kcyZG1#bIic}*DoC~mXv2q-P=-I0Ji%1^^c3<+GJE+ZtohkXT)$b-awBHkH@x2`H z;IZQS5TzUvaTCyFMX6FmtSH1}Ng;_~L%|~l7yyQ)-SY))0QyE zC>d-E*3@TYW?{LLhL)4o@BH`BDt7y=+#c@DOF5^Zz+Dr8yIQD?W$_4Cgfr>Jq}W#G zSAW0k$XIpIsYo?AcgAJLim^Q3TXHRB3Z#l6CFr}A>13%T#mQ*jrVHfCsyzUsiUMbQ_ z7x^Ygmn<~ODUiCvtdx}`7WHgfeY2n_WGY8ZOv%)&%TVR3Y-=x|1UH}8wQUwNL9@Hf za*h_OnKi5C%^=#_P&rhobkz=lf<#+OnW~yXs$6|ulbP(;-DEjOi^-f6zAZS9rnY0JHJw}TDVb?TsynH;h*mx1IPh-864kn5 zu)26m-hhjp--?7wjDE~U>=UC6V9%&p1x(5~Let6LauIyCSWwj^zI^jN;I&jOXU;!# z-`kQAb;BL!J+)k_ci!;#-%zmwJeq;zPnp_UonJ1+oLymKip?`Js|g|%sY$C{-2mGu z?fRX&)KYtwH62-dSb#o$3^LGvdG+(JuZmdL#4^@jKpt+I=zWdoLmxZIVc%@8AR{rG zC)jvODxZ;`Zmz@ zvu#aln_b!4s!QlsLRKpwk$k*6;?=R_|8hVm5|2}okvy7Z@g(Ds`elV18+?Qp9*%#t zE#{Wp!di|(6TvEgn;dss81mTPQfThHD{KKNUlTM4cK1sJu=Tsr&1Q3KE|1aL!8mj_ z9F1q27_F+0p;^-ezHmSYX5KqShx4)M~z=g1}5=1cC|7Gr8JRhRL2k$mA?NViuZKWWl2~e8U-r zAoB>iUE|;ZtYB= + */ + +function tumblr_install() { + register_hook('post_local', 'addon/tumblr/tumblr.php', 'tumblr_post_local'); + register_hook('notifier_normal', 'addon/tumblr/tumblr.php', 'tumblr_send'); + register_hook('jot_networks', 'addon/tumblr/tumblr.php', 'tumblr_jot_nets'); + register_hook('connector_settings', 'addon/tumblr/tumblr.php', 'tumblr_settings'); + register_hook('connector_settings_post', 'addon/tumblr/tumblr.php', 'tumblr_settings_post'); + +} +function tumblr_uninstall() { + unregister_hook('post_local', 'addon/tumblr/tumblr.php', 'tumblr_post_local'); + unregister_hook('notifier_normal', 'addon/tumblr/tumblr.php', 'tumblr_send'); + unregister_hook('jot_networks', 'addon/tumblr/tumblr.php', 'tumblr_jot_nets'); + unregister_hook('connector_settings', 'addon/tumblr/tumblr.php', 'tumblr_settings'); + unregister_hook('connector_settings_post', 'addon/tumblr/tumblr.php', 'tumblr_settings_post'); +} + + +function tumblr_jot_nets(&$a,&$b) { + if(! local_user()) + return; + + $tmbl_post = get_pconfig(local_user(),'tumblr','post'); + if(intval($tmbl_post) == 1) { + $tmbl_defpost = get_pconfig(local_user(),'tumblr','post_by_default'); + $selected = ((intval($tmbl_defpost) == 1) ? ' checked="checked" ' : ''); + $b .= '
' + . t('Post to Tumblr') . '
'; + } +} + + +function tumblr_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(),'tumblr','post'); + + $checked = (($enabled) ? ' checked="checked" ' : ''); + + $def_enabled = get_pconfig(local_user(),'tumblr','post_by_default'); + + $def_checked = (($def_enabled) ? ' checked="checked" ' : ''); + + $tmbl_username = get_pconfig(local_user(), 'tumblr', 'tumblr_username'); + $tmbl_password = get_pconfig(local_user(), 'tumblr', 'tumblr_password'); + + + /* Add some HTML to the existing form */ + + $s .= '
'; + $s .= '

' . t('Tumblr Post Settings') . '

'; + $s .= '
'; + $s .= ''; + $s .= ''; + $s .= '
'; + + $s .= '
'; + $s .= ''; + $s .= ''; + $s .= '
'; + + $s .= '
'; + $s .= ''; + $s .= ''; + $s .= '
'; + + $s .= '
'; + $s .= ''; + $s .= ''; + $s .= '
'; + + /* provide a submit button */ + + $s .= '
'; + +} + + +function tumblr_settings_post(&$a,&$b) { + + if(x($_POST,'tumblr-submit')) { + + set_pconfig(local_user(),'tumblr','post',intval($_POST['tumblr'])); + set_pconfig(local_user(),'tumblr','post_by_default',intval($_POST['tumblr_bydefault'])); + set_pconfig(local_user(),'tumblr','tumblr_username',trim($_POST['tumblr_username'])); + set_pconfig(local_user(),'tumblr','tumblr_password',trim($_POST['tumblr_password'])); + + } + +} + +function tumblr_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; + + $tmbl_post = intval(get_pconfig(local_user(),'tumblr','post')); + + $tmbl_enable = (($tmbl_post && x($_REQUEST,'tumblr_enable')) ? intval($_REQUEST['tumblr_enable']) : 0); + + if($_REQUEST['api_source'] && intval(get_pconfig(local_user(),'tumblr','post_by_default'))) + $tmbl_enable = 1; + + if(! $tmbl_enable) + return; + + if(strlen($b['postopts'])) + $b['postopts'] .= ','; + $b['postopts'] .= 'tumblr'; +} + + + + +function tumblr_send(&$a,&$b) { + + if($b['deleted'] || $b['private'] || ($b['created'] !== $b['edited'])) + return; + + if(! strstr($b['postopts'],'tumblr')) + return; + + if($b['parent'] != $b['id']) + return; + + + $tmbl_username = get_pconfig($b['uid'],'tumblr','tumblr_username'); + $tmbl_password = get_pconfig($b['uid'],'tumblr','tumblr_password'); + $tmbl_blog = 'http://www.tumblr.com/api/write'; + + if($tmbl_username && $tmbl_password && $tmbl_blog) { + + require_once('include/bbcode.php'); + + $params = array( + 'email' => $tmbl_username, + 'password' => $tmbl_password, + 'title' => (($b['title']) ? $b['title'] : t('Post from Friendica')), + 'type' => 'regular', + 'format' => 'html', + 'generator' => 'Friendica', + 'body' => bbcode($b['body']) + ); + + $x = post_url($tmbl_blog,$params); + $ret_code = $a->get_curl_code(); + if($ret_code == 201) + logger('tumblr_send: success'); + elseif($ret_code == 403) + logger('tumblr_send: authentication failure'); + else + logger('tumblr_send: general error: ' . print_r($x,true)); + + } +} +