X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=plugins%2FRealtime%2FRealtimePlugin.php;h=d41f8eca425e57367999a0e2b05809ab9cee06ac;hb=a452a3b1a028c0249defa82f4a87ac5aed8f3411;hp=69182b14fe242d515cce144eec8cad09531d5c92;hpb=d6ca90bb21d1d7f0dc2ed63d360872d19dcbbbb3;p=quix0rs-gnu-social.git diff --git a/plugins/Realtime/RealtimePlugin.php b/plugins/Realtime/RealtimePlugin.php index 69182b14fe..d41f8eca42 100644 --- a/plugins/Realtime/RealtimePlugin.php +++ b/plugins/Realtime/RealtimePlugin.php @@ -22,14 +22,14 @@ * @category Plugin * @package StatusNet * @author Evan Prodromou + * @author Mikael Nordfeldth * @copyright 2009 StatusNet, Inc. + * @copyright 2014 Free Software Foundation, Inc. * @license http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3.0 * @link http://status.net/ */ -if (!defined('STATUSNET')) { - exit(1); -} +if (!defined('GNUSOCIAL')) { exit(1); } /** * Superclass for plugin to do realtime updates @@ -37,6 +37,8 @@ if (!defined('STATUSNET')) { * Based on experience with the Comet and Meteor plugins, * this superclass extracts out some of the common functionality * + * Currently depends on Favorite plugin. + * * @category Plugin * @package StatusNet * @author Evan Prodromou @@ -69,10 +71,10 @@ class RealtimePlugin 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('main/channel/:channelkey/keepalive', array('action' => 'keepalivechannel'), @@ -142,13 +144,13 @@ class RealtimePlugin extends Plugin public function onEndShowStylesheets(Action $action) { - $action->cssLink(self::staticPath(__CLASS__, 'css/realtimeupdate.css'), - null, - 'screen, projection, tv'); + $urlpath = self::staticPath(str_replace('Plugin','',__CLASS__), + 'css/realtimeupdate.css'); + $action->cssLink($urlpath, null, 'screen, projection, tv'); return true; } - function onHandleQueuedNotice($notice) + public function onHandleQueuedNotice(Notice $notice) { $paths = array(); @@ -161,10 +163,12 @@ class RealtimePlugin extends Plugin return true; } - $user = User::getKV('id', $notice->profile_id); - - if (!empty($user)) { + try { + $user = $profile->getUser(); $paths[] = array('showstream', $user->nickname, null); + } catch (NoSuchUserException $e) { + // We really should handle the remote profile views too + $user = null; } // Add to the public timeline @@ -316,10 +320,10 @@ class RealtimePlugin extends Plugin $act = new ApiAction('/dev/null'); $arr = $act->twitterStatusArray($notice, true); - $arr['url'] = $notice->bestUrl(); + $arr['url'] = $notice->getUrl(true); $arr['html'] = htmlspecialchars($notice->rendered); $arr['source'] = htmlspecialchars($arr['source']); - $arr['conversation_url'] = $this->getConversationUrl($notice); + $arr['conversation_url'] = $notice->getConversationUrl(); $profile = $notice->getProfile(); $arr['user']['profile_url'] = $profile->profileurl; @@ -328,15 +332,15 @@ class RealtimePlugin extends Plugin if (!empty($notice->repeat_of)) { $original = Notice::getKV('id', $notice->repeat_of); - if (!empty($original)) { - $arr['retweeted_status']['url'] = $original->bestUrl(); + if ($original instanceof Notice) { + $arr['retweeted_status']['url'] = $original->getUrl(true); $arr['retweeted_status']['html'] = htmlspecialchars($original->rendered); $arr['retweeted_status']['source'] = htmlspecialchars($original->source); $originalProfile = $original->getProfile(); $arr['retweeted_status']['user']['profile_url'] = $originalProfile->profileurl; - $arr['retweeted_status']['conversation_url'] = $this->getConversationUrl($original); + $arr['retweeted_status']['conversation_url'] = $original->getConversationUrl(); } - $original = null; + unset($original); } return $arr; @@ -362,36 +366,11 @@ class RealtimePlugin extends Plugin return $tags; } - function getConversationUrl($notice) - { - $convurl = null; - - if ($notice->hasConversation()) { - $conv = Conversation::getKV( - 'id', - $notice->conversation - ); - $convurl = $conv->uri; - - if(empty($convurl)) { - $msg = sprintf( "Could not find Conversation ID %d to make 'in context'" - . "link for Notice ID %d.", - $notice->conversation, - $notice->id - ); - - common_log(LOG_WARNING, $msg); - } else { - $convurl .= '#notice-' . $notice->id; - } - } - - return $convurl; - } - function _getScripts() { - return array(self::staticPath(__CLASS__, 'js/realtimeupdate.js')); + $urlpath = self::staticPath(str_replace('Plugin','',__CLASS__), + 'js/realtimeupdate.js'); + return array($urlpath); } /**