summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBrion Vibber <brion@pobox.com>2010-11-02 16:43:01 -0700
committerBrion Vibber <brion@pobox.com>2010-11-02 16:43:01 -0700
commita2f0f68d75b2cf49815a695a30761c6c9538449e (patch)
treebc4c5cc2884c904b6c2106025cd4ffdfc6b1ce18
parent445b306b5494210f119525a13c4148024a6c5576 (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.php63
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";
+}