summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEvan Prodromou <evan@status.net>2010-09-06 08:54:04 -0400
committerEvan Prodromou <evan@status.net>2010-09-07 04:00:59 -0400
commita46ba0b54842ae304a642030e006ead5dbe6361f (patch)
tree3f3ce8fb07377346b1f05907d64cc8be22749022
parentc2c6acbfd25410f73a6bc83e8167f724c31ef22f (diff)
save Twitter mentions as StatusNet replies
-rwxr-xr-xplugins/TwitterBridge/daemons/twitterstatusfetcher.php26
1 files changed, 26 insertions, 0 deletions
diff --git a/plugins/TwitterBridge/daemons/twitterstatusfetcher.php b/plugins/TwitterBridge/daemons/twitterstatusfetcher.php
index b310b8f36..e092cd1dd 100755
--- a/plugins/TwitterBridge/daemons/twitterstatusfetcher.php
+++ b/plugins/TwitterBridge/daemons/twitterstatusfetcher.php
@@ -348,6 +348,9 @@ class TwitterStatusFetcher extends ParallelizingDaemon
}
Notice_to_status::saveNew($notice->id, $status->id);
+
+ $this->saveStatusMentions($notice, $status);
+
$notice->blowOnInsert();
return $notice;
@@ -776,6 +779,29 @@ class TwitterStatusFetcher extends ParallelizingDaemon
{
return "@<a href='http://twitter.com/{$object->screen_name}' title='{$object->name}'>{$object->screen_name}</a>";
}
+
+ function saveStatusMentions($notice, $status)
+ {
+ $mentions = array();
+
+ if (empty($status->entities) || empty($status->entities->user_mentions)) {
+ return;
+ }
+
+ foreach ($status->entities->user_mentions as $mention) {
+ $flink = Foreign_link::getByForeignID($mention->id, TWITTER_SERVICE);
+ if (!empty($flink)) {
+ $user = User::staticGet('id', $flink->user_id);
+ if (!empty($user)) {
+ $reply = new Reply();
+ $reply->notice_id = $notice->id;
+ $reply->profile_id = $user->id;
+ common_log(LOG_INFO, __METHOD__ . ": saving reply: notice {$notice->id} to profile {$user->id}");
+ $id = $reply->insert();
+ }
+ }
+ }
+ }
}
$id = null;