X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=twitter%2Ftwitter.php;h=673b3b75301f56a05c6b54f7defca0f206eb3aec;hb=81dc1e5eb1bc4a42fa485cb668b200a63fb1feaa;hp=bb2d38abb4df2b4494cbe07d0cb2ea92ea9b8f49;hpb=a1254b4c856bfe6ce2459a9ce00f6a7f7bd65ec6;p=friendica-addons.git diff --git a/twitter/twitter.php b/twitter/twitter.php index bb2d38ab..673b3b75 100644 --- a/twitter/twitter.php +++ b/twitter/twitter.php @@ -64,30 +64,28 @@ use Abraham\TwitterOAuth\TwitterOAuth; use Abraham\TwitterOAuth\TwitterOAuthException; +use Codebird\Codebird; use Friendica\App; use Friendica\Content\OEmbed; use Friendica\Content\Text\BBCode; use Friendica\Content\Text\Plaintext; -use Friendica\Core\Config; use Friendica\Core\Hook; -use Friendica\Core\L10n; use Friendica\Core\Logger; -use Friendica\Core\PConfig; use Friendica\Core\Protocol; use Friendica\Core\Renderer; -use Friendica\Core\System; use Friendica\Core\Worker; use Friendica\Database\DBA; +use Friendica\DI; use Friendica\Model\Contact; use Friendica\Model\Conversation; -use Friendica\Model\GContact; use Friendica\Model\Group; use Friendica\Model\Item; use Friendica\Model\ItemContent; -use Friendica\Model\Queue; use Friendica\Model\User; -use Friendica\Object\Image; +use Friendica\Protocol\Activity; +use Friendica\Util\ConfigFileLoader; use Friendica\Util\DateTimeFormat; +use Friendica\Util\Images; use Friendica\Util\Network; use Friendica\Util\Strings; @@ -106,12 +104,11 @@ function twitter_install() Hook::register('notifier_normal' , __FILE__, 'twitter_post_hook'); Hook::register('jot_networks' , __FILE__, 'twitter_jot_nets'); Hook::register('cron' , __FILE__, 'twitter_cron'); - Hook::register('queue_predeliver' , __FILE__, 'twitter_queue_hook'); Hook::register('follow' , __FILE__, 'twitter_follow'); Hook::register('expire' , __FILE__, 'twitter_expire'); Hook::register('prepare_body' , __FILE__, 'twitter_prepare_body'); Hook::register('check_item_notification', __FILE__, 'twitter_check_item_notification'); - Logger::log("installed twitter"); + Logger::info("installed twitter"); } function twitter_uninstall() @@ -124,7 +121,6 @@ function twitter_uninstall() Hook::unregister('notifier_normal' , __FILE__, 'twitter_post_hook'); Hook::unregister('jot_networks' , __FILE__, 'twitter_jot_nets'); Hook::unregister('cron' , __FILE__, 'twitter_cron'); - Hook::unregister('queue_predeliver' , __FILE__, 'twitter_queue_hook'); Hook::unregister('follow' , __FILE__, 'twitter_follow'); Hook::unregister('expire' , __FILE__, 'twitter_expire'); Hook::unregister('prepare_body' , __FILE__, 'twitter_prepare_body'); @@ -136,14 +132,14 @@ function twitter_uninstall() Hook::unregister('addon_settings_post', __FILE__, 'twitter_settings_post'); } -function twitter_load_config(App $a) +function twitter_load_config(App $a, ConfigFileLoader $loader) { - $a->loadConfigFile(__DIR__ . '/config/twitter.config.php'); + $a->getConfigCache()->load($loader->loadAddonConfig('twitter')); } function twitter_check_item_notification(App $a, array &$notification_data) { - $own_id = PConfig::get($notification_data["uid"], 'twitter', 'own_id'); + $own_id = DI::pConfig()->get($notification_data["uid"], 'twitter', 'own_id'); $own_user = q("SELECT `url` FROM `contact` WHERE `uid` = %d AND `alias` = '%s' LIMIT 1", intval($notification_data["uid"]), @@ -157,7 +153,7 @@ function twitter_check_item_notification(App $a, array &$notification_data) function twitter_follow(App $a, array &$contact) { - Logger::log("twitter_follow: Check if contact is twitter contact. " . $contact["url"], Logger::DEBUG); + Logger::info('Check if contact is twitter contact', ['url' => $contact["url"]]); if (!strstr($contact["url"], "://twitter.com") && !strstr($contact["url"], "@twitter.com")) { return; @@ -169,10 +165,10 @@ function twitter_follow(App $a, array &$contact) $uid = $a->user["uid"]; - $ckey = Config::get('twitter', 'consumerkey'); - $csecret = Config::get('twitter', 'consumersecret'); - $otoken = PConfig::get($uid, 'twitter', 'oauthtoken'); - $osecret = PConfig::get($uid, 'twitter', 'oauthsecret'); + $ckey = DI::config()->get('twitter', 'consumerkey'); + $csecret = DI::config()->get('twitter', 'consumersecret'); + $otoken = DI::pConfig()->get($uid, 'twitter', 'oauthtoken'); + $osecret = DI::pConfig()->get($uid, 'twitter', 'oauthsecret'); // If the addon is not configured (general or for this user) quit here if (empty($ckey) || empty($csecret) || empty($otoken) || empty($osecret)) { @@ -194,21 +190,25 @@ function twitter_follow(App $a, array &$contact) } } -function twitter_jot_nets(App $a, &$b) +function twitter_jot_nets(App $a, array &$jotnets_fields) { if (!local_user()) { return; } - $tw_post = PConfig::get(local_user(), 'twitter', 'post'); - if (intval($tw_post) == 1) { - $tw_defpost = PConfig::get(local_user(), 'twitter', 'post_by_default'); - $selected = ((intval($tw_defpost) == 1) ? ' checked="checked" ' : ''); - $b .= '
' - . L10n::t('Post to Twitter') . '
'; + if (DI::pConfig()->get(local_user(), 'twitter', 'post')) { + $jotnets_fields[] = [ + 'type' => 'checkbox', + 'field' => [ + 'twitter_enable', + DI::l10n()->t('Post to Twitter'), + DI::pConfig()->get(local_user(), 'twitter', 'post_by_default') + ] + ]; } } + function twitter_settings_post(App $a) { if (!local_user()) { @@ -224,58 +224,58 @@ function twitter_settings_post(App $a) * if the twitter-disconnect checkbox is set, clear the OAuth key/secret pair * from the user configuration */ - PConfig::delete(local_user(), 'twitter', 'consumerkey'); - PConfig::delete(local_user(), 'twitter', 'consumersecret'); - PConfig::delete(local_user(), 'twitter', 'oauthtoken'); - PConfig::delete(local_user(), 'twitter', 'oauthsecret'); - PConfig::delete(local_user(), 'twitter', 'post'); - PConfig::delete(local_user(), 'twitter', 'post_by_default'); - PConfig::delete(local_user(), 'twitter', 'lastid'); - PConfig::delete(local_user(), 'twitter', 'mirror_posts'); - PConfig::delete(local_user(), 'twitter', 'import'); - PConfig::delete(local_user(), 'twitter', 'create_user'); - PConfig::delete(local_user(), 'twitter', 'own_id'); + DI::pConfig()->delete(local_user(), 'twitter', 'consumerkey'); + DI::pConfig()->delete(local_user(), 'twitter', 'consumersecret'); + DI::pConfig()->delete(local_user(), 'twitter', 'oauthtoken'); + DI::pConfig()->delete(local_user(), 'twitter', 'oauthsecret'); + DI::pConfig()->delete(local_user(), 'twitter', 'post'); + DI::pConfig()->delete(local_user(), 'twitter', 'post_by_default'); + DI::pConfig()->delete(local_user(), 'twitter', 'lastid'); + DI::pConfig()->delete(local_user(), 'twitter', 'mirror_posts'); + DI::pConfig()->delete(local_user(), 'twitter', 'import'); + DI::pConfig()->delete(local_user(), 'twitter', 'create_user'); + DI::pConfig()->delete(local_user(), 'twitter', 'own_id'); } else { if (isset($_POST['twitter-pin'])) { // if the user supplied us with a PIN from Twitter, let the magic of OAuth happen - Logger::log('got a Twitter PIN'); - $ckey = Config::get('twitter', 'consumerkey'); - $csecret = Config::get('twitter', 'consumersecret'); + Logger::notice('got a Twitter PIN'); + $ckey = DI::config()->get('twitter', 'consumerkey'); + $csecret = DI::config()->get('twitter', 'consumersecret'); // the token and secret for which the PIN was generated were hidden in the settings // form as token and token2, we need a new connection to Twitter using these token // and secret to request a Access Token with the PIN try { if (empty($_POST['twitter-pin'])) { - throw new Exception(L10n::t('You submitted an empty PIN, please Sign In with Twitter again to get a new one.')); + throw new Exception(DI::l10n()->t('You submitted an empty PIN, please Sign In with Twitter again to get a new one.')); } $connection = new TwitterOAuth($ckey, $csecret, $_POST['twitter-token'], $_POST['twitter-token2']); $token = $connection->oauth("oauth/access_token", ["oauth_verifier" => $_POST['twitter-pin']]); // ok, now that we have the Access Token, save them in the user config - PConfig::set(local_user(), 'twitter', 'oauthtoken', $token['oauth_token']); - PConfig::set(local_user(), 'twitter', 'oauthsecret', $token['oauth_token_secret']); - PConfig::set(local_user(), 'twitter', 'post', 1); + DI::pConfig()->set(local_user(), 'twitter', 'oauthtoken', $token['oauth_token']); + DI::pConfig()->set(local_user(), 'twitter', 'oauthsecret', $token['oauth_token_secret']); + DI::pConfig()->set(local_user(), 'twitter', 'post', 1); } catch(Exception $e) { info($e->getMessage()); } catch(TwitterOAuthException $e) { info($e->getMessage()); } // reload the Addon Settings page, if we don't do it see Bug #42 - System::redirectTo('settings/connectors'); + DI::baseUrl()->redirect('settings/connectors'); } else { // if no PIN is supplied in the POST variables, the user has changed the setting // to post a tweet for every new __public__ posting to the wall - PConfig::set(local_user(), 'twitter', 'post', intval($_POST['twitter-enable'])); - PConfig::set(local_user(), 'twitter', 'post_by_default', intval($_POST['twitter-default'])); - PConfig::set(local_user(), 'twitter', 'mirror_posts', intval($_POST['twitter-mirror'])); - PConfig::set(local_user(), 'twitter', 'import', intval($_POST['twitter-import'])); - PConfig::set(local_user(), 'twitter', 'create_user', intval($_POST['twitter-create_user'])); + DI::pConfig()->set(local_user(), 'twitter', 'post', intval($_POST['twitter-enable'])); + DI::pConfig()->set(local_user(), 'twitter', 'post_by_default', intval($_POST['twitter-default'])); + DI::pConfig()->set(local_user(), 'twitter', 'mirror_posts', intval($_POST['twitter-mirror'])); + DI::pConfig()->set(local_user(), 'twitter', 'import', intval($_POST['twitter-import'])); + DI::pConfig()->set(local_user(), 'twitter', 'create_user', intval($_POST['twitter-create_user'])); if (!intval($_POST['twitter-mirror'])) { - PConfig::delete(local_user(), 'twitter', 'lastid'); + DI::pConfig()->delete(local_user(), 'twitter', 'lastid'); } - info(L10n::t('Twitter settings updated.') . EOL); + info(DI::l10n()->t('Twitter settings updated.') . EOL); } } } @@ -285,38 +285,38 @@ function twitter_settings(App $a, &$s) if (!local_user()) { return; } - $a->page['htmlhead'] .= '' . "\r\n"; + DI::page()['htmlhead'] .= '' . "\r\n"; /* * * * 1) Check that we have global consumer key & secret * 2) If no OAuthtoken & stuff is present, generate button to get some * 3) Checkbox for "Send public notices (280 chars only) */ - $ckey = Config::get('twitter', 'consumerkey'); - $csecret = Config::get('twitter', 'consumersecret'); - $otoken = PConfig::get(local_user(), 'twitter', 'oauthtoken'); - $osecret = PConfig::get(local_user(), 'twitter', 'oauthsecret'); + $ckey = DI::config()->get('twitter', 'consumerkey'); + $csecret = DI::config()->get('twitter', 'consumersecret'); + $otoken = DI::pConfig()->get(local_user(), 'twitter', 'oauthtoken'); + $osecret = DI::pConfig()->get(local_user(), 'twitter', 'oauthsecret'); - $enabled = intval(PConfig::get(local_user(), 'twitter', 'post')); - $defenabled = intval(PConfig::get(local_user(), 'twitter', 'post_by_default')); - $mirrorenabled = intval(PConfig::get(local_user(), 'twitter', 'mirror_posts')); - $importenabled = intval(PConfig::get(local_user(), 'twitter', 'import')); - $create_userenabled = intval(PConfig::get(local_user(), 'twitter', 'create_user')); + $enabled = intval(DI::pConfig()->get(local_user(), 'twitter', 'post')); + $defenabled = intval(DI::pConfig()->get(local_user(), 'twitter', 'post_by_default')); + $mirrorenabled = intval(DI::pConfig()->get(local_user(), 'twitter', 'mirror_posts')); + $importenabled = intval(DI::pConfig()->get(local_user(), 'twitter', 'import')); + $create_userenabled = intval(DI::pConfig()->get(local_user(), 'twitter', 'create_user')); $css = (($enabled) ? '' : '-disabled'); $s .= ''; - $s .= '

' . L10n::t('Twitter Import/Export/Mirror') . '

'; + $s .= '

' . DI::l10n()->t('Twitter Import/Export/Mirror') . '

'; $s .= '
'; $s .= '