]> git.mxchange.org Git - friendica.git/blobdiff - src/Worker/Delivery.php
Merge pull request #11936 from annando/youtube-shorts
[friendica.git] / src / Worker / Delivery.php
index 2f78bed6b8c50e6dad41e4356456aa0335ca87b4..32d4887003bc90794eeb21b97ee8246004d381df 100644 (file)
@@ -45,7 +45,6 @@ class Delivery
        const RELOCATION    = 'relocate';
        const DELETION      = 'drop';
        const POST          = 'wall-new';
-       const POKE          = 'poke';
        const REMOVAL       = 'removeme';
        const PROFILEUPDATE = 'profileupdate';
 
@@ -104,12 +103,12 @@ class Delivery
                        DBA::close($itemdata);
 
                        if (empty($target_item)) {
-                               Logger::notice('Item ' . $target_id . "wasn't found. Quitting here.");
+                               Logger::warning("No target item data. Quitting here.", ['id' => $target_id]);
                                return;
                        }
 
                        if (empty($parent)) {
-                               Logger::notice('Parent ' . $parent_id . ' for item ' . $target_id . "wasn't found. Quitting here.");
+                               Logger::warning('Parent ' . $parent_id . ' for item ' . $target_id . "wasn't found. Quitting here.");
                                self::setFailedQueue($cmd, $target_item);
                                return;
                        }
@@ -183,7 +182,7 @@ class Delivery
                }
 
                if (empty($items)) {
-                       Logger::notice('No delivery data', ['command' => $cmd, 'uri-id' => $post_uriid, 'cid' => $contact_id]);
+                       Logger::warning('No delivery data', ['command' => $cmd, 'uri-id' => $post_uriid, 'cid' => $contact_id]);
                }
 
                $owner = Model\User::getOwnerDataById($uid);
