]> git.mxchange.org Git - friendica-addons.git/commitdiff
[twitter] Refactor common API calls on posts
authorHypolite Petovan <hypolite@mrpetovan.com>
Sat, 2 Oct 2021 20:48:23 +0000 (16:48 -0400)
committerHypolite Petovan <hypolite@mrpetovan.com>
Sat, 2 Oct 2021 20:54:21 +0000 (16:54 -0400)
- Re-activate post deletion API calls

twitter/twitter.php

index 210f0fa9800f35774597257c760d05ba2f36225e..7ce988b5fe82d4e026a34fb4df384e393fddeb80 100644 (file)
@@ -510,7 +510,7 @@ function twitter_probe_detect(App $a, array &$hookData)
        }
 }
 
-function twitter_action(App $a, $uid, $pid, $action)
+function twitter_api_post(string $apiPath, string $pid, int $uid)
 {
        if (empty($pid)) {
                return;
@@ -525,34 +525,21 @@ function twitter_action(App $a, $uid, $pid, $action)
 
        $post = ['id' => $pid];
 
-       Logger::debug('before action', ['action' => $action, 'pid' => $pid, 'data' => $post]);
-       $result = [];
+       Logger::debug('before action', ['action' => $apiPath, 'pid' => $pid, 'data' => $post]);
 
        try {
-               switch ($action) {
-                       case 'delete':
-                               // To-Do: $result = $connection->post('statuses/destroy', $post);
-                               break;
-                       case 'like':
-                               $result = $connection->post('favorites/create', $post);
-                               if ($connection->getLastHttpCode() != 200) {
-                                       Logger::warning('Unable to create favorite', ['result' => $result]);
-                               }
-                               break;
-                       case 'unlike':
-                               $result = $connection->post('favorites/destroy', $post);
-                               if ($connection->getLastHttpCode() != 200) {
-                                       Logger::warning('Unable to destroy favorite', ['result' => $result]);
-                               }
-                               break;
-                       default:
-                               Logger::warning('Unhandled action', ['action' => $action]);
+               $result = $connection->post($apiPath, $post);
+               if ($connection->getLastHttpCode() != 200) {
+                       Logger::warning('[twitter] API call unsuccessful', ['apiPath' => $apiPath, 'post' => $post, 'result' => $result]);
                }
        } catch (TwitterOAuthException $twitterOAuthException) {
-               Logger::warning('Unable to communicate with twitter', ['action' => $action, 'data' => $post, 'code' => $twitterOAuthException->getCode(), 'exception' => $twitterOAuthException]);
+               Logger::warning('Unable to communicate with twitter', ['apiPath' => $apiPath, 'data' => $post, 'code' => $twitterOAuthException->getCode(), 'exception' => $twitterOAuthException]);
+               $result = false;
        }
 
-       Logger::info('after action', ['action' => $action, 'result' => $result]);
+       Logger::info('after action', ['action' => $apiPath, 'result' => $result]);
+
+       return $result;
 }
 
 function twitter_get_id(string $uri)
@@ -624,16 +611,13 @@ function twitter_post_hook(App $a, array &$b)
        }
 
        if (($b['verb'] == Activity::POST) && $b['deleted']) {
-               twitter_action($a, $b['uid'], twitter_get_id($thr_parent['uri']), 'delete');
+               twitter_api_post('statuses/destroy', twitter_get_id($thr_parent['uri']), $b['uid']);
        }
 
        if ($b['verb'] == Activity::LIKE) {
                Logger::info('Like', ['uid' => $b['uid'], 'id' => twitter_get_id($b["thr-parent"])]);
-               if ($b['deleted']) {
-                       twitter_action($a, $b["uid"], twitter_get_id($b["thr-parent"]), "unlike");
-               } else {
-                       twitter_action($a, $b["uid"], twitter_get_id($b["thr-parent"]), "like");
-               }
+
+               twitter_api_post($b['deleted'] ? 'favorite/destroy' : 'favorite/create', twitter_get_id($b["thr-parent"]), $b["uid"]);
 
                return;
        }
@@ -641,7 +625,7 @@ function twitter_post_hook(App $a, array &$b)
        if ($b['verb'] == Activity::ANNOUNCE) {
                Logger::info('Retweet', ['uid' => $b['uid'], 'id' => twitter_get_id($b["thr-parent"])]);
                if ($b['deleted']) {
-                       twitter_action($a, $b['uid'], twitter_get_id($thr_parent['extid']), 'delete');
+                       twitter_api_post('statuses/destroy', twitter_get_id($thr_parent['extid']), $b['uid']);
                } else {
                        twitter_retweet($b["uid"], twitter_get_id($b["thr-parent"]));
                }
@@ -769,8 +753,7 @@ function twitter_post_hook(App $a, array &$b)
                        $post['in_reply_to_status_id'] = twitter_get_id($thr_parent['uri']);
                }
 
-               $url = 'statuses/update';
-               $result = $connection->post($url, $post);
+               $result = $connection->post('statuses/update', $post);
                Logger::info('twitter_post send', ['id' => $b['id'], 'result' => $result]);
 
                if (!empty($result->source)) {
@@ -2145,13 +2128,7 @@ function twitter_retweet(int $uid, int $id, int $item_id = 0)
 {
        Logger::info('Retweeting', ['user' => $uid, 'id' => $id]);
 
-       $ckey    = DI::config()->get('twitter', 'consumerkey');
-       $csecret = DI::config()->get('twitter', 'consumersecret');
-       $otoken  = DI::pConfig()->get($uid, 'twitter', 'oauthtoken');
-       $osecret = DI::pConfig()->get($uid, 'twitter', 'oauthsecret');
-
-       $connection = new TwitterOAuth($ckey, $csecret, $otoken, $osecret);
-       $result = $connection->post('statuses/retweet/' . $id);
+       $result = twitter_api_post('statuses/retweet', $id, $uid);
 
        Logger::info('Retweeted', ['user' => $uid, 'id' => $id, 'result' => $result]);