function omb_broadcast_notice($notice)
{
- $omb_notice = notice_to_omb_notice($notice);
+ try {
+ $omb_notice = notice_to_omb_notice($notice);
+ } catch (Exception $e) {
+ // @fixme we should clean up or highlight the problem item
+ common_log(LOG_ERR, 'Invalid OMB outgoing notice for notice ' . $notice->id);
+ common_log(LOG_ERR, 'Error status '.$e);
+ return true;
+ }
/* Get remote users subscribed to this profile. */
$rp = new Remote_profile();
$posted = array();
while ($rp->fetch()) {
- if (!array_key_exists($rp->postnoticeurl, $posted)) {
- common_log(LOG_DEBUG, 'Posting to ' . $rp->postnoticeurl);
- if (omb_post_notice_keys($notice, $rp->postnoticeurl, $rp->token, $rp->secret)) {
- common_log(LOG_DEBUG, 'Finished to ' . $rp->postnoticeurl);
- $posted[$rp->postnoticeurl] = true;
- } else {
- common_log(LOG_DEBUG, 'Failed posting to ' . $rp->postnoticeurl);
- }
+ if (isset($posted[$rp->postnoticeurl])) {
+ /* We already posted to this url. */
+ continue;
}
common_debug('Posting to ' . $rp->postnoticeurl, __FILE__);
/* Post notice. */
- $service = new Laconica_OMB_Service_Consumer(
+ $service = new StatusNet_OMB_Service_Consumer(
array(OMB_ENDPOINT_POSTNOTICE => $rp->postnoticeurl));
try {
$service->setToken($rp->token, $rp->secret);
common_debug('Finished to ' . $rp->postnoticeurl, __FILE__);
}
- return;
+ return true;
}
function omb_broadcast_profile($profile)
$this->datastore = omb_oauth_datastore();
$this->oauth_consumer = omb_oauth_consumer();
$this->fetcher = Auth_Yadis_Yadis::getHTTPFetcher();
+ $this->fetcher->timeout = intval(common_config('omb', 'timeout'));
}
}