]> git.mxchange.org Git - quix0rs-gnu-social.git/commitdiff
Merge remote branch 'laconica/0.8.x' into 0.9.x
authorCraig Andrews <candrews@integralblue.com>
Wed, 2 Sep 2009 20:42:15 +0000 (16:42 -0400)
committerCraig Andrews <candrews@integralblue.com>
Wed, 2 Sep 2009 20:42:15 +0000 (16:42 -0400)
Conflicts:
lib/common.php
lib/twitter.php

1  2 
README
classes/File.php
classes/Notice.php
install.php
lib/command.php
lib/twitter.php
lib/twitterapi.php
lib/twitteroauthclient.php
lib/util.php

diff --cc README
Simple merge
Simple merge
Simple merge
diff --cc install.php
Simple merge
diff --cc lib/command.php
Simple merge
diff --cc lib/twitter.php
index 2d2b08f7301d08a7f133f0dd36985989d35fd874,676c9b20a2522f37fafbcd0092a7c88dd1e1f778..b49e2e11902997bdfb1681a48729361397f956f1
@@@ -154,75 -154,121 +154,126 @@@ function broadcast_twitter($notice
                                         TWITTER_SERVICE);
  
      if (is_twitter_bound($notice, $flink)) {
+         if (TwitterOAuthClient::isPackedToken($flink->credentials)) {
+             return broadcast_oauth($notice, $flink);
+         } else {
+             return broadcast_basicauth($notice, $flink);
+         }
+     }
  
-         $user = $flink->getUser();
-         // XXX: Hack to get around PHP cURL's use of @ being a a meta character
-         $statustxt = preg_replace('/^@/', ' @', $notice->content);
-         // Convert !groups to #hashes
-         $statustxt = preg_replace('/(^|\s)!([A-Za-z0-9]{1,64})/', "\\1#\\2", $statustxt);
+     return true;
+ }
  
-         $token = TwitterOAuthClient::unpackToken($flink->credentials);
+ function broadcast_oauth($notice, $flink) {
 -
+     $user = $flink->getUser();
+     $statustxt = format_status($notice);
++    // Convert !groups to #hashes
++    $statustxt = preg_replace('/(^|\s)!([A-Za-z0-9]{1,64})/', "\\1#\\2", $statustxt);
+     $token = TwitterOAuthClient::unpackToken($flink->credentials);
+     $client = new TwitterOAuthClient($token->key, $token->secret);
+     $status = null;
+     try {
+         $status = $client->statusesUpdate($statustxt);
+     } catch (OAuthClientCurlException $e) {
+         return process_error($e, $flink);
+     }
  
-         $client = new TwitterOAuthClient($token->key, $token->secret);
+     if (empty($status)) {
  
-         $status = null;
+         // This could represent a failure posting,
+         // or the Twitter API might just be behaving flakey.
  
-         try {
-             $status = $client->statusesUpdate($statustxt);
-         } catch (OAuthClientCurlException $e) {
+         $errmsg = sprintf('Twitter bridge - No data returned by Twitter API when ' .
+                           'trying to send update for %1$s (user id %2$s).',
+                           $user->nickname, $user->id);
+         common_log(LOG_WARNING, $errmsg);
  
-             if ($e->getMessage() == 'The requested URL returned error: 401') {
+         return false;
+     }
  
-                 $errmsg = sprintf('User %1$s (user id: %2$s) has an invalid ' .
-                                   'Twitter OAuth access token.',
-                                   $user->nickname, $user->id);
-                 common_log(LOG_WARNING, $errmsg);
+     // Notice crossed the great divide
  
-                 // Bad auth token! We need to delete the foreign_link
-                 // to Twitter and inform the user.
+     $msg = sprintf('Twitter bridge - posted notice %s to Twitter using OAuth.',
+                    $notice->id);
+     common_log(LOG_INFO, $msg);
  
-                 remove_twitter_link($flink);
-                 return true;
+     return true;
+ }
  
-             } else {
+ function broadcast_basicauth($notice, $flink)
+ {
+     $user = $flink->getUser();
  
-                 // Some other error happened, so we should probably
-                 // try to send again later.
+     $statustxt = format_status($notice);
  
-                 $errmsg = sprintf('cURL error trying to send notice to Twitter ' .
-                                   'for user %1$s (user id: %2$s) - ' .
-                                   'code: %3$s message: $4$s.',
-                                   $user->nickname, $user->id,
-                                   $e->getCode(), $e->getMessage());
-                 common_log(LOG_WARNING, $errmsg);
+     $client = new TwitterBasicAuthClient($flink);
+     $status = null;
  
-                 return false;
-             }
-         }
+     try {
+         $status = $client->statusesUpdate($statustxt);
+     } catch (BasicAuthCurlException $e) {
+         return process_error($e, $flink);
+     }
  
-         if (empty($status)) {
+     if (empty($status)) {
  
-             // This could represent a failure posting,
-             // or the Twitter API might just be behaving flakey.
+         $errmsg = sprintf('Twitter bridge - No data returned by Twitter API when ' .
+                           'trying to send update for %1$s (user id %2$s).',
+                           $user->nickname, $user->id);
+         common_log(LOG_WARNING, $errmsg);
  
 +            $errmsg = sprintf('No data returned by Twitter API when ' .
 +                             'trying to send update for %1$s (user id %2$s).',
 +                             $user->nickname, $user->id);
 +            common_log(LOG_WARNING, $errmsg);
+         return false;
+     }
  
-             return false;
-         }
+     $msg = sprintf('Twitter bridge - posted notice %s to Twitter using basic auth.',
+                    $notice->id);
+     common_log(LOG_INFO, $msg);
  
-         // Notice crossed the great divide
+     return true;
+ }
  
-         $msg = sprintf('Twitter bridge posted notice %s to Twitter.',
-                        $notice->id);
-         common_log(LOG_INFO, $msg);
+ function process_error($e, $flink)
+ {
+     $user        = $flink->getUser();
+     $errmsg      = $e->getMessage();
+     $delivered   = false;
+     switch($errmsg) {
+      case 'The requested URL returned error: 401':
+         $logmsg = sprintf('Twiter bridge - User %1$s (user id: %2$s) has an invalid ' .
+                           'Twitter screen_name/password combo or an invalid acesss token.',
+                           $user->nickname, $user->id);
+         $delivered = true;
+         remove_twitter_link($flink);
+         break;
+      case 'The requested URL returned error: 403':
+         $logmsg = sprintf('Twitter bridge - User %1$s (user id: %2$s) has exceeded ' .
+                           'his/her Twitter request limit.',
+                           $user->nickname, $user->id);
+         break;
+      default:
+         $logmsg = sprintf('Twitter bridge - cURL error trying to send notice to Twitter ' .
+                           'for user %1$s (user id: %2$s) - ' .
+                           'code: %3$s message: %4$s.',
+                           $user->nickname, $user->id,
+                           $e->getCode(), $e->getMessage());
+         break;
      }
  
-     return true;
+     common_log(LOG_WARNING, $logmsg);
+     return $delivered;
+ }
+ function format_status($notice)
+ {
+     // XXX: Hack to get around PHP cURL's use of @ being a a meta character
+     return preg_replace('/^@/', ' @', $notice->content);
  }
  
  function remove_twitter_link($flink)
Simple merge
Simple merge
diff --cc lib/util.php
Simple merge