]> git.mxchange.org Git - friendica-addons.git/blobdiff - pumpio/pumpio.php
Tumblr/Bluesky: Avoid problems on first fetch
[friendica-addons.git] / pumpio / pumpio.php
index 6e72ea58b232499eeab6918987fe7d1afd518451..6600696ec93a29714939f6ad82929003e8ab9250 100644 (file)
@@ -18,7 +18,7 @@ use Friendica\Core\Worker;
 use Friendica\Database\DBA;
 use Friendica\DI;
 use Friendica\Model\Contact;
-use Friendica\Model\Group;
+use Friendica\Model\Circle;
 use Friendica\Model\Item;
 use Friendica\Model\Post;
 use Friendica\Model\User;
@@ -26,7 +26,7 @@ use Friendica\Network\HTTPClient\Client\HttpClientAccept;
 use Friendica\Network\HTTPClient\Client\HttpClientOptions;
 use Friendica\Protocol\Activity;
 use Friendica\Protocol\ActivityNamespace;
-use Friendica\Core\Config\Util\ConfigFileLoader;
+use Friendica\Core\Config\Util\ConfigFileManager;
 use Friendica\Util\DateTimeFormat;
 use Friendica\Util\Strings;
 use Friendica\Util\XML;
@@ -56,7 +56,7 @@ function pumpio_install()
  */
 function pumpio_module() {}
 
