]> git.mxchange.org Git - friendica.git/blobdiff - src/Protocol/Feed.php
Merge pull request #9655 from MrPetovan/bug/fatal-errors
[friendica.git] / src / Protocol / Feed.php
index f874b4b02603e7e06d829f1c030b4f529d429f00..f674f7081512d252d19bbadfc9011745df91e838 100644 (file)
@@ -614,11 +614,16 @@ class Feed
                                $notify = PRIORITY_MEDIUM;
                        }
 
-                       if (!Post\Delayed::exists($item["uri"])) {
-                               $postings[] = ['item' => $item, 'notify' => $notify,
-                                       'taglist' => $taglist, 'attachments' => $attachments];
+                       $condition = ['uid' => $item['uid'], 'uri' => $item['uri']];
+                       if (!Item::exists($condition) && !Post\Delayed::exists($item["uri"], $item['uid'])) {
+                               if (!$notify) {
+                                       Post\Delayed::publish($item, $notify, $taglist, $attachments);
+                               } else {
+                                       $postings[] = ['item' => $item, 'notify' => $notify,
+                                               'taglist' => $taglist, 'attachments' => $attachments];
+                               }
                        } else {
-                               Logger::info('Post already exists in the delayed posts queue', ['uri' => $item["uri"]]);
+                               Logger::info('Post already created or exists in the delayed posts queue', ['uid' => $item['uid'], 'uri' => $item["uri"]]);
                        }
                }
 
@@ -629,7 +634,7 @@ class Feed
                                // Posts shouldn't be delayed more than a day
                                $interval = min(1440, self::getPollInterval($contact));
                                $delay = max(round(($interval * 60) / $total), 60 * $min_posting);
-                               Logger::notice('Got posting delay', ['delay' => $delay, 'interval' => $interval, 'items' => $total, 'cid' => $contact['id'], 'url' => $contact['url']]);
+                               Logger::info('Got posting delay', ['delay' => $delay, 'interval' => $interval, 'items' => $total, 'cid' => $contact['id'], 'url' => $contact['url']]);
                        } else {
                                $delay = 0;
                        }
@@ -639,7 +644,6 @@ class Feed
                        foreach ($postings as $posting) {
                                if ($delay > 0) {
                                        $publish_time = time() + $post_delay;
-                                       Logger::notice('Got publishing date', ['delay' => $delay, 'cid' => $contact['id'], 'url' => $contact['url']]);
                                        $post_delay += $delay;
                                } else {
                                        $publish_time = time();
@@ -652,8 +656,7 @@ class Feed
                                }
                                $publish_at = date(DateTimeFormat::MYSQL, $publish_time);
 
-                               Post\Delayed::add($item['uri'], $item['uid'], $publish_at, $posting['item'], $posting['notify'], $posting['taglist'], $posting['attachments']);
-                               DI::pConfig()->set($item['uid'], 'system', 'last_publish', $next_publish);
+                               Post\Delayed::add($posting['item']['uri'], $posting['item'], $posting['notify'], false, $publish_at, $posting['taglist'], $posting['attachments']);
                        }
                }