From a5554bc11e5565f30a42fa26cf94fe27a3477cd5 Mon Sep 17 00:00:00 2001
From: Evan Prodromou <evan@status.net>
Date: Sun, 5 Sep 2010 00:42:58 -0400
Subject: [PATCH] check status_id before trying to retweet it

---
 plugins/TwitterBridge/twitter.php | 14 ++++++++++----
 1 file changed, 10 insertions(+), 4 deletions(-)

diff --git a/plugins/TwitterBridge/twitter.php b/plugins/TwitterBridge/twitter.php
index 94eaedee51..4084633543 100644
--- a/plugins/TwitterBridge/twitter.php
+++ b/plugins/TwitterBridge/twitter.php
@@ -143,7 +143,10 @@ function broadcast_twitter($notice)
 
     if (!empty($flink) && TwitterOAuthClient::isPackedToken($flink->credentials)) {
         if (!empty($notice->repeat_of) && is_twitter_notice($notice->repeat_of)) {
-            return retweet_notice($flink, Notice::staticGet('id', $notice->repeat_of));
+            $retweet = retweet_notice($flink, Notice::staticGet('id', $notice->repeat_of));
+            if (!empty($retweet)) {
+                Notice_to_status::saveNew($notice->id, $retweet->id);
+            }
         } else if (is_twitter_bound($notice, $flink)) {
             return broadcast_oauth($notice, $flink);
         }
@@ -159,11 +162,14 @@ function retweet_notice($flink, $notice)
 
     $id = twitter_status_id($notice);
 
+    if (empty($id)) {
+        common_log(LOG_WARNING, "Trying to retweet notice {$notice->id} with no known status id.");
+        return null;
+    }
+
     try {
         $status = $client->statusesRetweet($id);
-        if (!empty($status)) {
-            Notice_to_status::saveNew($notice->id, $status->id);
-        }
+        return $status;
     } catch (OAuthClientException $e) {
         return process_error($e, $flink, $notice);
     }
-- 
2.39.5