diff options
author | Evan Prodromou <evan@status.net> | 2010-09-03 01:46:02 -0400 |
---|---|---|
committer | Evan Prodromou <evan@status.net> | 2010-09-07 04:00:57 -0400 |
commit | 4d70ba9597e211a7650630d3627ca8b427e2f96c (patch) | |
tree | e085f60d976f16a84c9a650843c4b350f4755959 /plugins/TwitterBridge | |
parent | ed99fd51e8cb8bdbd03f41400018760f95318328 (diff) |
save reply status for Twitter notices
Diffstat (limited to 'plugins/TwitterBridge')
-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. * |