-function pumpio_content(App $a)
+function pumpio_content()
 {
        if (!DI::userSession()->getLocalUserId()) {
                DI::sysmsg()->addNotice(DI::l10n()->t('Permission denied.'));
@@ -66,7 +66,7 @@ function pumpio_content(App $a)
        if (isset(DI::args()->getArgv()[1])) {
                switch (DI::args()->getArgv()[1]) {
                        case 'connect':
-                               $o = pumpio_connect($a);
+                               $o = pumpio_connect();
                                break;
 
                        default:
@@ -74,12 +74,12 @@ function pumpio_content(App $a)
                                break;
                }
        } else {
-               $o = pumpio_connect($a);
+               $o = pumpio_connect();
        }
        return $o;
 }
 
-function pumpio_check_item_notification(App $a, array &$notification_data)
+function pumpio_check_item_notification(array &$notification_data)
 {
        $hostname = DI::pConfig()->get($notification_data['uid'], 'pumpio', 'host');
        $username = DI::pConfig()->get($notification_data['uid'], 'pumpio', 'user');
@@ -87,7 +87,7 @@ function pumpio_check_item_notification(App $a, array &$notification_data)
        $notification_data['profiles'][] = 'https://' . $hostname . '/' . $username;
 }
 
-function pumpio_registerclient(App $a, $host)
+function pumpio_registerclient($host)
 {
        $url = 'https://' . $host . '/api/client/register';
 
@@ -96,7 +96,7 @@ function pumpio_registerclient(App $a, $host)
        $application_name  = DI::config()->get('pumpio', 'application_name');
 
        if ($application_name == '') {
-               $application_name = DI::baseUrl()->getHostname();
+               $application_name = DI::baseUrl()->getHost();
        }
 
        $firstAdmin = User::getFirstAdmin(['email']);
@@ -105,8 +105,8 @@ function pumpio_registerclient(App $a, $host)
        $params['contacts'] = $firstAdmin['email'];
        $params['application_type'] = 'native';
        $params['application_name'] = $application_name;
-       $params['logo_url'] = DI::baseUrl()->get() . '/images/friendica-256.png';
-       $params['redirect_uris'] = DI::baseUrl()->get() . '/pumpio/connect';
+       $params['logo_url'] = DI::baseUrl() . '/images/friendica-256.png';
+       $params['redirect_uris'] = DI::baseUrl() . '/pumpio/connect';
 
        Logger::info('pumpio_registerclient: ' . $url . ' parameters', $params);
 
@@ -123,7 +123,7 @@ function pumpio_registerclient(App $a, $host)
 
        if ($curl_info['http_code'] == '200') {
                $values = json_decode($s);
-               Logger::info('pumpio_registerclient: success ', $values);
+               Logger::info('pumpio_registerclient: success ', (array)$values);
                return $values;
        }
        Logger::info('pumpio_registerclient: failed: ', $curl_info);
@@ -131,7 +131,7 @@ function pumpio_registerclient(App $a, $host)
 
 }
 
-function pumpio_connect(App $a)
+function pumpio_connect()
 {
        // Define the needed keys
        $consumer_key    = DI::pConfig()->get(DI::userSession()->getLocalUserId(), 'pumpio', 'consumer_key');
@@ -140,7 +140,7 @@ function pumpio_connect(App $a)
 
        if ((($consumer_key == '') || ($consumer_secret == '')) && ($hostname != '')) {
                Logger::notice('pumpio_connect: register client');
-               $clientdata = pumpio_registerclient($a, $hostname);
+               $clientdata = pumpio_registerclient($hostname);
                DI::pConfig()->set(DI::userSession()->getLocalUserId(), 'pumpio', 'consumer_key', $clientdata->client_id);
                DI::pConfig()->set(DI::userSession()->getLocalUserId(), 'pumpio', 'consumer_secret', $clientdata->client_secret);
 
@@ -157,7 +157,7 @@ function pumpio_connect(App $a)
        }
 
        // The callback URL is the script that gets called after the user authenticates with pumpio
-       $callback_url = DI::baseUrl()->get() . '/pumpio/connect';
+       $callback_url = DI::baseUrl() . '/pumpio/connect';
 
        // Let's begin.  First we need a Request Token.  The request token is required to send the user
        // to pumpio's login page.
@@ -194,7 +194,7 @@ function pumpio_connect(App $a)
        if ($success) {
                Logger::notice('pumpio_connect: authenticated');
                $o = DI::l10n()->t('You are now authenticated to pumpio.');
-               $o .= '<br /><a href="' . DI::baseUrl()->get() . '/settings/connectors">' . DI::l10n()->t('return to the connector page') . '</a>';
+               $o .= '<br /><a href="' . DI::baseUrl() . '/settings/connectors">' . DI::l10n()->t('return to the connector page') . '</a>';
        } else {
                Logger::notice('pumpio_connect: could not connect');
                $o = 'Could not connect to pumpio. Refresh the page or try again later.';
@@ -203,7 +203,7 @@ function pumpio_connect(App $a)
        return $o;
 }
 
-function pumpio_jot_nets(App $a, array &$jotnets_fields)
+function pumpio_jot_nets(array &$jotnets_fields)
 {
        if (!DI::userSession()->getLocalUserId()) {
                return;
@@ -221,7 +221,7 @@ function pumpio_jot_nets(App $a, array &$jotnets_fields)
        }
 }
 
-function pumpio_settings(App $a, array &$data)
+function pumpio_settings(array &$data)
 {
        if (!DI::userSession()->getLocalUserId()) {
                return;
@@ -252,7 +252,7 @@ function pumpio_settings(App $a, array &$data)
                '$pumpio_user'        => $pumpio_user,
                '$oauth_token'        => $oauth_token,
                '$oauth_token_secret' => $oauth_token_secret,
-               '$authenticate_url'   => DI::baseUrl()->get() . '/pumpio/connect',
+               '$authenticate_url'   => DI::baseUrl() . '/pumpio/connect',
                '$servername'         => ['pumpio_host', DI::l10n()->t('Pump.io servername (without "http://" or "https://" )'), $pumpio_host],
                '$username'           => ['pumpio_user', DI::l10n()->t('Pump.io username (without the servername)'), $pumpio_user],
                '$import'             => ['pumpio_import', DI::l10n()->t('Import the remote timeline'), $import_enabled],
@@ -272,7 +272,7 @@ function pumpio_settings(App $a, array &$data)
        ];
 }
 
-function pumpio_settings_post(App $a, array &$b)
+function pumpio_settings_post(array &$b)
 {
        if (!empty($_POST['pumpio_delete'])) {
                DI::pConfig()->set(DI::userSession()->getLocalUserId(), 'pumpio', 'consumer_key'      , '');
@@ -318,12 +318,12 @@ function pumpio_settings_post(App $a, array &$b)
        }
 }
 
-function pumpio_load_config(App $a, ConfigFileLoader $loader)
+function pumpio_load_config(ConfigFileManager $loader)
 {
-       $a->getConfigCache()->load($loader->loadAddonConfig('pumpio'), \Friendica\Core\Config\ValueObject\Cache::SOURCE_STATIC);
+       DI::app()->getConfigCache()->load($loader->loadAddonConfig('pumpio'), \Friendica\Core\Config\ValueObject\Cache::SOURCE_STATIC);
 }
 
-function pumpio_hook_fork(App $a, array &$b)
+function pumpio_hook_fork(array &$b)
 {
        if ($b['name'] != 'notifier_normal') {
                return;
@@ -359,7 +359,7 @@ function pumpio_hook_fork(App $a, array &$b)
        }
 }
 
-function pumpio_post_local(App $a, array &$b)
+function pumpio_post_local(array &$b)
 {
        if (!DI::userSession()->getLocalUserId() || (DI::userSession()->getLocalUserId() != $b['uid'])) {
                return;
@@ -384,7 +384,7 @@ function pumpio_post_local(App $a, array &$b)
        $b['postopts'] .= 'pumpio';
 }
 
-function pumpio_send(App $a, array &$b)
+function pumpio_send(array &$b)
 {
        if (!DI::pConfig()->get($b['uid'], 'pumpio', 'import') && ($b['deleted'] || $b['private'] || ($b['created'] !== $b['edited']))) {
                return;
@@ -408,7 +408,7 @@ function pumpio_send(App $a, array &$b)
        } else {
                $iscomment = false;
 
-               $receiver = pumpio_getreceiver($a, $b);
+               $receiver = pumpio_getreceiver($b);
 
                Logger::notice('pumpio_send: receiver ', $receiver);
 
@@ -417,7 +417,7 @@ function pumpio_send(App $a, array &$b)
                }
 
                // Dont't post if the post doesn't belong to us.
-               // This is a check for forum postings
+               // This is a check for group postings
                $self = User::getOwnerDataById($b['uid']);
                if ($b['contact-id'] != $self['id']) {
                        return;
@@ -426,9 +426,9 @@ function pumpio_send(App $a, array &$b)
 
        if ($b['verb'] == Activity::LIKE) {
                if ($b['deleted']) {
-                       pumpio_action($a, $b['uid'], $b['thr-parent'], 'unlike');
+                       pumpio_action($b['uid'], $b['thr-parent'], 'unlike');
                } else {
-                       pumpio_action($a, $b['uid'], $b['thr-parent'], 'like');
+                       pumpio_action($b['uid'], $b['thr-parent'], 'like');
                }
                return;
        }
@@ -438,11 +438,11 @@ function pumpio_send(App $a, array &$b)
        }
 
        if (($b['verb'] == Activity::POST) && ($b['created'] !== $b['edited']) && !$b['deleted']) {
-               pumpio_action($a, $b['uid'], $b['uri'], 'update', $b['body']);
+               pumpio_action($b['uid'], $b['uri'], 'update', $b['body']);
        }
 
        if (($b['verb'] == Activity::POST) && $b['deleted']) {
-               pumpio_action($a, $b['uid'], $b['uri'], 'delete');
+               pumpio_action($b['uid'], $b['uri'], 'delete');
        }
 
        if ($b['deleted'] || ($b['created'] !== $b['edited'])) {
@@ -556,7 +556,7 @@ function pumpio_send(App $a, array &$b)
        }
 }
 
-function pumpio_action(App $a, int $uid, string $uri, string $action, string $content = '')
+function pumpio_action(int $uid, string $uri, string $action, string $content = '')
 {
        // Don't do likes and other stuff if you don't import the timeline
        if (!DI::pConfig()->get($uid, 'pumpio', 'import')) {
@@ -625,13 +625,13 @@ function pumpio_action(App $a, int $uid, string $uri, string $action, string $co
        }
 }
 
-function pumpio_sync(App $a)
+function pumpio_sync()
 {
        if (!Addon::isEnabled('pumpio')) {
                return;
        }
 
-       $last = DI::config()->get('pumpio', 'last_poll');
+       $last = DI::keyValue()->get('pumpio_last_poll');
 
        $poll_interval = intval(DI::config()->get('pumpio', 'poll_interval', PUMPIO_DEFAULT_POLL_INTERVAL));
 
@@ -647,7 +647,7 @@ function pumpio_sync(App $a)
        $pconfigs = DBA::selectToArray('pconfig', ['uid'], ['cat' => 'pumpio', 'k' => 'mirror', 'v' => '1']);
        foreach ($pconfigs as $rr) {
                Logger::notice('pumpio: mirroring user '.$rr['uid']);
-               pumpio_fetchtimeline($a, $rr['uid']);
+               pumpio_fetchtimeline($rr['uid']);
        }
 
        $abandon_days = intval(DI::config()->get('system', 'account_abandon_days'));
@@ -667,7 +667,7 @@ function pumpio_sync(App $a)
                }
 
                Logger::notice('pumpio: importing timeline from user '.$rr['uid']);
-               pumpio_fetchinbox($a, $rr['uid']);
+               pumpio_fetchinbox($rr['uid']);
 
                // check for new contacts once a day
                $last_contact_check = DI::pConfig()->get($rr['uid'], 'pumpio', 'contact_check');
@@ -678,22 +678,22 @@ function pumpio_sync(App $a)
                }
 
                if ($next_contact_check <= time()) {
-                       pumpio_getallusers($a, $rr['uid']);
+                       pumpio_getallusers($rr['uid']);
                        DI::pConfig()->set($rr['uid'], 'pumpio', 'contact_check', time());
                }
        }
 
        Logger::notice('pumpio: cron_end');
 
-       DI::config()->set('pumpio', 'last_poll', time());
+       DI::keyValue()->set('pumpio_last_poll', time());
 }
 
-function pumpio_cron(App $a, $b)
+function pumpio_cron($b)
 {
        Worker::add(Worker::PRIORITY_MEDIUM, 'addon/pumpio/pumpio_sync.php');
 }
 
-function pumpio_fetchtimeline(App $a, int $uid)
+function pumpio_fetchtimeline(int $uid)
 {
        $ckey     = DI::pConfig()->get($uid, 'pumpio', 'consumer_key');
        $csecret  = DI::pConfig()->get($uid, 'pumpio', 'consumer_secret');
@@ -711,7 +711,7 @@ function pumpio_fetchtimeline(App $a, int $uid)
                $application_name  = DI::config()->get('pumpio', 'application_name');
        }
        if ($application_name == '') {
-               $application_name = DI::baseUrl()->getHostname();
+               $application_name = DI::baseUrl()->getHost();
        }
 
        $first_time = ($lastdate == '');
@@ -814,7 +814,7 @@ function pumpio_fetchtimeline(App $a, int $uid)
        }
 }
 
