X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=blogger%2Fblogger.php;h=ff87476a4ad9b58aee291dc07f9168539cddef9d;hb=cff3dd67b065983dcbe13858a2a31f2de9992659;hp=30c450bda9f6e5c180c597fdb70fee59c381750c;hpb=88ca2f5a1e83c2cd93c6b08863fdd361a3a9bd69;p=friendica-addons.git diff --git a/blogger/blogger.php b/blogger/blogger.php index 30c450bd..ff87476a 100644 --- a/blogger/blogger.php +++ b/blogger/blogger.php @@ -3,56 +3,46 @@ * Name: Blogger Post Connector * Description: Post to Blogger (or anything else which uses blogger XMLRPC API) * Version: 1.0 - * + * Status: Unsupported */ +use Friendica\App; use Friendica\Content\Text\BBCode; -use Friendica\Core\Addon; -use Friendica\Core\L10n; -use Friendica\Core\PConfig; -use Friendica\Util\Network; +use Friendica\Core\Hook; +use Friendica\Core\Logger; +use Friendica\DI; +use Friendica\Util\XML; function blogger_install() { - Addon::registerHook('post_local', 'addon/blogger/blogger.php', 'blogger_post_local'); - Addon::registerHook('notifier_normal', 'addon/blogger/blogger.php', 'blogger_send'); - Addon::registerHook('jot_networks', 'addon/blogger/blogger.php', 'blogger_jot_nets'); - Addon::registerHook('connector_settings', 'addon/blogger/blogger.php', 'blogger_settings'); - Addon::registerHook('connector_settings_post', 'addon/blogger/blogger.php', 'blogger_settings_post'); + Hook::register('hook_fork', 'addon/blogger/blogger.php', 'blogger_hook_fork'); + Hook::register('post_local', 'addon/blogger/blogger.php', 'blogger_post_local'); + Hook::register('notifier_normal', 'addon/blogger/blogger.php', 'blogger_send'); + Hook::register('jot_networks', 'addon/blogger/blogger.php', 'blogger_jot_nets'); + Hook::register('connector_settings', 'addon/blogger/blogger.php', 'blogger_settings'); + Hook::register('connector_settings_post', 'addon/blogger/blogger.php', 'blogger_settings_post'); } -function blogger_uninstall() -{ - Addon::unregisterHook('post_local', 'addon/blogger/blogger.php', 'blogger_post_local'); - Addon::unregisterHook('notifier_normal', 'addon/blogger/blogger.php', 'blogger_send'); - Addon::unregisterHook('jot_networks', 'addon/blogger/blogger.php', 'blogger_jot_nets'); - Addon::unregisterHook('connector_settings', 'addon/blogger/blogger.php', 'blogger_settings'); - Addon::unregisterHook('connector_settings_post', 'addon/blogger/blogger.php', 'blogger_settings_post'); - - // obsolete - remove - Addon::unregisterHook('post_local_end', 'addon/blogger/blogger.php', 'blogger_send'); - Addon::unregisterHook('addon_settings', 'addon/blogger/blogger.php', 'blogger_settings'); - Addon::unregisterHook('addon_settings_post', 'addon/blogger/blogger.php', 'blogger_settings_post'); -} - - -function blogger_jot_nets(&$a, &$b) +function blogger_jot_nets(App $a, array &$jotnets_fields) { if (!local_user()) { return; } - $bl_post = PConfig::get(local_user(), 'blogger', 'post'); - if (intval($bl_post) == 1) { - $bl_defpost = PConfig::get(local_user(), 'blogger', 'post_by_default'); - $selected = ((intval($bl_defpost) == 1) ? ' checked="checked" ' : ''); - $b .= '
' - . L10n::t('Post to blogger') . '
'; + if (DI::pConfig()->get(local_user(), 'blogger', 'post')) { + $jotnets_fields[] = [ + 'type' => 'checkbox', + 'field' => [ + 'blogger_enable', + DI::l10n()->t('Post to blogger'), + DI::pConfig()->get(local_user(), 'blogger', 'post_by_default') + ] + ]; } } -function blogger_settings(&$a, &$s) +function blogger_settings(App $a, &$s) { if (! local_user()) { return; @@ -60,73 +50,88 @@ function blogger_settings(&$a, &$s) /* Add our stylesheet to the page so we can make our settings look nice */ - $a->page['htmlhead'] .= '' . "\r\n"; + DI::page()['htmlhead'] .= '' . "\r\n"; /* Get the current state of our config variables */ - $enabled = PConfig::get(local_user(), 'blogger', 'post'); + $enabled = DI::pConfig()->get(local_user(), 'blogger', 'post'); $checked = (($enabled) ? ' checked="checked" ' : ''); $css = (($enabled) ? '' : '-disabled'); - $def_enabled = PConfig::get(local_user(), 'blogger', 'post_by_default'); + $def_enabled = DI::pConfig()->get(local_user(), 'blogger', 'post_by_default'); $def_checked = (($def_enabled) ? ' checked="checked" ' : ''); - $bl_username = PConfig::get(local_user(), 'blogger', 'bl_username'); - $bl_password = PConfig::get(local_user(), 'blogger', 'bl_password'); - $bl_blog = PConfig::get(local_user(), 'blogger', 'bl_blog'); + $bl_username = DI::pConfig()->get(local_user(), 'blogger', 'bl_username'); + $bl_password = DI::pConfig()->get(local_user(), 'blogger', 'bl_password'); + $bl_blog = DI::pConfig()->get(local_user(), 'blogger', 'bl_blog'); /* Add some HTML to the existing form */ $s .= ''; - $s .= '

'. L10n::t('Blogger Export').'

'; + $s .= '

'. DI::l10n()->t('Blogger Export').'

'; $s .= '
'; $s .= ''; + $s .= '
'; } -function blogger_settings_post(&$a, &$b) +function blogger_settings_post(App $a, array &$b) +{ + if (!empty($_POST['blogger-submit'])) { + DI::pConfig()->set(local_user(), 'blogger', 'post', $_POST['blogger'] ?? false); + DI::pConfig()->set(local_user(), 'blogger', 'post_by_default', $_POST['bl_bydefault'] ?? false); + DI::pConfig()->set(local_user(), 'blogger', 'bl_username', trim($_POST['bl_username'])); + DI::pConfig()->set(local_user(), 'blogger', 'bl_password', trim($_POST['bl_password'])); + DI::pConfig()->set(local_user(), 'blogger', 'bl_blog', trim($_POST['bl_blog'])); + } +} + +function blogger_hook_fork(App &$a, array &$b) { - if (x($_POST, 'blogger-submit')) { - PConfig::set(local_user(), 'blogger', 'post', intval($_POST['blogger'])); - PConfig::set(local_user(), 'blogger', 'post_by_default', intval($_POST['bl_bydefault'])); - PConfig::set(local_user(), 'blogger', 'bl_username', trim($_POST['bl_username'])); - PConfig::set(local_user(), 'blogger', 'bl_password', trim($_POST['bl_password'])); - PConfig::set(local_user(), 'blogger', 'bl_blog', trim($_POST['bl_blog'])); + if ($b['name'] != 'notifier_normal') { + return; + } + + $post = $b['data']; + + if ($post['deleted'] || $post['private'] || ($post['created'] !== $post['edited']) || + !strstr($post['postopts'], 'blogger') || ($post['parent'] != $post['id'])) { + $b['execute'] = false; + return; } } -function blogger_post_local(&$a, &$b) +function blogger_post_local(App $a, array &$b) { // This can probably be changed to allow editing by pointing to a different API endpoint @@ -142,11 +147,11 @@ function blogger_post_local(&$a, &$b) return; } - $bl_post = intval(PConfig::get(local_user(), 'blogger', 'post')); + $bl_post = intval(DI::pConfig()->get(local_user(), 'blogger', 'post')); - $bl_enable = (($bl_post && x($_REQUEST, 'blogger_enable')) ? intval($_REQUEST['blogger_enable']) : 0); + $bl_enable = (($bl_post && !empty($_REQUEST['blogger_enable'])) ? intval($_REQUEST['blogger_enable']) : 0); - if ($b['api_source'] && intval(PConfig::get(local_user(), 'blogger', 'post_by_default'))) { + if ($b['api_source'] && intval(DI::pConfig()->get(local_user(), 'blogger', 'post_by_default'))) { $bl_enable = 1; } @@ -158,13 +163,10 @@ function blogger_post_local(&$a, &$b) $b['postopts'] .= ','; } - $b['postopts'] .= 'blogger'; + $b['postopts'] .= 'blogger'; } - - - -function blogger_send(&$a, &$b) +function blogger_send(App $a, array &$b) { if ($b['deleted'] || $b['private'] || ($b['created'] !== $b['edited'])) { return; @@ -178,14 +180,14 @@ function blogger_send(&$a, &$b) return; } - $bl_username = xmlify(PConfig::get($b['uid'], 'blogger', 'bl_username')); - $bl_password = xmlify(PConfig::get($b['uid'], 'blogger', 'bl_password')); - $bl_blog = PConfig::get($b['uid'], 'blogger', 'bl_blog'); + $bl_username = XML::escape(DI::pConfig()->get($b['uid'], 'blogger', 'bl_username')); + $bl_password = XML::escape(DI::pConfig()->get($b['uid'], 'blogger', 'bl_password')); + $bl_blog = DI::pConfig()->get($b['uid'], 'blogger', 'bl_blog'); if ($bl_username && $bl_password && $bl_blog) { - $title = '' . (($b['title']) ? $b['title'] : L10n::t('Post from Friendica')) . ''; - $post = $title . BBCode::convert($b['body']); - $post = xmlify($post); + $title = '' . (($b['title']) ? $b['title'] : DI::l10n()->t('Post from Friendica')) . ''; + $post = $title . BBCode::convertForUriId($b['uri-id'], $b['body'], BBCode::CONNECTORS); + $post = XML::escape($post); $xml = <<< EOT @@ -203,12 +205,12 @@ function blogger_send(&$a, &$b) EOT; - logger('blogger: data: ' . $xml, LOGGER_DATA); + Logger::debug('blogger: data: ' . $xml); if ($bl_blog !== 'test') { - $x = Network::post($bl_blog, $xml); + $x = DI::httpClient()->post($bl_blog, $xml)->getBody(); } - logger('posted to blogger: ' . (($x) ? $x : ''), LOGGER_DEBUG); + Logger::info('posted to blogger: ' . (($x) ? $x : '')); } }