]> git.mxchange.org Git - friendica.git/blobdiff - src/Worker/Delivery.php
Remove unused code
[friendica.git] / src / Worker / Delivery.php
index 3ae0be140dcdc15a1c68d48fd186e9f497e40b8f..49fe47c54c2b2a977a885832ecb5e66fa38460ef 100644 (file)
@@ -13,14 +13,14 @@ use Friendica\Core\System;
 use Friendica\Database\DBA;
 use Friendica\Model\Contact;
 use Friendica\Model\Item;
+use Friendica\Model\ItemDeliveryData;
 use Friendica\Model\Queue;
 use Friendica\Model\User;
 use Friendica\Protocol\DFRN;
 use Friendica\Protocol\Diaspora;
 use Friendica\Protocol\Email;
 use Friendica\Util\Strings;
-
-require_once 'include/items.php';
+use Friendica\Util\Network;
 
 class Delivery extends BaseObject
 {
@@ -33,9 +33,9 @@ class Delivery extends BaseObject
        const REMOVAL       = 'removeme';
        const PROFILEUPDATE = 'profileupdate';
 
-       public static function execute($cmd, $item_id, $contact_id)
+       public static function execute($cmd, $target_id, $contact_id)
        {
-               Logger::log('Invoked: ' . $cmd . ': ' . $item_id . ' to ' . $contact_id, Logger::DEBUG);
+               Logger::log('Invoked: ' . $cmd . ': ' . $target_id . ' to ' . $contact_id, Logger::DEBUG);
 
                $top_level = false;
                $followup = false;
@@ -43,28 +43,28 @@ class Delivery extends BaseObject
 
                $items = [];
                if ($cmd == self::MAIL) {
-                       $target_item = DBA::selectFirst('mail', [], ['id' => $item_id]);
+                       $target_item = DBA::selectFirst('mail', [], ['id' => $target_id]);
                        if (!DBA::isResult($target_item)) {
                                return;
                        }
                        $uid = $target_item['uid'];
                } elseif ($cmd == self::SUGGESTION) {
-                       $target_item = DBA::selectFirst('fsuggest', [], ['id' => $item_id]);
+                       $target_item = DBA::selectFirst('fsuggest', [], ['id' => $target_id]);
                        if (!DBA::isResult($target_item)) {
                                return;
                        }
                        $uid = $target_item['uid'];
                } elseif ($cmd == self::RELOCATION) {
-                       $uid = $item_id;
+                       $uid = $target_id;
                        $target_item = [];
                } else {
-                       $item = Item::selectFirst(['parent'], ['id' => $item_id]);
+                       $item = Item::selectFirst(['parent'], ['id' => $target_id]);
                        if (!DBA::isResult($item) || empty($item['parent'])) {
                                return;
                        }
                        $parent_id = intval($item['parent']);
 
-                       $condition = ['id' => [$item_id, $parent_id], 'moderated' => false];
+                       $condition = ['id' => [$target_id, $parent_id], 'moderated' => false];
                        $params = ['order' => ['id']];
                        $itemdata = Item::select([], $condition, $params);
 
@@ -72,7 +72,7 @@ class Delivery extends BaseObject
                                if ($item['id'] == $parent_id) {
                                        $parent = $item;
                                }
-                               if ($item['id'] == $item_id) {
+                               if ($item['id'] == $target_id) {
                                        $target_item = $item;
                                }
                                $items[] = $item;
@@ -80,16 +80,23 @@ class Delivery extends BaseObject
                        DBA::close($itemdata);
 
                        if (empty($target_item)) {
-                               Logger::log('Item ' . $item_id . "wasn't found. Quitting here.");
+                               Logger::log('Item ' . $target_id . "wasn't found. Quitting here.");
                                return;
                        }
 
                        if (empty($parent)) {
-                               Logger::log('Parent ' . $parent_id . ' for item ' . $item_id . "wasn't found. Quitting here.");
+                               Logger::log('Parent ' . $parent_id . ' for item ' . $target_id . "wasn't found. Quitting here.");
                                return;
                        }
 
-                       $uid = $target_item['contact-uid'];
+                       if (!empty($target_item['contact-uid'])) {
+                               $uid = $target_item['contact-uid'];
+                       } elseif (!empty($target_item['uid'])) {
+                               $uid = $target_item['uid'];
+                       } else {
+                               Logger::log('Only public users for item ' . $item_id, Logger::DEBUG);
+                               return;
+                       }
 
                        // avoid race condition with deleting entries
                        if ($items[0]['deleted']) {
@@ -101,7 +108,7 @@ class Delivery extends BaseObject
                        // When commenting too fast after delivery, a post wasn't recognized as top level post.
                        // The count then showed more than one entry. The additional check should help.
                        // The check for the "count" should be superfluous, but I'm not totally sure by now, so we keep it.
-                       if ((($parent['id'] == $item_id) || (count($items) == 1)) && ($parent['uri'] === $parent['parent-uri'])) {
+                       if ((($parent['id'] == $target_id) || (count($items) == 1)) && ($parent['uri'] === $parent['parent-uri'])) {
                                Logger::log('Top level post');
                                $top_level = true;
                        }
@@ -142,7 +149,7 @@ class Delivery extends BaseObject
                }
 
                if (empty($items)) {
-                       Logger::log('No delivery data for  ' . $cmd . ' - Item ID: ' .$item_id . ' - Contact ID: ' . $contact_id);
+                       Logger::log('No delivery data for  ' . $cmd . ' - Item ID: ' .$target_id . ' - Contact ID: ' . $contact_id);
                }
 
                $owner = User::getOwnerDataById($uid);
@@ -158,6 +165,10 @@ class Delivery extends BaseObject
                        return;
                }
 
+               if (Network::isUrlBlocked($contact['url'])) {
+                       return;
+               }
+
                // Transmit via Diaspora if the thread had started as Diaspora post
                // This is done since the uri wouldn't match (Diaspora doesn't transmit it)
                if (isset($parent) && ($parent['network'] == Protocol::DIASPORA) && ($contact['network'] == Protocol::DFRN)) {
@@ -170,10 +181,18 @@ class Delivery extends BaseObject
 
                        case Protocol::DFRN:
                                self::deliverDFRN($cmd, $contact, $owner, $items, $target_item, $public_message, $top_level, $followup);
+
+                               if (in_array($cmd, [Delivery::POST, Delivery::COMMENT])) {
+                                       ItemDeliveryData::incrementQueueDone($target_id);
+                               }
                                break;
 
                        case Protocol::DIASPORA:
                                self::deliverDiaspora($cmd, $contact, $owner, $items, $target_item, $public_message, $top_level, $followup);
+
+                               if (in_array($cmd, [Delivery::POST, Delivery::COMMENT])) {
+                                       ItemDeliveryData::incrementQueueDone($target_id);
+                               }
                                break;
 
                        case Protocol::OSTATUS:
@@ -211,6 +230,8 @@ class Delivery extends BaseObject
         * @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?
+        * @throws \Friendica\Network\HTTPException\InternalServerErrorException
+        * @throws \ImagickException
         */
        private static function deliverDFRN($cmd, $contact, $owner, $items, $target_item, $public_message, $top_level, $followup)
        {
@@ -332,6 +353,8 @@ class Delivery extends BaseObject
         * @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?
+        * @throws \Friendica\Network\HTTPException\InternalServerErrorException
+        * @throws \ImagickException
         */
        private static function deliverDiaspora($cmd, $contact, $owner, $items, $target_item, $public_message, $top_level, $followup)
        {
@@ -395,6 +418,8 @@ class Delivery extends BaseObject
         * @param array  $contact     Contact record of the receiver
         * @param array  $owner       Owner record of the sender
         * @param array  $target_item Item record of the content
+        * @throws \Friendica\Network\HTTPException\InternalServerErrorException
+        * @throws \ImagickException
         */
        private static function deliverMail($cmd, $contact, $owner, $target_item)
        {