-function pumpio_dounlike(App $a, int $uid, array $self, $post, string $own_id)
+function pumpio_dounlike(int $uid, array $self, $post, string $own_id)
 {
        // Searching for the unliked post
        // Two queries for speed issues
@@ -850,7 +850,7 @@ function pumpio_dounlike(App $a, int $uid, array $self, $post, string $own_id)
        }
 }
 
-function pumpio_dolike(App $a, int $uid, array $self, $post, string $own_id, $threadcompletion = true)
+function pumpio_dolike(int $uid, array $self, $post, string $own_id, $threadcompletion = true)
 {
        if (empty($post->object->id)) {
                Logger::info('Got empty like: '.print_r($post, true));
@@ -869,7 +869,7 @@ function pumpio_dolike(App $a, int $uid, array $self, $post, string $own_id, $th
 
        // thread completion
        if ($threadcompletion) {
-               pumpio_fetchallcomments($a, $uid, $post->object->id);
+               pumpio_fetchallcomments($uid, $post->object->id);
        }
 
        $contactid = 0;
@@ -976,7 +976,7 @@ function pumpio_get_contact($uid, $contact, $no_insert = false)
 
                $contact_id = $r['id'];
 
-               Group::addMember(User::getDefaultGroup($uid), $contact_id);
+               Circle::addMember(User::getDefaultCircle($uid), $contact_id);
        } else {
                $contact_id = $r['id'];
        }
@@ -988,7 +988,7 @@ function pumpio_get_contact($uid, $contact, $no_insert = false)
        return $contact_id;
 }
 
-function pumpio_dodelete(App $a, int $uid, array $self, $post, string $own_id)
+function pumpio_dodelete(int $uid, array $self, $post, string $own_id)
 {
        // Two queries for speed issues
        $condition = ['uri' => $post->object->id, 'uid' => $uid];
@@ -1005,18 +1005,18 @@ function pumpio_dodelete(App $a, int $uid, array $self, $post, string $own_id)
        return false;
 }
 
-function pumpio_dopost(App $a, $client, int $uid, array $self, $post, string $own_id, bool $threadcompletion = true)
+function pumpio_dopost($client, int $uid, array $self, $post, string $own_id, bool $threadcompletion = true)
 {
        if (($post->verb == 'like') || ($post->verb == 'favorite')) {
-               return pumpio_dolike($a, $uid, $self, $post, $own_id);
+               return pumpio_dolike($uid, $self, $post, $own_id);
        }
 
        if (($post->verb == 'unlike') || ($post->verb == 'unfavorite')) {
-               return pumpio_dounlike($a, $uid, $self, $post, $own_id);
+               return pumpio_dounlike($uid, $self, $post, $own_id);
        }
 
        if ($post->verb == 'delete') {
-               return pumpio_dodelete($a, $uid, $self, $post, $own_id);
+               return pumpio_dodelete($uid, $self, $post, $own_id);
        }
 
        if ($post->verb != 'update') {
@@ -1110,7 +1110,7 @@ function pumpio_dopost(App $a, $client, int $uid, array $self, $post, string $ow
                $reply->generator->displayName = 'pumpio';
                $reply->published = $post->object->inReplyTo->published;
                $reply->received = $post->object->inReplyTo->updated;
-               pumpio_dopost($a, $client, $uid, $self, $reply, $own_id, false);
+               pumpio_dopost($client, $uid, $self, $reply, $own_id, false);
 
                $postarray['thr-parent'] = $post->object->inReplyTo->id;
        }
@@ -1195,13 +1195,13 @@ function pumpio_dopost(App $a, $client, int $uid, array $self, $post, string $ow
        }
 
        if (($post->object->objectType == 'comment') && $threadcompletion) {
-               pumpio_fetchallcomments($a, $uid, $postarray['thr-parent']);
+               pumpio_fetchallcomments($uid, $postarray['thr-parent']);
        }
 
        return $top_item;
 }
 
-function pumpio_fetchinbox(App $a, int $uid)
+function pumpio_fetchinbox(int $uid)
 {
        $ckey     = DI::pConfig()->get($uid, 'pumpio', 'consumer_key');
        $csecret  = DI::pConfig()->get($uid, 'pumpio', 'consumer_secret');
@@ -1254,20 +1254,20 @@ function pumpio_fetchinbox(App $a, int $uid)
                if (count($posts)) {
                        foreach ($posts as $post) {
                                $last_id = $post->id;
-                               pumpio_dopost($a, $client, $uid, $self, $post, $own_id, true);
+                               pumpio_dopost($client, $uid, $self, $post, $own_id, true);
                        }
                }
        }
 
        while ($item = DBA::fetch($lastitems)) {
-               pumpio_fetchallcomments($a, $uid, $item['uri']);
+               pumpio_fetchallcomments($uid, $item['uri']);
        }
        DBA::close($lastitems);
 
        DI::pConfig()->set($uid, 'pumpio', 'last_id', $last_id);
 }
 
-function pumpio_getallusers(App &$a, int $uid)
+function pumpio_getallusers(int $uid)
 {
        $ckey     = DI::pConfig()->get($uid, 'pumpio', 'consumer_key');
        $csecret  = DI::pConfig()->get($uid, 'pumpio', 'consumer_secret');
@@ -1315,7 +1315,7 @@ function pumpio_getallusers(App &$a, int $uid)
        }
 }
 