@@ -247,7 +246,7 @@ class Delivery
         */
        private static function setFailedQueue(string $cmd, array $item)
        {
-               if (!in_array($cmd, [Delivery::POST, Delivery::POKE])) {
+               if ($cmd != Delivery::POST) {
                        return;
                }
 
@@ -257,19 +256,19 @@ class Delivery
        /**
         * Deliver content via DFRN
         *
-        * @param string  $cmd             Command
-        * @param array   $contact         Contact record of the receiver
-        * @param array   $owner           Owner record of the sender
-        * @param array   $items           Item record of the content and the parent
-        * @param array   $target_item     Item record of the content
-        * @param boolean $public_message  Is the content public?
-        * @param boolean $top_level       Is it a thread starter?
-        * @param boolean $followup        Is it an answer to a remote post?
-        * @param int     $server_protocol The protocol of the server
+        * @param string   $cmd             Command
+        * @param array    $contact         Contact record of the receiver
+        * @param array    $owner           Owner record of the sender
+        * @param array    $items           Item record of the content and the parent
+        * @param array    $target_item     Item record of the content
+        * @param boolean  $public_message  Is the content public?
+        * @param boolean  $top_level       Is it a thread starter?
+        * @param boolean  $followup        Is it an answer to a remote post?
+        * @param int|null $server_protocol The protocol of the server
         * @throws \Friendica\Network\HTTPException\InternalServerErrorException
         * @throws \ImagickException
         */
-       private static function deliverDFRN(string $cmd, array $contact, array $owner, array $items, array $target_item, bool $public_message, bool $top_level, bool $followup, int $server_protocol)
+       private static function deliverDFRN(string $cmd, array $contact, array $owner, array $items, array $target_item, bool $public_message, bool $top_level, bool $followup, int $server_protocol = null)
        {
                // Transmit Diaspora reshares via Diaspora if the Friendica contact support Diaspora
                if (Diaspora::isReshare($target_item['body'] ?? '') && !empty(FContact::getByURL($contact['addr'], false))) {
@@ -326,7 +325,7 @@ class Delivery
                        if ($public_dfrn) {
                                Logger::info('Relay delivery to ' . $contact["url"] . ' with guid ' . $target_item["guid"] . ' returns ' . $deliver_status);
 
-                               if (in_array($cmd, [Delivery::POST, Delivery::POKE])) {
+                               if ($cmd == Delivery::POST) {
                                        if (($deliver_status >= 200) && ($deliver_status <= 299)) {
                                                Model\Post\DeliveryData::incrementQueueDone($target_item['uri-id'], $protocol);
 
@@ -356,7 +355,7 @@ class Delivery
 
                        Model\GServer::setProtocol($contact['gsid'] ?? 0, $protocol);
 
-                       if (in_array($cmd, [Delivery::POST, Delivery::POKE])) {
+                       if ($cmd == Delivery::POST) {
                                Model\Post\DeliveryData::incrementQueueDone($target_item['uri-id'], $protocol);
                        }
                } else {
@@ -364,7 +363,7 @@ class Delivery
                        Model\Contact::markForArchival($contact);
 
                        Logger::info('Delivery failed: defer message', ['id' => ($target_item['guid'] ?? '') ?: $target_item['id']]);
-                       if (!Worker::defer() && in_array($cmd, [Delivery::POST, Delivery::POKE])) {
+                       if (!Worker::defer() && $cmd == Delivery::POST) {
                                Model\Post\DeliveryData::incrementQueueFailed($target_item['uri-id']);
                        }
                }
@@ -433,7 +432,7 @@ class Delivery
                        Logger::notice('diaspora status: ' . $loc);
                        $deliver_status = Diaspora::sendStatus($target_item, $owner, $contact, $public_message);
                } else {
-                       Logger::notice('Unknown mode ' . $cmd . ' for ' . $loc);
+                       Logger::warning('Unknown mode', ['command' => $cmd, 'target' => $loc]);
                        return;
                }
 
@@ -443,7 +442,7 @@ class Delivery
 
                        Model\GServer::setProtocol($contact['gsid'] ?? 0, Model\Post\DeliveryData::DIASPORA);
 
-                       if (in_array($cmd, [Delivery::POST, Delivery::POKE])) {
+                       if ($cmd == Delivery::POST) {
                                Model\Post\DeliveryData::incrementQueueDone($target_item['uri-id'], Model\Post\DeliveryData::DIASPORA);
                        }
                } else {
@@ -458,10 +457,10 @@ class Delivery
                        if (empty($contact['contact-type']) || ($contact['contact-type'] != Model\Contact::TYPE_RELAY)) {
                                Logger::info('Delivery failed: defer message', ['id' => ($target_item['guid'] ?? '') ?: $target_item['id']]);
                                // defer message for redelivery
-                               if (!Worker::defer() && in_array($cmd, [Delivery::POST, Delivery::POKE])) {
+                               if (!Worker::defer() && $cmd == Delivery::POST) {
                                        Model\Post\DeliveryData::incrementQueueFailed($target_item['uri-id']);
                                }
-                       } elseif (in_array($cmd, [Delivery::POST, Delivery::POKE])) {
+                       } elseif ($cmd == Delivery::POST) {
                                Model\Post\DeliveryData::incrementQueueFailed($target_item['uri-id']);
                        }
                }
@@ -475,12 +474,13 @@ class Delivery
         * @param array  $owner       Owner record of the sender
         * @param array  $target_item Item record of the content
         * @param array  $thr_parent  Item record of the direct parent in the thread
+        * @return void
         * @throws \Friendica\Network\HTTPException\InternalServerErrorException
         * @throws \ImagickException
         */
        private static function deliverMail(string $cmd, array $contact, array $owner, array $target_item, array $thr_parent)
        {
-               if (DI::config()->get('system','imap_disabled')) {
+               if (DI::config()->get('system', 'imap_disabled')) {
                        return;
                }
 
@@ -489,7 +489,7 @@ class Delivery
                        return;
                }
 
-               if (!in_array($cmd, [self::POST, self::POKE])) {
+               if ($cmd != self::POST) {
                        return;
                }
 
@@ -570,10 +570,16 @@ class Delivery
                        }
                }
 
-               Email::send($addr, $subject, $headers, $target_item);
+               // Try to send email
+               $success = Email::send($addr, $subject, $headers, $target_item);
 
-               Model\Post\DeliveryData::incrementQueueDone($target_item['uri-id'], Model\Post\DeliveryData::MAIL);
-
-               Logger::info('Delivered via mail', ['guid' => $target_item['guid'], 'to' => $addr, 'subject' => $subject]);
+               if ($success) {
+                       // Success
+                       Model\Post\DeliveryData::incrementQueueDone($target_item['uri-id'], Model\Post\DeliveryData::MAIL);
+                       Logger::info('Delivered via mail', ['guid' => $target_item['guid'], 'to' => $addr, 'subject' => $subject]);
+               } else {
+                       // Failed
+                       Logger::warning('Delivery of mail has FAILED', ['to' => $addr, 'subject' => $subject, 'guid' => $target_item['guid']]);
+               }
        }
 }