diff options
author | Brion Vibber <brion@pobox.com> | 2010-11-02 16:43:01 -0700 |
---|---|---|
committer | Brion Vibber <brion@pobox.com> | 2010-11-02 16:43:01 -0700 |
commit | a2f0f68d75b2cf49815a695a30761c6c9538449e (patch) | |
tree | bc4c5cc2884c904b6c2106025cd4ffdfc6b1ce18 | |
parent | 445b306b5494210f119525a13c4148024a6c5576 (diff) |
fakestream.php can now take --all option to pull the latest messages from multiple locally-authed accounts when generating simulated sitestreams info
-rw-r--r-- | plugins/TwitterBridge/scripts/fakestream.php | 63 |
1 files changed, 52 insertions, 11 deletions
diff --git a/plugins/TwitterBridge/scripts/fakestream.php b/plugins/TwitterBridge/scripts/fakestream.php index cdb56d491..369688816 100644 --- a/plugins/TwitterBridge/scripts/fakestream.php +++ b/plugins/TwitterBridge/scripts/fakestream.php @@ -48,6 +48,8 @@ if (have_option('n')) { $nickname = get_option_value('n'); } else if (have_option('nick')) { $nickname = get_option_value('nickname'); +} else if (have_option('all')) { + $nickname = null; } else { show_help($helptext); exit(0); @@ -82,25 +84,64 @@ function twitterAuthForUser(User $user) */ function dumpMessage($flink, $data) { + $msg = prepMessage($flink, $data); + print json_encode($msg) . "\r\n"; +} + +function prepMessage($flink, $data) +{ $msg->for_user = $flink->foreign_id; $msg->message = $data; - print json_encode($msg) . "\r\n"; + return $msg; } if (have_option('all')) { - throw new Exception('--all not yet implemented'); + $users = array(); + + $flink = new Foreign_link(); + $flink->service = TWITTER_SERVICE; + $flink->find(); + + while ($flink->fetch()) { + if (($flink->noticesync & FOREIGN_NOTICE_RECV) == + FOREIGN_NOTICE_RECV) { + $users[] = $flink->user_id; + } + } +} else { + $user = User::staticGet('nickname', $nickname); + $users = array($user->id); } -$user = User::staticGet('nickname', $nickname); -$auth = twitterAuthForUser($user); -$flink = Foreign_link::getByUserID($user->id, - TWITTER_SERVICE); +$output = array(); +foreach ($users as $id) { + $user = User::staticGet('id', $id); + if (!$user) { + throw new Exception("No user for id $id"); + } + $auth = twitterAuthForUser($user); + $flink = Foreign_link::getByUserID($user->id, + TWITTER_SERVICE); -$friends->friends = $auth->friendsIds(); -dumpMessage($flink, $friends); + $friends->friends = $auth->friendsIds(); + dumpMessage($flink, $friends); -$timeline = $auth->statusesHomeTimeline(); -foreach ($timeline as $status) { - dumpMessage($flink, $status); + $timeline = $auth->statusesHomeTimeline(); + foreach ($timeline as $status) { + $output[] = prepMessage($flink, $status); + } } +usort($output, function($a, $b) { + if ($a->message->id < $b->message->id) { + return -1; + } else if ($a->message->id == $b->message->id) { + return 0; + } else { + return 1; + } +}); + +foreach ($output as $msg) { + print json_encode($msg) . "\r\n"; +} |