From b732cf89689712db2992d9e61cf8fed508bff138 Mon Sep 17 00:00:00 2001 From: Hypolite Petovan Date: Sun, 26 Sep 2021 07:36:49 -0400 Subject: [PATCH] [twitter] Use existing contact fields instead of guessing in twitter_unfollow - Add `friendship/destroy` API call result logging --- twitter/twitter.php | 11 +++-------- 1 file changed, 3 insertions(+), 8 deletions(-) diff --git a/twitter/twitter.php b/twitter/twitter.php index e0fa6f3a..948de3ba 100644 --- a/twitter/twitter.php +++ b/twitter/twitter.php @@ -177,16 +177,10 @@ function twitter_follow(App $a, array &$contact) function twitter_unfollow(App $a, array &$hook_data) { $contact = $hook_data['contact']; - Logger::info('Check if contact is twitter contact', ['url' => $contact["url"]]); - - if (!strstr($contact["url"], "://twitter.com") && !strstr($contact["url"], "@twitter.com")) { + if ($contact['netword'] !== Protocol::TWITTER) { return; } - // contact seems to be a twitter contact, so continue - $nickname = preg_replace("=https?://twitter.com/(.*)=ism", "$1", $contact["url"]); - $nickname = str_replace("@twitter.com", "", $nickname); - $uid = $a->getLoggedInUserId(); $ckey = DI::config()->get('twitter', 'consumerkey'); @@ -201,7 +195,8 @@ function twitter_unfollow(App $a, array &$hook_data) try { $connection = new TwitterOAuth($ckey, $csecret, $otoken, $osecret); - $connection->post('friendships/destroy', ['screen_name' => $nickname]); + $result = $connection->post('friendships/destroy', ['screen_name' => $contact['nick']]); + Logger::info('[twitter] API call "friendship/destroy" successful', ['result' => $result]); } catch(Exception $e) { Logger::notice('[twitter] API call "friendships/destroy" failed', ['uid' => $uid, 'url' => $contact['url'], 'exception' => $e]); }