From 4211b7f01188b4ab64407e32b380366a048102f4 Mon Sep 17 00:00:00 2001 From: Zach Copley Date: Thu, 27 May 2010 11:21:52 -0700 Subject: [PATCH] - Implement statusesHomeTimeline() in TwitterBasicAuthClient - Make TwitterStatusFetcher pull home_timeline (includes retweets) instead of friends_timeline --- .../daemons/twitterstatusfetcher.php | 2 +- .../TwitterBridge/twitterbasicauthclient.php | 31 ++++++++++++++++++- plugins/TwitterBridge/twitteroauthclient.php | 2 +- 3 files changed, 32 insertions(+), 3 deletions(-) diff --git a/plugins/TwitterBridge/daemons/twitterstatusfetcher.php b/plugins/TwitterBridge/daemons/twitterstatusfetcher.php index 7c624fdb3b..03a4bd3f34 100755 --- a/plugins/TwitterBridge/daemons/twitterstatusfetcher.php +++ b/plugins/TwitterBridge/daemons/twitterstatusfetcher.php @@ -186,7 +186,7 @@ class TwitterStatusFetcher extends ParallelizingDaemon $timeline = null; try { - $timeline = $client->statusesFriendsTimeline(); + $timeline = $client->statusesHomeTimeline(); } catch (Exception $e) { common_log(LOG_WARNING, $this->name() . ' - Twitter client unable to get friends timeline for user ' . diff --git a/plugins/TwitterBridge/twitterbasicauthclient.php b/plugins/TwitterBridge/twitterbasicauthclient.php index 2c18c94695..cc68b50100 100644 --- a/plugins/TwitterBridge/twitterbasicauthclient.php +++ b/plugins/TwitterBridge/twitterbasicauthclient.php @@ -2,7 +2,7 @@ /** * StatusNet, the distributed open-source microblogging tool * - * Class for doing OAuth calls against Twitter + * Class for doing HTTP basic auth calls against Twitter * * PHP version 5 * @@ -125,6 +125,35 @@ class TwitterBasicAuthClient return $statuses; } + /** + * Calls Twitter's /statuses/home_timeline API method + * + * @param int $since_id show statuses after this id + * @param int $max_id show statuses before this id + * @param int $cnt number of statuses to show + * @param int $page page number + * + * @return mixed an array of statuses similar to friends timeline but including retweets + */ + function statusesFriendsTimeline($since_id = null, $max_id = null, + $cnt = null, $page = null) + { + $url = 'https://twitter.com/statuses/home_timeline.json'; + $params = array('since_id' => $since_id, + 'max_id' => $max_id, + 'count' => $cnt, + 'page' => $page); + $qry = http_build_query($params); + + if (!empty($qry)) { + $url .= "?$qry"; + } + + $response = $this->httpRequest($url); + $statuses = json_decode($response); + return $statuses; + } + /** * Calls Twitter's /statuses/friends API method * diff --git a/plugins/TwitterBridge/twitteroauthclient.php b/plugins/TwitterBridge/twitteroauthclient.php index 6b821ba181..f6ef786752 100644 --- a/plugins/TwitterBridge/twitteroauthclient.php +++ b/plugins/TwitterBridge/twitteroauthclient.php @@ -225,7 +225,7 @@ class TwitterOAuthClient extends OAuthClient * @param int $cnt number of statuses to show * @param int $page page number * - * @return mixed an array of statuses, similare to friends_timeline, except including retweets + * @return mixed an array of statuses, similar to friends_timeline but including retweets */ function statusesHomeTimeline($since_id = null, $max_id = null, $cnt = null, $page = null)