]> git.mxchange.org Git - quix0rs-gnu-social.git/blobdiff - lib/omb.php
Merge branch 'fix-openid' into 0.9.x
[quix0rs-gnu-social.git] / lib / omb.php
index 9133af7a05ee93345abad7d79935169f92ff5b27..e2a6d9f3f529f6004ef51c3846ad68a1b31143a6 100644 (file)
@@ -67,7 +67,14 @@ function omb_hmac_sha1()
 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();
@@ -80,19 +87,14 @@ function omb_broadcast_notice($notice)
     $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);
@@ -107,7 +109,7 @@ function omb_broadcast_notice($notice)
         common_debug('Finished to ' . $rp->postnoticeurl, __FILE__);
     }
 
-    return;
+    return true;
 }
 
 function omb_broadcast_profile($profile)