summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEvan Prodromou <evan@status.net>2010-09-05 01:17:56 -0400
committerEvan Prodromou <evan@status.net>2010-09-07 04:00:59 -0400
commitb059a19e0fb82869ab2ac5dbb4ec94348a58aacb (patch)
treea42690eedb5153b16899df17785360ccc75657e2
parentba8a24073fc3d545fdc86b613d32b4bfc33743c3 (diff)
delete Twitter notice if it was posted from here
-rw-r--r--plugins/TwitterBridge/TwitterBridgePlugin.php26
-rw-r--r--plugins/TwitterBridge/twitteroauthclient.php16
2 files changed, 42 insertions, 0 deletions
diff --git a/plugins/TwitterBridge/TwitterBridgePlugin.php b/plugins/TwitterBridge/TwitterBridgePlugin.php
index f7d3b6659..bad6a3941 100644
--- a/plugins/TwitterBridge/TwitterBridgePlugin.php
+++ b/plugins/TwitterBridge/TwitterBridgePlugin.php
@@ -423,7 +423,33 @@ class TwitterBridgePlugin extends Plugin
function onNoticeDeleteRelated($notice)
{
$n2s = Notice_to_status::staticGet('notice_id', $notice->id);
+
if (!empty($n2s)) {
+
+ $user = common_current_user();
+
+ if (empty($user) || $user->id != $notice->profile_id) {
+ $this->log(LOG_INFO, "Skipping deleting notice for {$notice->id} since it doesn't seem to be by the author.");
+ return true;
+ }
+
+ $flink = Foreign_link::getByUserID($notice->profile_id,
+ TWITTER_SERVICE); // twitter service
+
+ if (empty($flink)) {
+ return true;
+ }
+
+ if (!TwitterOAuthClient::isPackedToken($flink->credentials)) {
+ $this->log(LOG_INFO, "Skipping deleting notice for {$notice->id} since link is not OAuth.");
+ return true;
+ }
+
+ $token = TwitterOAuthClient::unpackToken($flink->credentials);
+ $client = new TwitterOAuthClient($token->key, $token->secret);
+
+ $client->statusesDestroy($n2s->status_id);
+
$n2s->delete();
}
return true;
diff --git a/plugins/TwitterBridge/twitteroauthclient.php b/plugins/TwitterBridge/twitteroauthclient.php
index 22ccaba07..0f5e4dbda 100644
--- a/plugins/TwitterBridge/twitteroauthclient.php
+++ b/plugins/TwitterBridge/twitteroauthclient.php
@@ -324,4 +324,20 @@ class TwitterOAuthClient extends OAuthClient
$status = json_decode($response);
return $status;
}
+
+ /**
+ * Calls Twitter's /statuses/destroy API method
+ *
+ * @param int $id ID of the status to destroy
+ *
+ * @return object destroyed
+ */
+
+ function statusesDestroy($id)
+ {
+ $url = "http://api.twitter.com/1/statuses/destroy/$id.json";
+ $response = $this->oAuthPost($url);
+ $status = json_decode($response);
+ return $status;
+ }
}