X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=plugins%2FTwitterBridge%2FTwitterBridgePlugin.php;h=b37d01274d9989170608b732f1f8f317cafda05a;hb=d594c83a5a9a9d42fce917b544c28591fcadb1aa;hp=128b062c7f6ef8819f97e5e30a1596542354f043;hpb=0eaa26476cac557484e295666b574340236452ff;p=quix0rs-gnu-social.git diff --git a/plugins/TwitterBridge/TwitterBridgePlugin.php b/plugins/TwitterBridge/TwitterBridgePlugin.php index 128b062c7f..b37d01274d 100644 --- a/plugins/TwitterBridge/TwitterBridgePlugin.php +++ b/plugins/TwitterBridge/TwitterBridgePlugin.php @@ -111,7 +111,7 @@ class TwitterBridgePlugin extends Plugin */ function onRouterInitialized($m) { - $m->connect('admin/twitter', array('action' => 'twitteradminpanel')); + $m->connect('panel/twitter', array('action' => 'twitteradminpanel')); if (self::hasKeys()) { $m->connect( @@ -137,19 +137,21 @@ class TwitterBridgePlugin extends Plugin /* * Add a login tab for 'Sign in with Twitter' * - * @param Action &action the current action + * @param Action $action the current action * * @return void */ - function onEndLoginGroupNav(&$action) + function onEndLoginGroupNav($action) { $action_name = $action->trimmed('action'); if (self::hasKeys() && common_config('twitter', 'signin')) { $action->menuItem( common_local_url('twitterlogin'), - _m('Twitter'), - _m('Login or register using Twitter'), + // TRANS: Menu item in login navigation. + _m('MENU','Twitter'), + // TRANS: Title for menu item in login navigation. + _m('Login or register using Twitter.'), 'twitterlogin' === $action_name ); } @@ -160,18 +162,20 @@ class TwitterBridgePlugin extends Plugin /** * Add the Twitter Settings page to the Connect Settings menu * - * @param Action &$action The calling page + * @param Action $action The calling page * * @return boolean hook return */ - function onEndConnectSettingsNav(&$action) + function onEndConnectSettingsNav($action) { if (self::hasKeys()) { $action_name = $action->trimmed('action'); $action->menuItem( common_local_url('twittersettings'), - _m('Twitter'), + // TRANS: Menu item in connection settings navigation. + _m('MENU','Twitter'), + // TRANS: Title for menu item in connection settings navigation. _m('Twitter integration options'), $action_name === 'twittersettings' ); @@ -201,8 +205,14 @@ class TwitterBridgePlugin extends Plugin case 'TwitterOAuthClient': case 'TwitterQueueHandler': case 'TwitterImport': + case 'JsonStreamReader': + case 'TwitterStreamReader': include_once $dir . '/' . strtolower($cls) . '.php'; return false; + case 'TwitterSiteStream': + case 'TwitterUserStream': + include_once $dir . '/twitterstreamreader.php'; + return false; case 'Notice_to_status': case 'Twitter_synch_status': include_once $dir . '/' . $cls . '.php'; @@ -222,7 +232,7 @@ class TwitterBridgePlugin extends Plugin */ function onStartEnqueueNotice($notice, &$transports) { - if (self::hasKeys() && $notice->isLocal()) { + if (self::hasKeys() && $notice->isLocal() && $notice->inScope(null)) { // Avoid a possible loop if ($notice->source != 'twitter') { array_push($transports, 'twitter'); @@ -268,7 +278,23 @@ class TwitterBridgePlugin extends Plugin function onEndInitializeQueueManager($manager) { if (self::hasKeys()) { + // Outgoing notices -> twitter $manager->connect('twitter', 'TwitterQueueHandler'); + + // Incoming statuses <- twitter + $manager->connect('tweetin', 'TweetInQueueHandler'); + } + return true; + } + + /** + * If the plugin's installed, this should be accessible to admins + */ + function onAdminPanelCheck($name, &$isOK) + { + if ($name == 'twitter') { + $isOK = true; + return false; } return true; } @@ -289,8 +315,10 @@ class TwitterBridgePlugin extends Plugin $nav->out->menuItem( common_local_url('twitteradminpanel'), + // TRANS: Menu item in administrative panel that leads to the Twitter bridge configuration. _m('Twitter'), - _m('Twitter bridge configuration'), + // TRANS: Menu item title in administrative panel that leads to the Twitter bridge configuration. + _m('Twitter bridge configuration page.'), $action_name == 'twitteradminpanel', 'nav_twitter_admin_panel' ); @@ -313,8 +341,8 @@ class TwitterBridgePlugin extends Plugin 'version' => self::VERSION, 'author' => 'Zach Copley, Julien C', 'homepage' => 'http://status.net/wiki/Plugin:TwitterBridge', - 'rawdescription' => _m( - 'The Twitter "bridge" plugin allows integration ' . + // TRANS: Plugin description. + 'rawdescription' => _m('The Twitter "bridge" plugin allows integration ' . 'of a StatusNet instance with ' . 'Twitter.' ) @@ -428,10 +456,14 @@ class TwitterBridgePlugin extends Plugin return true; } - $token = TwitterOAuthClient::unpackToken($flink->credentials); - $client = new TwitterOAuthClient($token->key, $token->secret); + try { + $token = TwitterOAuthClient::unpackToken($flink->credentials); + $client = new TwitterOAuthClient($token->key, $token->secret); - $client->statusesDestroy($n2s->status_id); + $client->statusesDestroy($n2s->status_id); + } catch (Exception $e) { + common_log(LOG_ERR, "Error attempting to delete bridged notice from Twitter: " . $e->getMessage()); + } $n2s->delete(); } @@ -465,10 +497,14 @@ class TwitterBridgePlugin extends Plugin return true; } - $token = TwitterOAuthClient::unpackToken($flink->credentials); - $client = new TwitterOAuthClient($token->key, $token->secret); + try { + $token = TwitterOAuthClient::unpackToken($flink->credentials); + $client = new TwitterOAuthClient($token->key, $token->secret); - $client->favoritesCreate($status_id); + $client->favoritesCreate($status_id); + } catch (Exception $e) { + common_log(LOG_ERR, "Error attempting to favorite bridged notice on Twitter: " . $e->getMessage()); + } return true; } @@ -501,11 +537,24 @@ class TwitterBridgePlugin extends Plugin return true; } - $token = TwitterOAuthClient::unpackToken($flink->credentials); - $client = new TwitterOAuthClient($token->key, $token->secret); + try { + $token = TwitterOAuthClient::unpackToken($flink->credentials); + $client = new TwitterOAuthClient($token->key, $token->secret); - $client->favoritesDestroy($status_id); + $client->favoritesDestroy($status_id); + } catch (Exception $e) { + common_log(LOG_ERR, "Error attempting to unfavorite bridged notice on Twitter: " . $e->getMessage()); + } return true; } + + function onStartGetProfileUri($profile, &$uri) + { + if (preg_match('!^https?://twitter.com/!', $profile->profileurl)) { + $uri = $profile->profileurl; + return false; + } + return true; + } }