-function pumpio_getreceiver(App $a, array $b)
+function pumpio_getreceiver(array $b)
 {
        $receiver = [];
 
@@ -1353,8 +1353,8 @@ function pumpio_getreceiver(App $a, array $b)
                        $gid = trim($gid, ' <>');
 
                        $contacts = DBA::p("SELECT `contact`.`name`, `contact`.`nick`, `contact`.`url`, `contact`.`network`
-                               FROM `group_member`, `contact` WHERE `group_member`.`gid` = ?
-                               AND `contact`.`id` = `group_member`.`contact-id` AND `contact`.`network` = ?",
+                               FROM `group_member` AS `circle_member`, `contact` WHERE `circle_member`.`gid` = ?
+                               AND `contact`.`id` = `circle_member`.`contact-id` AND `contact`.`network` = ?",
                                $gid, Protocol::PUMPIO);
 
                        while ($row = DBA::fetch($contacts)) {
@@ -1394,7 +1394,7 @@ function pumpio_getreceiver(App $a, array $b)
        return $receiver;
 }
 
-function pumpio_fetchallcomments(App $a, $uid, $id)
+function pumpio_fetchallcomments($uid, $id)
 {
        $ckey     = DI::pConfig()->get($uid, 'pumpio', 'consumer_key');
        $csecret  = DI::pConfig()->get($uid, 'pumpio', 'consumer_secret');
@@ -1454,7 +1454,7 @@ function pumpio_fetchallcomments(App $a, $uid, $id)
                        $like->actor->url = $item->url;
                        $like->generator = new stdClass;
                        $like->generator->displayName = 'pumpio';
-                       pumpio_dolike($a, $uid, $self, $post, $own_id, false);
+                       pumpio_dolike($uid, $self, $post, $own_id, false);
                }
        }
 
@@ -1492,7 +1492,7 @@ function pumpio_fetchallcomments(App $a, $uid, $id)
                $post->object = $item;
 
                Logger::notice('pumpio_fetchallcomments: posting comment ' . $post->object->id . ' ', json_decode(json_encode($post), true));
-               pumpio_dopost($a, $client, $uid, $self, $post, $own_id, false);
+               pumpio_dopost($client, $uid, $self, $post, $own_id, false);
        }
 }