]> git.mxchange.org Git - quix0rs-gnu-social.git/commitdiff
Make imported Twitter notices show up via real time plugins.
authorZach Copley <zach@status.net>
Fri, 4 Dec 2009 20:17:42 +0000 (20:17 +0000)
committerZach Copley <zach@status.net>
Fri, 4 Dec 2009 20:17:42 +0000 (20:17 +0000)
plugins/TwitterBridge/TwitterBridgePlugin.php
plugins/TwitterBridge/daemons/twitterstatusfetcher.php

index ad3c2e551cb0291490b233f5412f9c7a5982d4c0..adf9ceda34c11d4c12de8a8418de9805d42dce3c 100644 (file)
@@ -127,7 +127,12 @@ class TwitterBridgePlugin extends Plugin
      */
     function onStartEnqueueNotice($notice, &$transports)
     {
-        array_push($transports, 'twitter');
+        // Avoid a possible loop
+
+        if ($notice->source != 'twitter') {
+            array_push($transports, 'twitter');
+        }
+
         return true;
     }
 
index eba1d563b3a79b4994154b46d83bee3012a68096..d8901f47ba952bda0e18981ca18b6d67feb81a25 100755 (executable)
@@ -209,7 +209,11 @@ class TwitterStatusFetcher extends ParallelizingDaemon
                 continue;
             }
 
-            $this->saveStatus($status, $flink);
+            $notice = null;
+
+            $notice = $this->saveStatus($status, $flink);
+
+            common_broadcast_notice($notice);
         }
 
         // Okay, record the time we synced with Twitter for posterity
@@ -235,12 +239,14 @@ class TwitterStatusFetcher extends ParallelizingDaemon
         $uri = 'http://twitter.com/' . $status->user->screen_name .
             '/status/' . $status->id;
 
-        $notice = Notice::staticGet('uri', $uri);
-
         // check to see if we've already imported the status
 
+        $notice = Notice::staticGet('uri', $uri);
+
         if (empty($notice)) {
 
+            // XXX: transaction here?
+
             $notice = new Notice();
 
             $notice->profile_id = $id;
@@ -257,6 +263,7 @@ class TwitterStatusFetcher extends ParallelizingDaemon
                 $id = $notice->insert();
                 Event::handle('EndNoticeSave', array($notice));
             }
+
         }
 
         if (!Notice_inbox::pkeyGet(array('notice_id' => $notice->id,
@@ -270,7 +277,12 @@ class TwitterStatusFetcher extends ParallelizingDaemon
             $inbox->source    = NOTICE_INBOX_SOURCE_GATEWAY; // From a private source
 
             $inbox->insert();
+
         }
+
+        $notice->blowCaches();
+
+        return $notice;
     }
 
     function ensureProfile($user)