Queue notices for rssCloud

This commit is contained in:
Zach Copley 2009-11-03 17:53:17 -08:00
parent 46ac99cf4d
commit aa9f81193e

View File

@ -130,21 +130,52 @@ class RSSCloudPlugin extends Plugin
} }
} }
function onEndNoticeSave($notice){ /**
* Add an RSSCloud queue item for each notice
common_debug("RSSCloudPlugin oneEndNoticeSave()"); *
* @param Notice $notice the notice
$user = User::staticGet('id', $notice->profile_id); * @param array &$transports the list of transports (queues)
$feed = common_local_url('api', array('apiaction' => 'statuses', *
'method' => 'user_timeline', * @return boolean hook return
'argument' => $user->nickname . '.rss')); */
function onStartEnqueueNotice($notice, &$transports)
// XXX: Dave's hub for testing {
// $endpoint = 'http://rpc.rsscloud.org:5337/rsscloud/ping'; array_push($transports, 'rsscloud');
return true;
// $notifier = new RSSCloudNotifier();
// $notifier->postUpdate($endpoint, $feed);
} }
/**
* broadcast the message when not using queuehandler
*
* @param Notice &$notice the notice
* @param array $queue destination queue
*
* @return boolean hook return
*/
function onUnqueueHandleNotice(&$notice, $queue)
{
if (($queue == 'rsscloud') && ($this->_isLocal($notice))) {
// broadcast the notice here
common_debug('broadcasting rssCloud bound notice ' . $notice->id);
return false;
}
return true;
}
/**
* Determine whether the notice was locally created
*
* @param Notice $notice
*
* @return boolean locality
*/
function _isLocal($notice)
{
return ($notice->is_local == Notice::LOCAL_PUBLIC ||
$notice->is_local == Notice::LOCAL_NONPUBLIC);
}
} }