]> git.mxchange.org Git - friendica.git/blobdiff - src/Worker/OnePoll.php
Use a constant for the avatar base path
[friendica.git] / src / Worker / OnePoll.php
index bb3dd97198fe5dde383f6c1436beae935ea23fb1..66b9851cf2655f9dc8bdd3a38856737db89bd69c 100644 (file)
@@ -1,6 +1,6 @@
 <?php
 /**
- * @copyright Copyright (C) 2020, Friendica
+ * @copyright Copyright (C) 2010-2022, the Friendica project
  *
  * @license GNU AGPL version 3 or any later version
  *
@@ -23,11 +23,15 @@ namespace Friendica\Worker;
 
 use Friendica\Core\Logger;
 use Friendica\Core\Protocol;
+use Friendica\Core\System;
 use Friendica\Database\DBA;
 use Friendica\DI;
 use Friendica\Model\Contact;
 use Friendica\Model\Item;
+use Friendica\Model\Post;
 use Friendica\Model\User;
+use Friendica\Network\HTTPClient\Client\HttpClientAccept;
+use Friendica\Network\HTTPClient\Client\HttpClientOptions;
 use Friendica\Protocol\Activity;
 use Friendica\Protocol\ActivityPub;
 use Friendica\Protocol\Email;
@@ -80,7 +84,7 @@ class OnePoll
                                Logger::warning('No self contact for user', ['uid' => $importer_uid]);
 
                                // set the last-update so we don't keep polling
-                               DBA::update('contact', ['last-update' => $updated], ['id' => $contact['id']]);
+                               Contact::update(['last-update' => $updated], ['id' => $contact['id']]);
                                return;
                        }
 
@@ -99,7 +103,7 @@ class OnePoll
 
                if ($success) {
                        self::updateContact($contact, ['failed' => false, 'last-update' => $updated, 'success_update' => $updated]);
-                       Contact::unmarkForArchival($contact);   
+                       Contact::unmarkForArchival($contact);
                } else {
                        self::updateContact($contact, ['failed' => true, 'last-update' => $updated, 'failure_update' => $updated]);
                        Contact::markForArchival($contact);
@@ -120,16 +124,16 @@ class OnePoll
        {
                if (in_array($contact['network'], [Protocol::FEED, Protocol::MAIL, Protocol::OSTATUS])) {
                        // Update the user's contact
-                       DBA::update('contact', $fields, ['id' => $contact['id']]);
+                       Contact::update($fields, ['id' => $contact['id']]);
 
                        // Update the public contact
-                       DBA::update('contact', $fields, ['uid' => 0, 'nurl' => $contact['nurl']]);
+                       Contact::update($fields, ['uid' => 0, 'nurl' => $contact['nurl']]);
 
                        // Update the rest of the contacts that aren't polled
-                       DBA::update('contact', $fields, ['rel' => Contact::FOLLOWER, 'nurl' => $contact['nurl']]);
+                       Contact::update($fields, ['rel' => Contact::FOLLOWER, 'nurl' => $contact['nurl']]);
                } else {
                        // Update all contacts
-                       DBA::update('contact', $fields, ['nurl' => $contact['nurl']]);
+                       Contact::update($fields, ['nurl' => $contact['nurl']]);
                }
        }
 
@@ -150,8 +154,8 @@ class OnePoll
                        return false;
                }
 
-               $cookiejar = tempnam(get_temppath(), 'cookiejar-onepoll-');
-               $curlResult = DI::httpRequest()->get($contact['poll'], ['cookiejar' => $cookiejar]);
+               $cookiejar = tempnam(System::getTempPath(), 'cookiejar-onepoll-');
+               $curlResult = DI::httpClient()->get($contact['poll'], HttpClientAccept::FEED_XML, [HttpClientOptions::COOKIEJAR => $cookiejar]);
                unlink($cookiejar);
 
                if ($curlResult->isTimeout()) {
@@ -170,7 +174,7 @@ class OnePoll
                        return false;
                }
 
-               Logger::notice('Consume feed of contact', ['id' => $contact['id'], 'url' => $contact['poll']]);
+               Logger::notice('Consume feed of contact', ['id' => $contact['id'], 'url' => $contact['poll'], 'Content-Type' => $curlResult->getHeader('Content-Type')]);
 
                return !empty(Feed::import($xml, $importer, $contact));
        }
@@ -229,7 +233,7 @@ class OnePoll
                        $metas = Email::messageMeta($mbox, implode(',', $msgs));
 
                        if (count($metas) != count($msgs)) {
-                               Logger::log("for " . $mailconf['user'] . " there are ". count($msgs) . " messages but received " . count($metas) . " metas", Logger::DEBUG);
+                               Logger::info("for " . $mailconf['user'] . " there are ". count($msgs) . " messages but received " . count($metas) . " metas");
                        } else {
                                $msgs = array_combine($msgs, $metas);
 
@@ -244,14 +248,14 @@ class OnePoll
                                        $datarray['network'] = Protocol::MAIL;
                                        // $meta = Email::messageMeta($mbox, $msg_uid);
 
-                                       $datarray['uri'] = Email::msgid2iri(trim($meta->message_id, '<>'));
+                                       $datarray['thr-parent'] = $datarray['uri'] = Email::msgid2iri(trim($meta->message_id, '<>'));
 
                                        // Have we seen it before?
                                        $fields = ['deleted', 'id'];
                                        $condition = ['uid' => $importer_uid, 'uri' => $datarray['uri']];
-                                       $item = Item::selectFirst($fields, $condition);
+                                       $item = Post::selectFirst($fields, $condition);
                                        if (DBA::isResult($item)) {
-                                               Logger::log("Mail: Seen before ".$msg_uid." for ".$mailconf['user']." UID: ".$importer_uid." URI: ".$datarray['uri'],Logger::DEBUG);
+                                               Logger::info("Mail: Seen before ".$msg_uid." for ".$mailconf['user']." UID: ".$importer_uid." URI: ".$datarray['uri']);
 
                                                // Only delete when mails aren't automatically moved or deleted
                                                if (($mailconf['action'] != 1) && ($mailconf['action'] != 3))
@@ -262,18 +266,18 @@ class OnePoll
 
                                                switch ($mailconf['action']) {
                                                        case 0:
-                                                               Logger::log("Mail: Seen before ".$msg_uid." for ".$mailconf['user'].". Doing nothing.", Logger::DEBUG);
+                                                               Logger::info("Mail: Seen before ".$msg_uid." for ".$mailconf['user'].". Doing nothing.");
                                                                break;
                                                        case 1:
-                                                               Logger::log("Mail: Deleting ".$msg_uid." for ".$mailconf['user']);
+                                                               Logger::notice("Mail: Deleting ".$msg_uid." for ".$mailconf['user']);
                                                                imap_delete($mbox, $msg_uid, FT_UID);
                                                                break;
                                                        case 2:
-                                                               Logger::log("Mail: Mark as seen ".$msg_uid." for ".$mailconf['user']);
+                                                               Logger::notice("Mail: Mark as seen ".$msg_uid." for ".$mailconf['user']);
                                                                imap_setflag_full($mbox, $msg_uid, "\\Seen", ST_UID);
                                                                break;
                                                        case 3:
-                                                               Logger::log("Mail: Moving ".$msg_uid." to ".$mailconf['movetofolder']." for ".$mailconf['user']);
+                                                               Logger::notice("Mail: Moving ".$msg_uid." to ".$mailconf['movetofolder']." for ".$mailconf['user']);
                                                                imap_setflag_full($mbox, $msg_uid, "\\Seen", ST_UID);
                                                                if ($mailconf['movetofolder'] != "") {
                                                                        imap_mail_move($mbox, $msg_uid, $mailconf['movetofolder'], FT_UID);
@@ -298,7 +302,7 @@ class OnePoll
                                                        }
                                                }
                                                $condition = ['uri' => $refs_arr, 'uid' => $importer_uid];
-                                               $parent = Item::selectFirst(['uri'], $condition);
+                                               $parent = Post::selectFirst(['uri'], $condition);
                                                if (DBA::isResult($parent)) {
                                                        $datarray['thr-parent'] = $parent['uri'];
                                                }
@@ -314,7 +318,7 @@ class OnePoll
                                                        $datarray['title'] .= $subpart->text;
                                                }
                                        }
-                                       $datarray['title'] = Strings::escapeTags(trim($datarray['title']));
+                                       $datarray['title'] = trim($datarray['title']);
 
                                        //$datarray['title'] = Strings::escapeTags(trim($meta->subject));
                                        $datarray['created'] = DateTimeFormat::utc($meta->date);
@@ -331,7 +335,7 @@ class OnePoll
                                        if (empty($datarray['thr-parent']) && $reply) {
                                                $condition = ['title' => $datarray['title'], 'uid' => $importer_uid, 'network' => Protocol::MAIL];
                                                $params = ['order' => ['created' => true]];
-                                               $parent = Item::selectFirst(['uri'], $condition, $params);
+                                               $parent = Post::selectFirst(['uri'], $condition, $params);
                                                if (DBA::isResult($parent)) {
                                                        $datarray['thr-parent'] = $parent['uri'];
                                                }
@@ -385,28 +389,28 @@ class OnePoll
 
                                        $datarray = Email::getMessage($mbox, $msg_uid, $reply, $datarray);
                                        if (empty($datarray['body'])) {
-                                               Logger::log("Mail: can't fetch msg ".$msg_uid." for ".$mailconf['user']);
+                                               Logger::notice("Mail: can't fetch msg ".$msg_uid." for ".$mailconf['user']);
                                                continue;
                                        }
 
-                                       Logger::log("Mail: Importing ".$msg_uid." for ".$mailconf['user']);
+                                       Logger::notice("Mail: Importing ".$msg_uid." for ".$mailconf['user']);
 
                                        Item::insert($datarray);
 
                                        switch ($mailconf['action']) {
                                                case 0:
-                                                       Logger::log("Mail: Seen before ".$msg_uid." for ".$mailconf['user'].". Doing nothing.", Logger::DEBUG);
+                                                       Logger::info("Mail: Seen before ".$msg_uid." for ".$mailconf['user'].". Doing nothing.");
                                                        break;
                                                case 1:
-                                                       Logger::log("Mail: Deleting ".$msg_uid." for ".$mailconf['user']);
+                                                       Logger::notice("Mail: Deleting ".$msg_uid." for ".$mailconf['user']);
                                                        imap_delete($mbox, $msg_uid, FT_UID);
                                                        break;
                                                case 2:
-                                                       Logger::log("Mail: Mark as seen ".$msg_uid." for ".$mailconf['user']);
+                                                       Logger::notice("Mail: Mark as seen ".$msg_uid." for ".$mailconf['user']);
                                                        imap_setflag_full($mbox, $msg_uid, "\\Seen", ST_UID);
                                                        break;
                                                case 3:
-                                                       Logger::log("Mail: Moving ".$msg_uid." to ".$mailconf['movetofolder']." for ".$mailconf['user']);
+                                                       Logger::notice("Mail: Moving ".$msg_uid." to ".$mailconf['movetofolder']." for ".$mailconf['user']);
                                                        imap_setflag_full($mbox, $msg_uid, "\\Seen", ST_UID);
                                                        if ($mailconf['movetofolder'] != "") {
                                                                imap_mail_move($mbox, $msg_uid, $mailconf['movetofolder'], FT_UID);
@@ -454,10 +458,10 @@ class OnePoll
                Logger::info('Hub subscription start', ['mode' => $hubmode, 'name' => $contact['name'], 'hub' => $url, 'endpoint' => $push_url, 'verifier' => $verify_token]);
 
                if (!strlen($contact['hub-verify']) || ($contact['hub-verify'] != $verify_token)) {
-                       DBA::update('contact', ['hub-verify' => $verify_token], ['id' => $contact['id']]);
+                       Contact::update(['hub-verify' => $verify_token], ['id' => $contact['id']]);
                }
 
-               $postResult = DI::httpRequest()->post($url, $params);
+               $postResult = DI::httpClient()->post($url, $params);
 
                Logger::info('Hub subscription done', ['result' => $postResult->getReturnCode()]);