diff options
author | Evan Prodromou <evan@status.net> | 2010-09-03 01:46:02 -0400 |
---|---|---|
committer | Evan Prodromou <evan@status.net> | 2010-09-03 15:40:19 -0400 |
commit | f7d69c38af60fbc984743d20340bd0fd02fd6d77 (patch) | |
tree | 159589a39c05ad4ba88112be2ce539cf8b9a52f1 | |
parent | 30eee590685349e20b4ded9127da7c19794a70be (diff) |
save reply status for Twitter notices
-rwxr-xr-x | plugins/TwitterBridge/daemons/twitterstatusfetcher.php | 48 |
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. * |