From 4b35c8e1403c4a0aa1dc62149f93086454a0fe3d Mon Sep 17 00:00:00 2001 From: friendica Date: Mon, 27 Feb 2012 23:19:25 -0800 Subject: [PATCH 1/4] minor fixes --- wppost.tgz | Bin 2273 -> 2276 bytes wppost/wppost.php | 5 ++--- 2 files changed, 2 insertions(+), 3 deletions(-) diff --git a/wppost.tgz b/wppost.tgz index 6dad5c117973a78a07fc7ea29a3b82d21bed43aa..b5758f6e6c99366a5a5973d15c866826b072b12d 100755 GIT binary patch delta 2270 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 diff --git a/wppost/wppost.php b/wppost/wppost.php index 5c1482e7..f0786166 100755 --- a/wppost/wppost.php +++ b/wppost/wppost.php @@ -174,8 +174,7 @@ function wppost_send(&$a,&$b) { $post = xmlify($post); $xml = <<< EOT - - + blogger.newPost @@ -194,7 +193,7 @@ EOT; if($wp_blog !== 'test') $x = post_url($wp_blog,$xml); - logger('posted to wordpress: ' . ($x) ? $x : ''); + logger('posted to wordpress: ' . (($x) ? $x : ''), LOGGER_DEBUG); } } From 23e7a30108da87bfe42a39e9a4aa9f02034664bc Mon Sep 17 00:00:00 2001 From: Tony Baldwin Date: Tue, 28 Feb 2012 02:27:12 -0500 Subject: [PATCH 2/4] added livejournal plugin --- ljpost/ljpost.php | 221 ++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 221 insertions(+) create mode 100644 ljpost/ljpost.php diff --git a/ljpost/ljpost.php b/ljpost/ljpost.php new file mode 100644 index 00000000..de7567ad --- /dev/null +++ b/ljpost/ljpost.php @@ -0,0 +1,221 @@ + +* Author: Tony Baldwin +*/ + +function ljpost_install() { + register_hook('post_local', 'addon/ljpost/ljpost.php', 'ljpost_post_local'); + register_hook('notifier_normal', 'addon/ljpost/ljpost.php', 'ljpost_send'); + register_hook('jot_networks', 'addon/ljpost/ljpost.php', 'ljpost_jot_nets'); + register_hook('connector_settings', 'addon/ljpost/ljpost.php', 'ljpost_settings'); + register_hook('connector_settings_post', 'addon/ljpost/ljpost.php', 'ljpost_settings_post'); + +} +function ljpost_uninstall() { + unregister_hook('post_local', 'addon/ljpost/ljpost.php', 'ljpost_post_local'); + unregister_hook('notifier_normal', 'addon/ljpost/ljpost.php', 'ljpost_send'); + unregister_hook('jot_networks', 'addon/ljpost/ljpost.php', 'ljpost_jot_nets'); + unregister_hook('connector_settings', 'addon/ljpost/ljpost.php', 'ljpost_settings'); + unregister_hook('connector_settings_post', 'addon/ljpost/ljpost.php', 'ljpost_settings_post'); + +// obsolete - remove + unregister_hook('post_local_end', 'addon/ljpost/ljpost.php', 'ljpost_send'); + unregister_hook('plugin_settings', 'addon/ljpost/ljpost.php', 'ljpost_settings'); + unregister_hook('plugin_settings_post', 'addon/ljpost/ljpost.php', 'ljpost_settings_post'); + +} + + + + +function ljpost_jot_nets(&$a,&$b) { + if(! local_user()) + return; + + $lj_post = get_pconfig(local_user(),'ljpost','post'); + if(intval($lj_post) == 1) { + $wp_defpost = get_pconfig(local_user(),'ljpost','post_by_default'); + $selected = ((intval($wp_defpost) == 1) ? ' checked="checked" ' : ''); + $b .= '
' + . t('Post to Livejournal') . '
'; + } +} + + +function ljpost_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(),'ljpost','post'); + + $checked = (($enabled) ? ' checked="checked" ' : ''); + + $def_enabled = get_pconfig(local_user(),'ljpost','post_by_default'); + + $def_checked = (($def_enabled) ? ' checked="checked" ' : ''); + +$lj_username = get_pconfig(local_user(), 'ljpost', 'lj_username'); +$lj_password = get_pconfig(local_user(), 'ljpost', 'lj_password'); +$lj_blog = get_pconfig(local_user(), 'ljpost', 'lj_blog'); + + + /* Add some HTML to the existing form */ + + $s .= '
'; + $s .= '

' . t('LiveJournal 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 ljpost_settings_post(&$a,&$b) { + +if(x($_POST,'ljpost-submit')) { + +set_pconfig(local_user(),'ljpost','post',intval($_POST['ljpost'])); +set_pconfig(local_user(),'ljpost','post_by_default',intval($_POST['lj_bydefault'])); +set_pconfig(local_user(),'ljpost','lj_username',trim($_POST['lj_username'])); +set_pconfig(local_user(),'ljpost','lj_password',trim($_POST['lj_password'])); +set_pconfig(local_user(),'ljpost','lj_blog',trim($_POST['lj_blog'])); + +} + +} + +function ljpost_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; + + $lj_post = intval(get_pconfig(local_user(),'ljpost','post')); + +$lj_enable = (($lj_post && x($_REQUEST,'ljpost_enable')) ? intval($_REQUEST['ljpost_enable']) : 0); + +if($_REQUEST['api_source'] && intval(get_pconfig(local_user(),'ljpost','post_by_default'))) +$lj_enable = 1; + + if(! $lj_enable) + return; + + if(strlen($b['postopts'])) + $b['postopts'] .= ','; + $b['postopts'] .= 'ljpost'; +} + + + + +function ljpost_send(&$a,&$b) { + + if($b['deleted'] || $b['private'] || ($b['created'] !== $b['edited'])) + return; + + if(! strstr($b['postopts'],'ljpost')) + return; + + if($b['parent'] != $b['id']) + return; + + +$lj_username = get_pconfig($b['uid'],'ljpost','lj_username'); +$lj_password = get_pconfig($b['uid'],'ljpost','lj_password'); +$lj_blog = get_pconfig($b['uid'],'ljpost','lj_blog'); + +if($lj_username && $lj_password && $lj_blog) { + +require_once('include/bbcode.php'); + +$title = '' . (($b['title']) ? $b['title'] : t('Post from Friendica')) . ''; +$post = $title . bbcode($b['body']); +$post = xmlify($post); + +$year = date('Y') +$month = date('F') +$day = date('l') +$hour = date('H') +$min = date('i') + +$xml = <<< EOT + + +LJ.XMLRPC.postevent + + +year$year +mon$month +day$day +hour$hour +min$min +usejournal$lj_blog +event$post +username$lj_username +password$lj_password +subjectfriendica post +lineendingsunix +ver1 +props + +useragentFriendica +taglistfriendica,crosspost + + + + + +EOT; + +logger('ljpost: data: ' . $xml, LOGGER_DATA); + +if($lj_blog !== 'test') +$x = post_url($lj_blog,$xml); +logger('posted to livejournal: ' . ($x) ? $x : ''); + + } +} From 7740ca3907ff1ffe50d293997fb57dfa4e59e887 Mon Sep 17 00:00:00 2001 From: Tony Baldwin Date: Tue, 28 Feb 2012 02:34:05 -0500 Subject: [PATCH 3/4] added the tarball --- ljpost.tar.gz | Bin 0 -> 2267 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 ljpost.tar.gz diff --git a/ljpost.tar.gz b/ljpost.tar.gz new file mode 100644 index 0000000000000000000000000000000000000000..b3f354fc337df7e5ff9f9f049aa1bf3b580a1d5a GIT binary patch literal 2267 zcmV<12qgC(iwFo;gG^5V18iz=Z*z1mbYXG;?OJVb+c*-=*YmGng`lzv+ltyvx|iAx zy4`H|7U?zDW)F903PUfn#Y7f;66M6$?SJ1Hilk&)PUK62!(mGVur=g7Gn_XL<-}KW zo(X5~F~ApNXsDA3P=ejSSzi?sV$lW_|UHAFn9yxqet<=af;iZJ^37#zP zT6f?4|LKSe{}&(qc{G0n8R+1n@4nmOfA{5)``q~d;0WmM3-|D7j~qOLE*s-d?*G9F z_`KC}o;_V(rot*BnnkRi zQp1K`1vaPEn&e4`E}ctYhoUFvE3!M7lu4> zHgXB46kKI}=T#kG!UdZ!cuaUYYl@oDB;0~`#l<+G;)bW!Su-%jk!=ACbQFM8A;7y0 zVa@8Mu+mn$VHYeQp!H?Lk$JN2$~^h%&fI`}usb&pAMVf%$gkzn2EY$;s^bvuXFR5Y zk{$%mj4$YYo*bhsA8z$|oKIQuwe7Qp`oM_Cu^#o>_wA?qUiay~uVbH0+D}MfAgIV` zyVH^6A~6M&a6rU|{rF0XAVV^x5b@yA37fX7oL!}p-LZy8FoT_#QIR_3XHL?p`zevZgyIqHea(jkG-^uR|9HC)I zKrG3`GKTY#QmGA`on-D!Dakmwp(OAUGV|bomMfK15WufV!U9V0NR{UFdLv}}WJh8a zN7M`L&xL_wmRy7EcxaV^EM-$cZ-oL}$uOcSFVJSmrX63F5?}oc& zN5QH>Pe!Z8xi>lsR*2~F&XU*CrbJp%qyl}vGMLyX3j_WxMTpS^zZn+9khKA_3y!lp z_p%0|Su_MTlsmBFa=C+QtY;i{@$<#IGacsi7HT!NuM;@COP^;Og+a%C4{(EPOQ)t@ z8NHAp2PwVLQhzijM3LCI^wowK7V2`+D}2+tNxk`;rW>MS&!=(CdP%o%BWA|bE3MqA zT)NrzpUXo^YbcS{#TIq2BDO4scNIsgQUhgb>rljuUY8+@Ue)SBOg*rGsfKr%O@~}_ z!x@em)9E>@&aY*3?_w|mS*d)bvBu@JvY0eiHT`6r`?^NcN!HwGhNH%4dal-JWj^m> zGy|!ORz4fUm83PpnWFOuhQspG+-P!jjlqy!Yb>}flV3la?Pe>9Rv%o&)S7){MSTq0 zEY%^jgMkc7ot5;YF;(5$2!Bb;*|(F`4EmNr2K{Aa&00CDp059WNrU4FI?n|QDe*{_ z`!gnpp9=xqUXwGa;4s!Et6gg`YgPBGN!3bii1p|z(E~2{D5-_1F@V%g&9?4pS>;us zdR=Kj&wAV5AD_Sfc%ge5CD-oA1zE%1tE+DX66=$m{oH|8pdm)Ji`s-MW1%r;%uglI0@^;R_%=jHANysJ>Dm!$nf^cJ((=tZ({ZBUXfnqIlmjU|v zg@^q9J6YK=c`_u(oHJ>f6=tN*Q?`KH09;srQxZJXU`5W_U0Fp&<4b|=ri*s1XvHT5kW~(t?@^xv8jh-8M#p#I1=Cw^?{VcQw~a+>?*!4R5;D z`KAswR$O?~m}U2wwi~28%kHzUqjYXC1(c%xsLu>3m6FzKK~;nTT>SRjR%g*MR#5M_ zxUfOJ?2@zhZ{MDN82|YC;&tV8lII#8_qL#TT0^ykT3h_Gn8s#F7cqcM3y~F5Hnws3 p8o!X%-oKSc(5-o&`WJke|G)lEfN$g5_%{A*;}1Kp{X+mK001^3Y~cU^ literal 0 HcmV?d00001 From c76f70605f6a470b40f81ff6730509faec8cb66f Mon Sep 17 00:00:00 2001 From: friendica Date: Tue, 28 Feb 2012 00:12:18 -0800 Subject: [PATCH 4/4] add ljpost.css --- ljpost/ljpost.css | 16 ++++++++++++++++ ljpost/ljpost.php | 5 ----- wppost.tgz | Bin 2276 -> 2269 bytes 3 files changed, 16 insertions(+), 5 deletions(-) create mode 100755 ljpost/ljpost.css diff --git a/ljpost/ljpost.css b/ljpost/ljpost.css new file mode 100755 index 00000000..50a3d4a0 --- /dev/null +++ b/ljpost/ljpost.css @@ -0,0 +1,16 @@ + +#ljpost-enable-label, #ljpost-username-label, #ljpost-password-label, #ljpost-blog-label, #ljpost-bydefault-label { + float: left; + width: 200px; + margin-top: 10px; +} + +#ljpost-checkbox, #ljpost-username, #ljpost-password, #ljpost-blog, #ljpost-bydefault { + float: left; + margin-top: 10px; +} + +#ljpost-submit { + margin-top: 15px; +} + diff --git a/ljpost/ljpost.php b/ljpost/ljpost.php index de7567ad..a55a7bf4 100644 --- a/ljpost/ljpost.php +++ b/ljpost/ljpost.php @@ -23,11 +23,6 @@ function ljpost_uninstall() { unregister_hook('connector_settings', 'addon/ljpost/ljpost.php', 'ljpost_settings'); unregister_hook('connector_settings_post', 'addon/ljpost/ljpost.php', 'ljpost_settings_post'); -// obsolete - remove - unregister_hook('post_local_end', 'addon/ljpost/ljpost.php', 'ljpost_send'); - unregister_hook('plugin_settings', 'addon/ljpost/ljpost.php', 'ljpost_settings'); - unregister_hook('plugin_settings_post', 'addon/ljpost/ljpost.php', 'ljpost_settings_post'); - } diff --git a/wppost.tgz b/wppost.tgz index b5758f6e6c99366a5a5973d15c866826b072b12d..50e9234c628c5420149913152f874806d1fbb167 100755 GIT binary patch delta 2244 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 i&!6AQ>;1p=W44p62qTle2n-DW