From cff12603cf13ddde59f82597cdf896bf0deaf596 Mon Sep 17 00:00:00 2001 From: Zach Copley Date: Fri, 4 Dec 2009 20:17:42 +0000 Subject: Make imported Twitter notices show up via real time plugins. --- plugins/TwitterBridge/daemons/twitterstatusfetcher.php | 18 +++++++++++++++--- 1 file changed, 15 insertions(+), 3 deletions(-) (limited to 'plugins/TwitterBridge/daemons/twitterstatusfetcher.php') diff --git a/plugins/TwitterBridge/daemons/twitterstatusfetcher.php b/plugins/TwitterBridge/daemons/twitterstatusfetcher.php index eba1d563b..d8901f47b 100755 --- a/plugins/TwitterBridge/daemons/twitterstatusfetcher.php +++ b/plugins/TwitterBridge/daemons/twitterstatusfetcher.php @@ -209,7 +209,11 @@ class TwitterStatusFetcher extends ParallelizingDaemon continue; } - $this->saveStatus($status, $flink); + $notice = null; + + $notice = $this->saveStatus($status, $flink); + + common_broadcast_notice($notice); } // Okay, record the time we synced with Twitter for posterity @@ -235,12 +239,14 @@ class TwitterStatusFetcher extends ParallelizingDaemon $uri = 'http://twitter.com/' . $status->user->screen_name . '/status/' . $status->id; - $notice = Notice::staticGet('uri', $uri); - // check to see if we've already imported the status + $notice = Notice::staticGet('uri', $uri); + if (empty($notice)) { + // XXX: transaction here? + $notice = new Notice(); $notice->profile_id = $id; @@ -257,6 +263,7 @@ class TwitterStatusFetcher extends ParallelizingDaemon $id = $notice->insert(); Event::handle('EndNoticeSave', array($notice)); } + } if (!Notice_inbox::pkeyGet(array('notice_id' => $notice->id, @@ -270,7 +277,12 @@ class TwitterStatusFetcher extends ParallelizingDaemon $inbox->source = NOTICE_INBOX_SOURCE_GATEWAY; // From a private source $inbox->insert(); + } + + $notice->blowCaches(); + + return $notice; } function ensureProfile($user) -- cgit v1.2.3-54-g00ecf From eb0a5977ff7e325022d460ae3cf540f3415bd33d Mon Sep 17 00:00:00 2001 From: Zach Copley Date: Fri, 4 Dec 2009 20:39:50 +0000 Subject: Don't try to broadcast the notice if something went wrong. --- plugins/TwitterBridge/daemons/twitterstatusfetcher.php | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) (limited to 'plugins/TwitterBridge/daemons/twitterstatusfetcher.php') diff --git a/plugins/TwitterBridge/daemons/twitterstatusfetcher.php b/plugins/TwitterBridge/daemons/twitterstatusfetcher.php index d8901f47b..b4ca12be2 100755 --- a/plugins/TwitterBridge/daemons/twitterstatusfetcher.php +++ b/plugins/TwitterBridge/daemons/twitterstatusfetcher.php @@ -213,7 +213,9 @@ class TwitterStatusFetcher extends ParallelizingDaemon $notice = $this->saveStatus($status, $flink); - common_broadcast_notice($notice); + if (!empty($notice)) { + common_broadcast_notice($notice); + } } // Okay, record the time we synced with Twitter for posterity -- cgit v1.2.3-54-g00ecf