]> git.mxchange.org Git - friendica.git/blobdiff - src/Worker/Notifier.php
New post class in protocol and worker classes
[friendica.git] / src / Worker / Notifier.php
index 4ccfacd5cb63e4ca0bb0e82d3fe900721831ab76..7a78e985c171277d905a803729fa3eb7f802438f 100644 (file)
@@ -101,7 +101,7 @@ class Notifier
                } else {
                        // find ancestors
                        $condition = ['id' => $target_id, 'visible' => true, 'moderated' => false];
-                       $target_item = Item::selectFirst([], $condition);
+                       $target_item = Post::selectFirst([], $condition);
 
                        if (!DBA::isResult($target_item) || !intval($target_item['parent'])) {
                                Logger::info('No target item', ['cmd' => $cmd, 'target' => $target_id]);
@@ -119,13 +119,13 @@ class Notifier
 
                        $condition = ['parent' => $target_item['parent'], 'visible' => true, 'moderated' => false];
                        $params = ['order' => ['id']];
-                       $items_stmt = Item::select([], $condition, $params);
+                       $items_stmt = Post::select([], $condition, $params);
                        if (!DBA::isResult($items_stmt)) {
                                Logger::info('No item found', ['cmd' => $cmd, 'target' => $target_id]);
                                return;
                        }
 
-                       $items = Item::inArray($items_stmt);
+                       $items = Post::inArray($items_stmt);
 
                        // avoid race condition with deleting entries
                        if ($items[0]['deleted']) {
@@ -165,7 +165,7 @@ class Notifier
 
                        $fields = ['network', 'author-id', 'author-link', 'author-network', 'owner-id'];
                        $condition = ['uri' => $target_item["thr-parent"], 'uid' => $target_item["uid"]];
-                       $thr_parent = Item::selectFirst($fields, $condition);
+                       $thr_parent = Post::selectFirst($fields, $condition);
                        if (empty($thr_parent)) {
                                $thr_parent = $parent;
                        }
@@ -452,13 +452,13 @@ class Notifier
 
                        $conversants = array_merge($contacts, $relay_list);
 
-                       $delivery_queue_count += self::delivery($cmd, $target_id, $target_item, $thr_parent, $owner, $batch_delivery, $conversants, $ap_contacts, []);
+                       $delivery_queue_count += self::delivery($cmd, $target_id, $target_item, $thr_parent, $owner, $batch_delivery, true, $conversants, $ap_contacts, []);
 
                        $push_notify = true;
                }
 
                $contacts = DBA::toArray($delivery_contacts_stmt);
-               $delivery_queue_count += self::delivery($cmd, $target_id, $target_item, $thr_parent, $owner, $batch_delivery, $contacts, $ap_contacts, $conversants);
+               $delivery_queue_count += self::delivery($cmd, $target_id, $target_item, $thr_parent, $owner, $batch_delivery, false, $contacts, $ap_contacts, $conversants);
 
                $delivery_queue_count += self::deliverOStatus($target_id, $target_item, $owner, $url_recipients, $public_message, $push_notify);
 
@@ -499,7 +499,7 @@ class Notifier
         * @throws InternalServerErrorException 
         * @throws Exception 
         */
-       private static function delivery(string $cmd, int $target_id, array $target_item, array $thr_parent, array $owner, bool $batch_delivery, array $contacts, array $ap_contacts, array $conversants = [])
+       private static function delivery(string $cmd, int $target_id, array $target_item, array $thr_parent, array $owner, bool $batch_delivery, bool $in_batch, array $contacts, array $ap_contacts, array $conversants = [])
        {
                $a = DI::app(); 
                $delivery_queue_count = 0;
@@ -531,7 +531,7 @@ class Notifier
                        }
 
                        // Don't deliver to Diaspora if it already had been done as batch delivery
-                       if (($contact['network'] == Protocol::DIASPORA) && $batch_delivery) {
+                       if (!$in_batch && $batch_delivery && ($contact['network'] == Protocol::DIASPORA)) {
                                Logger::info('Diaspora contact is already delivered via batch', ['id' => $target_id, 'contact' => $contact]);
                                continue;
                        }
@@ -542,7 +542,7 @@ class Notifier
                                continue;
                        }
 
-                       Logger::info('Delivery', ['target' => $target_id, 'guid' => $target_item['guid'] ?? '', 'to' => $contact]);
+                       Logger::info('Delivery', ['batch' => $in_batch, 'target' => $target_id, 'guid' => $target_item['guid'] ?? '', 'to' => $contact]);
 
                        // Ensure that posts with our own protocol arrives before Diaspora posts arrive.
                        // Situation is that sometimes Friendica servers receive Friendica posts over the Diaspora protocol first.