X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=plugins%2FTwitterBridge%2FTwitterBridgePlugin.php;h=0a887168539bfac69cf671bc6e47c71aad1c2293;hb=a2d8305e2159f60df979898983b5fe4ccf166a16;hp=8d14744090ab0c5a734e5264b40fba4a31c43c79;hpb=527224266b9d9908dcf44d3f6a838a44d9a6215c;p=quix0rs-gnu-social.git diff --git a/plugins/TwitterBridge/TwitterBridgePlugin.php b/plugins/TwitterBridge/TwitterBridgePlugin.php index 8d14744090..0a88716853 100644 --- a/plugins/TwitterBridge/TwitterBridgePlugin.php +++ b/plugins/TwitterBridge/TwitterBridgePlugin.php @@ -26,9 +26,7 @@ * @link http://status.net/ */ -if (!defined('STATUSNET')) { - exit(1); -} +if (!defined('GNUSOCIAL')) { exit(1); } require_once __DIR__ . '/twitter.php'; @@ -107,11 +105,11 @@ class TwitterBridgePlugin extends Plugin * * Hook for RouterInitialized event. * - * @param Net_URL_Mapper $m path-to-action mapper + * @param URLMapper $m path-to-action mapper * * @return boolean hook return */ - function onRouterInitialized($m) + public function onRouterInitialized(URLMapper $m) { $m->connect('panel/twitter', array('action' => 'twitteradminpanel')); @@ -297,13 +295,13 @@ class TwitterBridgePlugin extends Plugin * * @return boolean hook value */ - function onPluginVersion(&$versions) + function onPluginVersion(array &$versions) { $versions[] = array( 'name' => 'TwitterBridge', 'version' => self::VERSION, 'author' => 'Zach Copley, Julien C, Jean Baptiste Favre', - 'homepage' => 'http://status.net/wiki/Plugin:TwitterBridge', + 'homepage' => 'https://git.gnu.io/gnu/gnu-social/tree/master/plugins/TwitterBridge', // TRANS: Plugin description. 'rawdescription' => _m('The Twitter "bridge" plugin allows integration ' . 'of a StatusNet instance with ' . @@ -325,31 +323,6 @@ class TwitterBridgePlugin extends Plugin return (bool)$this->adminImportControl; } - /** - * When the site is set to ssl=sometimes mode, we should make sure our - * various auth-related pages are on SSL to keep things looking happy. - * Although we're not submitting passwords directly, we do link out to - * an authentication source and it's a lot happier if we've got some - * protection against MitM. - * - * @param string $action name - * @param boolean $ssl outval to force SSL - * @return mixed hook return value - */ - function onSensitiveAction($action, &$ssl) - { - $sensitive = array('twitteradminpanel', - 'twittersettings', - 'twitterauthorization', - 'twitterlogin'); - if (in_array($action, $sensitive)) { - $ssl = true; - return false; - } else { - return true; - } - } - /** * Database schema setup * @@ -387,12 +360,11 @@ class TwitterBridgePlugin extends Plugin { $n2s = Notice_to_status::getKV('notice_id', $notice->id); - if (!empty($n2s)) { + if ($n2s instanceof Notice_to_status) { - $flink = Foreign_link::getByUserID($notice->profile_id, - TWITTER_SERVICE); // twitter service - - if (empty($flink)) { + try { + $flink = Foreign_link::getByUserID($notice->profile_id, TWITTER_SERVICE); // twitter service + } catch (NoResultException $e) { return true; } @@ -424,15 +396,14 @@ class TwitterBridgePlugin extends Plugin */ function onEndFavorNotice(Profile $profile, Notice $notice) { - $flink = Foreign_link::getByUserID($profile->id, - TWITTER_SERVICE); // twitter service - - if (empty($flink)) { + try { + $flink = Foreign_link::getByUserID($profile->getID(), TWITTER_SERVICE); // twitter service + } catch (NoResultException $e) { return true; } if (!TwitterOAuthClient::isPackedToken($flink->credentials)) { - $this->log(LOG_INFO, "Skipping fave processing for {$profile->id} since link is not OAuth."); + $this->log(LOG_INFO, "Skipping fave processing for {$profile->getID()} since link is not OAuth."); return true; } @@ -464,10 +435,9 @@ class TwitterBridgePlugin extends Plugin */ function onEndDisfavorNotice(Profile $profile, Notice $notice) { - $flink = Foreign_link::getByUserID($profile->id, - TWITTER_SERVICE); // twitter service - - if (empty($flink)) { + try { + $flink = Foreign_link::getByUserID($profile->getID(), TWITTER_SERVICE); // twitter service + } catch (NoResultException $e) { return true; } @@ -516,16 +486,15 @@ class TwitterBridgePlugin extends Plugin { $fuser = null; - $flink = Foreign_link::getByUserID($profile->id, TWITTER_SERVICE); - - if (!empty($flink)) { + try { + $flink = Foreign_link::getByUserID($profile->id, TWITTER_SERVICE); $fuser = $flink->getForeignUser(); - if (!empty($fuser)) { - $links[] = array("href" => $fuser->uri, - "text" => sprintf(_("@%s on Twitter"), $fuser->nickname), - "image" => $this->path("icons/twitter-bird-white-on-blue.png")); - } + $links[] = array("href" => $fuser->uri, + "text" => sprintf(_("@%s on Twitter"), $fuser->nickname), + "image" => $this->path("icons/twitter-bird-white-on-blue.png")); + } catch (NoResultException $e) { + // no foreign link and/or user for Twitter on this profile ID } return true; @@ -533,6 +502,23 @@ class TwitterBridgePlugin extends Plugin public function onEndShowHeadElements(Action $action) { + if($action instanceof ShowNoticeAction) { // Showing a notice + $notice = Notice::getKV('id', $action->arg('notice')); + + try { + $flink = Foreign_link::getByUserID($notice->profile_id, TWITTER_SERVICE); + $fuser = Foreign_user::getForeignUser($flink->foreign_id, TWITTER_SERVICE); + } catch (NoResultException $e) { + return true; + } + + $statusId = twitter_status_id($notice); + if($notice instanceof Notice && $notice->isLocal() && $statusId) { + $tweetUrl = 'https://twitter.com/' . $fuser->nickname . '/status/' . $statusId; + $action->element('link', array('rel' => 'syndication', 'href' => $tweetUrl)); + } + } + if (!($action instanceof AttachmentAction)) { return true; } @@ -569,16 +555,17 @@ class TwitterBridgePlugin extends Plugin if( count($noticeArray) != 1 ) { break; } $post = $noticeArray[0]; - $flink = Foreign_link::getByUserID($post->profile_id, TWITTER_SERVICE); - if( $flink ) { // Our local user has registered Twitter Gateway + try { + $flink = Foreign_link::getByUserID($post->profile_id, TWITTER_SERVICE); $fuser = Foreign_user::getForeignUser($flink->foreign_id, TWITTER_SERVICE); - if( $fuser ) { // Got nickname for local user's Twitter account - $action->element('meta', array('name' => 'twitter:creator', - 'content' => '@'.$fuser->nickname)); - } + $action->element('meta', array('name' => 'twitter:creator', + 'content' => '@'.$fuser->nickname)); + } catch (NoResultException $e) { + // no foreign link and/or user for Twitter on this profile ID } break; - default: break; + default: + break; } return true;