From e53e152d6f2b310d7206b640cb3840ec5531aa86 Mon Sep 17 00:00:00 2001
From: Evan Prodromou <evan@status.net>
Date: Tue, 7 Sep 2010 04:22:55 -0400
Subject: [PATCH] use and save since_id parameter for home_timeline

---
 .../TwitterBridge/daemons/twitterstatusfetcher.php  | 13 +++++++++++--
 1 file changed, 11 insertions(+), 2 deletions(-)

diff --git a/plugins/TwitterBridge/daemons/twitterstatusfetcher.php b/plugins/TwitterBridge/daemons/twitterstatusfetcher.php
index e092cd1dd7..7c80d2e5d5 100755
--- a/plugins/TwitterBridge/daemons/twitterstatusfetcher.php
+++ b/plugins/TwitterBridge/daemons/twitterstatusfetcher.php
@@ -103,7 +103,6 @@ class TwitterStatusFetcher extends ParallelizingDaemon
     function getObjects()
     {
         global $_DB_DATAOBJECT;
-
         $flink = new Foreign_link();
         $conn = &$flink->getDatabaseConnection();
 
@@ -183,8 +182,10 @@ class TwitterStatusFetcher extends ParallelizingDaemon
 
         $timeline = null;
 
+        $lastId = Twitter_synch_status::getLastId($flink->user_id, 'home_timeline');
+
         try {
-            $timeline = $client->statusesHomeTimeline();
+            $timeline = $client->statusesHomeTimeline($lastId);
         } catch (Exception $e) {
             common_log(LOG_WARNING, $this->name() .
                        ' - Twitter client unable to get friends timeline for user ' .
@@ -199,10 +200,14 @@ class TwitterStatusFetcher extends ParallelizingDaemon
 
         common_debug(LOG_INFO, $this->name() . ' - Retrieved ' . sizeof($timeline) . ' statuses from Twitter.');
 
+        $lastSeenId = null;
+
         // Reverse to preserve order
 
         foreach (array_reverse($timeline) as $status) {
 
+            $lastSeenId = $status->id;
+
             // Hacktastic: filter out stuff coming from this StatusNet
 
             $source = mb_strtolower(common_config('integration', 'source'));
@@ -227,6 +232,10 @@ class TwitterStatusFetcher extends ParallelizingDaemon
             }
         }
 
+        if (!empty($lastSeenId)) {
+            Twitter_synch_status::setLastId($flink->user_id, 'home_timeline', $lastSeenId);
+        }
+
         // Okay, record the time we synced with Twitter for posterity
 
         $flink->last_noticesync = common_sql_now();