]> git.mxchange.org Git - quix0rs-gnu-social.git/commitdiff
Make TwitterBridge plugin use Queueing system
authorJean Baptiste Favre <statusnet@jbfavre.org>
Mon, 18 Feb 2013 22:22:08 +0000 (23:22 +0100)
committerJean Baptiste Favre <statusnet@jbfavre.org>
Mon, 18 Feb 2013 22:22:08 +0000 (23:22 +0100)
plugins/TwitterBridge/TwitterBridgePlugin.php
plugins/TwitterBridge/daemons/twitterstatusfetcher.php
plugins/TwitterBridge/tweetinqueuehandler.php

index d733f71c56fee621cf6ba084d59977e7d27cd4dd..1b8e55e9b78d30c7ddc5ff04f378107676651d3e 100644 (file)
@@ -204,6 +204,7 @@ class TwitterBridgePlugin extends Plugin
             return false;
         case 'TwitterOAuthClient':
         case 'TwitterQueueHandler':
+        case 'TweetInQueueHandler':
         case 'TwitterImport':
         case 'JsonStreamReader':
         case 'TwitterStreamReader':
index f86007b72be0cf4324e47cae36f61795218e21c1..156979d843ba25df2dad3d186693302b52d8b9a8 100755 (executable)
@@ -196,26 +196,18 @@ class TwitterStatusFetcher extends ParallelizingDaemon
                    ' - Retrieved ' . sizeof($timeline) . ' statuses from ' . $timelineUri . ' timeline' .
                    ' - for user ' . $flink->user_id);
 
-        /* @fixme make TwitterBridge use queueing system
-         *        to speed up timeline processing
-         *        as well as giving oportunity to use
-         *        usefull feature such as realtime
-         *        brodcast to clients
-         */
-        $importer = new TwitterImport();
-
-        // Reverse to preserve order
-
-        foreach (array_reverse($timeline) as $status) {
-            $notice = $importer->importStatus($status);
-
-            if (!empty($notice)) {
-                Inbox::insertNotice($flink->user_id, $notice->id);
+        if (!empty($timeline)) {
+            $qm = QueueManager::get();
+
+            // Reverse to preserve order
+            foreach (array_reverse($timeline) as $status) {
+                $data = array(
+                    'status' => $status,
+                    'for_user' => $flink->foreign_id,
+                );
+                $qm->enqueue($data, 'tweetin');
             }
-        }
-        /* @fixme ends here */
 
-        if (!empty($timeline)) {
             $lastId = twitter_id($timeline[0]);
             Twitter_synch_status::setLastId($flink->foreign_id, $timelineUri, $lastId);
             common_debug("Set lastId value '$lastId' for foreign id '{$flink->foreign_id}' and timeline '" .
index ff6b2cc861336f51ea4574a0466918f4d9e1c2c3..7f34ade23b8c5f1d58ecf7a10e5ea327efa9ce27 100644 (file)
@@ -51,10 +51,14 @@ class TweetInQueueHandler extends QueueHandler
         $importer = new TwitterImport();
         $notice = $importer->importStatus($status);
         if ($notice) {
-            $flink = Foreign_link::getByForeignID(TWITTER_SERVICE, $receiver);
+            $flink = Foreign_link::getByForeignID($receiver, TWITTER_SERVICE);
             if ($flink) {
+                common_log(LOG_DEBUG, "TweetInQueueHandler - Got flink so add notice ".
+                           $notice->id." to inbox ".$flink->user_id);
                 // @fixme this should go through more regular channels?
                 Inbox::insertNotice($flink->user_id, $notice->id);
+            }else {
+               common_log(LOG_DEBUG, "TweetInQueueHandler - No flink found for foreign user ".$receiver);
             }
         }