X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=ljpost%2Fljpost.php;h=ec99f9ba9361585971ed4b12810d44230fd67828;hb=88ca2f5a1e83c2cd93c6b08863fdd361a3a9bd69;hp=14bac69e3a81cffd80380a19b6f5ae6c8872ce65;hpb=7949cf3f5332352065ff3730b9d0d3b47e223d11;p=friendica-addons.git diff --git a/ljpost/ljpost.php b/ljpost/ljpost.php index 14bac69e..ec99f9ba 100644 --- a/ljpost/ljpost.php +++ b/ljpost/ljpost.php @@ -1,27 +1,34 @@ * Author: Michael Johnston + * Author: Cat Gray */ +use Friendica\Content\Text\BBCode; +use Friendica\Core\Addon; +use Friendica\Core\L10n; +use Friendica\Core\PConfig; +use Friendica\Util\DateTimeFormat; +use Friendica\Util\Network; + 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'); + Addon::registerHook('post_local', 'addon/ljpost/ljpost.php', 'ljpost_post_local'); + Addon::registerHook('notifier_normal', 'addon/ljpost/ljpost.php', 'ljpost_send'); + Addon::registerHook('jot_networks', 'addon/ljpost/ljpost.php', 'ljpost_jot_nets'); + Addon::registerHook('connector_settings', 'addon/ljpost/ljpost.php', 'ljpost_settings'); + Addon::registerHook('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'); + Addon::unregisterHook('post_local', 'addon/ljpost/ljpost.php', 'ljpost_post_local'); + Addon::unregisterHook('notifier_normal', 'addon/ljpost/ljpost.php', 'ljpost_send'); + Addon::unregisterHook('jot_networks', 'addon/ljpost/ljpost.php', 'ljpost_jot_nets'); + Addon::unregisterHook('connector_settings', 'addon/ljpost/ljpost.php', 'ljpost_settings'); + Addon::unregisterHook('connector_settings_post', 'addon/ljpost/ljpost.php', 'ljpost_settings_post'); } @@ -30,12 +37,12 @@ function ljpost_jot_nets(&$a,&$b) { if(! local_user()) return; - $lj_post = get_pconfig(local_user(),'ljpost','post'); + $lj_post = PConfig::get(local_user(),'ljpost','post'); if(intval($lj_post) == 1) { - $lj_defpost = get_pconfig(local_user(),'ljpost','post_by_default'); + $lj_defpost = PConfig::get(local_user(),'ljpost','post_by_default'); $selected = ((intval($lj_defpost) == 1) ? ' checked="checked" ' : ''); $b .= '
' - . t('Post to LiveJournal') . '
'; + . L10n::t('Post to LiveJournal') . ''; } } @@ -51,45 +58,45 @@ function ljpost_settings(&$a,&$s) { /* Get the current state of our config variables */ - $enabled = get_pconfig(local_user(),'ljpost','post'); + $enabled = PConfig::get(local_user(),'ljpost','post'); $checked = (($enabled) ? ' checked="checked" ' : ''); - $def_enabled = get_pconfig(local_user(),'ljpost','post_by_default'); + $def_enabled = PConfig::get(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_username = PConfig::get(local_user(), 'ljpost', 'lj_username'); + $lj_password = PConfig::get(local_user(), 'ljpost', 'lj_password'); /* Add some HTML to the existing form */ $s .= '
'; - $s .= '

' . t('LiveJournal Post Settings') . '

'; + $s .= '

' . L10n::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 .= '
'; + $s .= '
'; } @@ -98,10 +105,10 @@ 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'])); + PConfig::set(local_user(),'ljpost','post',intval($_POST['ljpost'])); + PConfig::set(local_user(),'ljpost','post_by_default',intval($_POST['lj_bydefault'])); + PConfig::set(local_user(),'ljpost','lj_username',trim($_POST['lj_username'])); + PConfig::set(local_user(),'ljpost','lj_password',trim($_POST['lj_password'])); } @@ -120,11 +127,11 @@ function ljpost_post_local(&$a,&$b) { if($b['private'] || $b['parent']) return; - $lj_post = intval(get_pconfig(local_user(),'ljpost','post')); + $lj_post = intval(PConfig::get(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'))) + if($_REQUEST['api_source'] && intval(PConfig::get(local_user(),'ljpost','post_by_default'))) $lj_enable = 1; if(! $lj_enable) @@ -149,7 +156,7 @@ function ljpost_send(&$a,&$b) { if($b['parent'] != $b['id']) return; - // LiveJournal post in the LJ user's timezone. + // LiveJournal post in the LJ user's timezone. // Hopefully the person's Friendica account // will be set to the same thing. @@ -159,22 +166,25 @@ function ljpost_send(&$a,&$b) { intval($b['uid']) ); if($x && strlen($x[0]['timezone'])) - $tz = $x[0]['timezone']; + $tz = $x[0]['timezone']; - $lj_username = get_pconfig($b['uid'],'ljpost','lj_username'); - $lj_password = get_pconfig($b['uid'],'ljpost','lj_password'); - $lj_blog = 'http://www.livejournal.com/interface/xmlrpc'; - - if($lj_username && $lj_password && $lj_blog) { + $lj_username = xmlify(PConfig::get($b['uid'],'ljpost','lj_username')); + $lj_password = xmlify(PConfig::get($b['uid'],'ljpost','lj_password')); + $lj_journal = xmlify(PConfig::get($b['uid'],'ljpost','lj_journal')); +// if(! $lj_journal) +// $lj_journal = $lj_username; - require_once('include/bbcode.php'); - require_once('include/datetime.php'); + $lj_blog = xmlify(PConfig::get($b['uid'],'ljpost','lj_blog')); + if(! strlen($lj_blog)) + $lj_blog = xmlify('http://www.livejournal.com/interface/xmlrpc'); - $title = $b['title']; - $post = bbcode($b['body']); + if($lj_username && $lj_password && $lj_blog) { + $title = xmlify($b['title']); + $post = BBCode::convert($b['body']); $post = xmlify($post); + $tags = ljpost_get_tags($b['tag']); - $date = datetime_convert('UTC',$tz,$b['created'],'Y-m-d H:i:s'); + $date = DateTimeFormat::convert($b['created'], $tz); $year = intval(substr($date,0,4)); $mon = intval(substr($date,5,2)); $day = intval(substr($date,8,2)); @@ -183,38 +193,56 @@ function ljpost_send(&$a,&$b) { $xml = <<< EOT -LJ.XMLRPC.postevent - - -year$year -mon$mon -day$day -hour$hour -min$min -usejournal$lj_username -event$post -username$lj_username -password$lj_password -subject$title -lineendingsunix -ver1 -props - -useragentFriendica -taglistfriendica - - - + + LJ.XMLRPC.postevent + + + + username$lj_username + password$lj_password + event$post + subject$title + lineendingsunix + year$year + mon$mon + day$day + hour$hour + min$min + usejournal$lj_username + + props + + + + useragent + Friendica + + + taglist + $tags + + + + + + + EOT; logger('ljpost: data: ' . $xml, LOGGER_DATA); - if($lj_blog !== 'test') - $x = post_url($lj_blog,$xml); + if ($lj_blog !== 'test') { + $x = Network::post($lj_blog, $xml, ["Content-Type: text/xml"]); + } logger('posted to livejournal: ' . ($x) ? $x : '', LOGGER_DEBUG); - } } +function ljpost_get_tags($post) +{ + preg_match_all("/\]([^\[#]+)\[/",$post,$matches); + $tags = implode(', ',$matches[1]); + return $tags; +}