Merge pull request #907 from annando/twitter-logging
authorHypolite Petovan <hypolite@mrpetovan.com>
Thu, 31 Oct 2019 18:50:40 +0000 (14:50 -0400)
committerGitHub <noreply@github.com>
Thu, 31 Oct 2019 18:50:40 +0000 (14:50 -0400)
Added logging to twitter addon

1  2 
twitter/twitter.php

diff --combined twitter/twitter.php
@@@ -85,7 -85,6 +85,7 @@@ use Friendica\Model\Item
  use Friendica\Model\ItemContent;
  use Friendica\Model\User;
  use Friendica\Object\Image;
 +use Friendica\Protocol\Activity;
  use Friendica\Util\ConfigFileLoader;
  use Friendica\Util\DateTimeFormat;
  use Friendica\Util\Network;
@@@ -110,7 -109,7 +110,7 @@@ function twitter_install(
        Hook::register('expire'                 , __FILE__, 'twitter_expire');
        Hook::register('prepare_body'           , __FILE__, 'twitter_prepare_body');
        Hook::register('check_item_notification', __FILE__, 'twitter_check_item_notification');
-       Logger::log("installed twitter");
+       Logger::info("installed twitter");
  }
  
  function twitter_uninstall()
@@@ -155,7 -154,7 +155,7 @@@ function twitter_check_item_notificatio
  
  function twitter_follow(App $a, array &$contact)
  {
-       Logger::log("twitter_follow: Check if contact is twitter contact. " . $contact["url"], Logger::DEBUG);
+       Logger::info('Check if contact is twitter contact', ['url' => $contact["url"]]);
  
        if (!strstr($contact["url"], "://twitter.com") && !strstr($contact["url"], "@twitter.com")) {
                return;
@@@ -240,7 -239,7 +240,7 @@@ function twitter_settings_post(App $a
        } else {
                if (isset($_POST['twitter-pin'])) {
                        //  if the user supplied us with a PIN from Twitter, let the magic of OAuth happen
-                       Logger::log('got a Twitter PIN');
+                       Logger::notice('got a Twitter PIN');
                        $ckey    = Config::get('twitter', 'consumerkey');
                        $csecret = Config::get('twitter', 'consumersecret');
                        //  the token and secret for which the PIN was generated were hidden in the settings
@@@ -429,7 -428,7 +429,7 @@@ function twitter_hook_fork(App $a, arra
        if (PConfig::get($post['uid'], 'twitter', 'import')) {
                // Don't fork if it isn't a reply to a twitter post
                if (($post['parent'] != $post['id']) && !Item::exists(['id' => $post['parent'], 'network' => Protocol::TWITTER])) {
-                       Logger::log('No twitter parent found for item ' . $post['id']);
+                       Logger::notice('No twitter parent found', ['item' => $post['id']]);
                        $b['execute'] = false;
                        return;
                }
@@@ -557,11 -556,11 +557,11 @@@ function twitter_post_hook(App $a, arra
                }
        }
  
 -      if (($b['verb'] == ACTIVITY_POST) && $b['deleted']) {
 +      if (($b['verb'] == Activity::POST) && $b['deleted']) {
                twitter_action($a, $b["uid"], substr($orig_post["uri"], 9), "delete");
        }
  
 -      if ($b['verb'] == ACTIVITY_LIKE) {
 +      if ($b['verb'] == Activity::LIKE) {
                Logger::log("twitter_post_hook: parameter 2 " . substr($b["thr-parent"], 9), Logger::DEBUG);
                if ($b['deleted']) {
                        twitter_action($a, $b["uid"], substr($b["thr-parent"], 9), "unlike");
                $b['body'] = twitter_update_mentions($b['body']);
  
                $msgarr = ItemContent::getPlaintextPost($b, $max_char, true, 8);
-               Logger::info('Got plaintext', $msgarr);
+               Logger::info('Got plaintext', ['id' => $b['id'], 'message' => $msgarr]);
                $msg = $msgarr["text"];
  
                if (($msg == "") && isset($msgarr["title"])) {
                }
  
                if (empty($msg)) {
+                       Logger::info('Empty message', ['id' => $b['id']]);
                        return;
                }
  
                $post = [];
  
                if (!empty($msgarr['images'])) {
+                       Logger::info('Got images', ['id' => $b['id'], 'images' => $msgarr['images']]);
                        try {
                                $media_ids = [];
                                foreach ($msgarr['images'] as $image) {
                                        $tempfile = tempnam(get_temppath(), 'cache');
                                        file_put_contents($tempfile, $img_str);
  
+                                       Logger::info('Uploading', ['id' => $b['id'], 'image' => $image['url']]);
                                        $media = $connection->upload('media/upload', ['media' => $tempfile]);
  
                                        unlink($tempfile);
                                                        $data = ['media_id' => $media->media_id_string,
                                                                'alt_text' => ['text' => substr($image['description'], 0, 420)]];
                                                        $ret = $cb->media_metadata_create($data);
-                                                       Logger::info('Metadata create', ['data' => $data, 'return' => json_encode($ret)]);
+                                                       Logger::info('Metadata create', ['id' => $b['id'], 'data' => $data, 'return' => json_encode($ret)]);
                                                }
                                        } else {
-                                               throw new Exception('Failed upload of ' . $image['url']);
+                                               throw new Exception('Failed upload', ['id' => $b['id'], 'image' => $image['url']]);
                                        }
                                }
                                $post['media_ids'] = implode(',', $media_ids);
                                        unset($post['media_ids']);
                                }
                        } catch (Exception $e) {
-                               Logger::log('Exception when trying to send to Twitter: ' . $e->getMessage());
+                               Logger::info('Exception when trying to send to Twitter', ['id' => $b['id'], 'message' => $e->getMessage()]);
                        }
                }
  
  
                $url = 'statuses/update';
                $result = $connection->post($url, $post);
-               Logger::log('twitter_post send, result: ' . print_r($result, true), Logger::DEBUG);
+               Logger::info('twitter_post send', ['id' => $b['id'], 'result' => $result]);
  
                if (!empty($result->source)) {
                        Config::set("twitter", "application_name", strip_tags($result->source));
                }
  
                if (!empty($result->errors)) {
-                       Logger::log('Send to Twitter failed: "' . print_r($result->errors, true) . '"');
+                       Logger::info('Send to Twitter failed', ['id' => $b['id'], 'error' => $result->errors]);
                        Worker::defer();
                } elseif ($iscomment) {
-                       Logger::log('twitter_post: Update extid ' . $result->id_str . " for post id " . $b['id']);
+                       Logger::info('Update extid', ['id' => $b['id'], 'extid' => $result->id_str]);
                        Item::update(['extid' => "twitter::" . $result->id_str], ['id' => $b['id']]);
                }
        }
@@@ -743,16 -745,16 +746,16 @@@ function twitter_cron(App $a
        if ($last) {
                $next = $last + ($poll_interval * 60);
                if ($next > time()) {
-                       Logger::log('twitter: poll intervall not reached');
+                       Logger::notice('twitter: poll intervall not reached');
                        return;
                }
        }
-       Logger::log('twitter: cron_start');
+       Logger::notice('twitter: cron_start');
  
        $r = q("SELECT * FROM `pconfig` WHERE `cat` = 'twitter' AND `k` = 'mirror_posts' AND `v` = '1'");
        if (DBA::isResult($r)) {
                foreach ($r as $rr) {
-                       Logger::log('twitter: fetching for user ' . $rr['uid']);
+                       Logger::notice('Fetching', ['user' => $rr['uid']]);
                        Worker::add(['priority' => PRIORITY_MEDIUM, 'force_priority' => true], "addon/twitter/twitter_sync.php", 1, (int) $rr['uid']);
                }
        }
                        if ($abandon_days != 0) {
                                $user = q("SELECT `login_date` FROM `user` WHERE uid=%d AND `login_date` >= '%s'", $rr['uid'], $abandon_limit);
                                if (!DBA::isResult($user)) {
-                                       Logger::log('abandoned account: timeline from user ' . $rr['uid'] . ' will not be imported');
+                                       Logger::notice('abandoned account: timeline from user will not be imported', ['user' => $rr['uid']]);
                                        continue;
                                }
                        }
  
-                       Logger::log('twitter: importing timeline from user ' . $rr['uid']);
+                       Logger::notice('importing timeline', ['user' => $rr['uid']]);
                        Worker::add(['priority' => PRIORITY_MEDIUM, 'force_priority' => true], "addon/twitter/twitter_sync.php", 2, (int) $rr['uid']);
                        /*
                          // To-Do
                }
        }
  
-       Logger::log('twitter: cron_end');
+       Logger::notice('twitter: cron_end');
  
        Config::set('twitter', 'last_poll', time());
  }
@@@ -813,17 -815,17 +816,17 @@@ function twitter_expire(App $a
        }
        DBA::close($r);
  
-       Logger::log('twitter_expire: expire_start');
+       Logger::notice('twitter_expire: expire_start');
  
        $r = q("SELECT * FROM `pconfig` WHERE `cat` = 'twitter' AND `k` = 'import' AND `v` = '1' ORDER BY RAND()");
        if (DBA::isResult($r)) {
                foreach ($r as $rr) {
-                       Logger::log('twitter_expire: user ' . $rr['uid']);
+                       Logger::notice('twitter_expire', ['user' => $rr['uid']]);
                        Item::expire($rr['uid'], $days, Protocol::TWITTER, true);
                }
        }
  
-       Logger::log('twitter_expire: expire_end');
+       Logger::notice('twitter_expire: expire_end');
  }
  
  function twitter_prepare_body(App $a, array &$b)
@@@ -957,12 -959,12 +960,12 @@@ function twitter_fetchtimeline(App $a, 
        try {
                $items = $connection->get('statuses/user_timeline', $parameters);
        } catch (TwitterOAuthException $e) {
-               Logger::log('Error fetching timeline for user ' . $uid . ': ' . $e->getMessage());
+               Logger::notice('Error fetching timeline', ['user' => $uid, 'message' => $e->getMessage()]);
                return;
        }
  
        if (!is_array($items)) {
-               Logger::log('No items for user ' . $uid, Logger::INFO);
+               Logger::notice('No items', ['user' => $uid]);
                return;
        }
  
@@@ -1341,7 -1343,7 +1344,7 @@@ function twitter_media_entities($post, 
                                        $media[$medium->url] .= "\n[img]" . $medium->media_url_https . '[/img]';
                                }
  
 -                              $postarray['object-type'] = ACTIVITY_OBJ_IMAGE;
 +                              $postarray['object-type'] = Activity\ObjectType::IMAGE;
                                break;
                        case 'video':
                        case 'animated_gif':
                                        $media[$medium->url] .= "\n[img]" . $medium->media_url_https . '[/img]';
                                }
  
 -                              $postarray['object-type'] = ACTIVITY_OBJ_VIDEO;
 +                              $postarray['object-type'] = Activity\ObjectType::VIDEO;
                                if (is_array($medium->video_info->variants)) {
                                        $bitrate = 0;
                                        // We take the video with the highest bitrate
@@@ -1409,11 -1411,11 +1412,11 @@@ function twitter_createpost(App $a, $ui
                        $postarray['thr-parent'] = $parent_item['uri'];
                        $postarray['parent-uri'] = $parent_item['parent-uri'];
                        $postarray['parent'] = $parent_item['parent'];
 -                      $postarray['object-type'] = ACTIVITY_OBJ_COMMENT;
 +                      $postarray['object-type'] = Activity\ObjectType::COMMENT;
                } else {
                        $postarray['thr-parent'] = $postarray['uri'];
                        $postarray['parent-uri'] = $postarray['uri'];
 -                      $postarray['object-type'] = ACTIVITY_OBJ_NOTE;
 +                      $postarray['object-type'] = Activity\ObjectType::NOTE;
                }
  
                // Is it me?
                $create_user = false;
        } else {
                $postarray['parent-uri'] = $postarray['uri'];
 -              $postarray['object-type'] = ACTIVITY_OBJ_NOTE;
 +              $postarray['object-type'] = Activity\ObjectType::NOTE;
        }
  
        if ($contactid == 0) {
  
        $postarray['contact-id'] = $contactid;
  
 -      $postarray['verb'] = ACTIVITY_POST;
 +      $postarray['verb'] = Activity::POST;
        $postarray['author-name'] = $postarray['owner-name'];
        $postarray['author-link'] = $postarray['owner-link'];
        $postarray['author-avatar'] = $postarray['owner-avatar'];
  
        // When the post contains links then use the correct object type
        if (count($post->entities->urls) > 0) {
 -              $postarray['object-type'] = ACTIVITY_OBJ_BOOKMARK;
 +              $postarray['object-type'] = Activity\ObjectType::BOOKMARK;
        }
  
        // Search for media links
                        Item::insert($retweet);
  
                        // CHange the other post into a reshare activity
 -                      $postarray['verb'] = ACTIVITY2_ANNOUNCE;
 +                      $postarray['verb'] = Activity::ANNOUNCE;
                        $postarray['gravity'] = GRAVITY_ACTIVITY;
 -                      $postarray['object-type'] = ACTIVITY_OBJ_NOTE;
 +                      $postarray['object-type'] = Activity\ObjectType::NOTE;
  
                        $postarray['thr-parent'] = $retweet['uri'];
                        $postarray['parent-uri'] = $retweet['uri'];