summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEvan Prodromou <evan@status.net>2010-09-03 01:46:02 -0400
committerEvan Prodromou <evan@status.net>2010-09-07 04:00:57 -0400
commit4d70ba9597e211a7650630d3627ca8b427e2f96c (patch)
treee085f60d976f16a84c9a650843c4b350f4755959
parented99fd51e8cb8bdbd03f41400018760f95318328 (diff)
save reply status for Twitter notices
-rwxr-xr-xplugins/TwitterBridge/daemons/twitterstatusfetcher.php48
1 files changed, 33 insertions, 15 deletions
diff --git a/plugins/TwitterBridge/daemons/twitterstatusfetcher.php b/plugins/TwitterBridge/daemons/twitterstatusfetcher.php
index 964abc0d3..cf75e48f6 100755
--- a/plugins/TwitterBridge/daemons/twitterstatusfetcher.php
+++ b/plugins/TwitterBridge/daemons/twitterstatusfetcher.php
@@ -241,10 +241,7 @@ class TwitterStatusFetcher extends ParallelizingDaemon
return;
}
- $statusUri = 'http://twitter.com/'
- . $status->user->screen_name
- . '/status/'
- . $status->id;
+ $statusUri = $this->makeStatusURI($status->user->screen_name, $status->id);
// check to see if we've already imported the status
@@ -270,7 +267,23 @@ class TwitterStatusFetcher extends ParallelizingDaemon
);
$notice->source = 'twitter';
+
$notice->reply_to = null;
+
+ if (!empty($status->in_reply_to_status_id)) {
+ $replyUri = $this->makeStatusURI($status->in_reply_to_screen_name, $status->in_reply_to_status_id);
+ $reply = Notice::staticGet('uri', $replyUri);
+ if (!empty($reply)) {
+ $notice->reply_to = $reply->id;
+ $notice->conversation = $reply->conversation;
+ }
+ }
+
+ if (empty($notice->conversation)) {
+ $conv = Conversation::create();
+ $notice->conversation = $conv->id;
+ }
+
$notice->is_local = Notice::GATEWAY;
$notice->content = common_shorten_links($status->text);
@@ -292,17 +305,6 @@ class TwitterStatusFetcher extends ParallelizingDaemon
Event::handle('EndNoticeSave', array($notice));
}
- $orig = clone($notice);
- $conv = Conversation::create();
-
- $notice->conversation = $conv->id;
-
- if (!$notice->update($orig)) {
- common_log_db_error($notice, 'UPDATE', __FILE__);
- common_log(LOG_ERR, $this->name() .
- ' - Problem saving notice.');
- }
-
Inbox::insertNotice($flink->user_id, $notice->id);
$notice->blowOnInsert();
@@ -310,6 +312,22 @@ class TwitterStatusFetcher extends ParallelizingDaemon
}
/**
+ * Make an URI for a status.
+ *
+ * @param object $status status object
+ *
+ * @return string URI
+ */
+
+ function makeStatusURI($username, $id)
+ {
+ return 'http://twitter.com/'
+ . $username
+ . '/status/'
+ . $id;
+ }
+
+ /**
* Look up a Profile by profileurl field. Profile::staticGet() was
* not working consistently.
*