]> git.mxchange.org Git - friendica.git/blobdiff - src/Model/Post/Delayed.php
Only spool mirrored posts
[friendica.git] / src / Model / Post / Delayed.php
index 14f5d7198ee4da55ee697556d043b8d9704fd6b5..87e5fe8235ae810dc5d3fdd69e6f8f57e1bf6e13 100644 (file)
@@ -33,8 +33,6 @@ class Delayed
        /**
         * Insert a new delayed post
         *
-        * @param string $uri
-        * @param integer $uid
         * @param string $delayed
         * @param array $item
         * @param integer $notify
@@ -42,16 +40,16 @@ class Delayed
         * @param array $attachments
         * @return bool insert success
         */ 
-       public static function add(string $uri, int $uid, string $delayed, array $item, int $notify = 0, array $taglist = [], array $attachments = [])
+       public static function add(string $delayed, array $item, int $notify = 0, array $taglist = [], array $attachments = [])
        {
-               if (self::exists($uri)) {
+               if (empty($item['uri']) || empty($item['uid']) || self::exists($item['uri'], $item['uid'])) {
                        return false;
                }
 
-               Logger::notice('Adding post for delayed publishing', ['uid' => $uid, 'delayed' => $delayed, 'uri' => $uri]);
+               Logger::notice('Adding post for delayed publishing', ['uid' => $item['uid'], 'delayed' => $delayed, 'uri' => $item['uri']]);
 
                Worker::add(['priority' => PRIORITY_HIGH, 'delayed' => $delayed], 'DelayedPublish', $item, $notify, $taglist, $attachments);
-               return DBA::insert('delayed-post', ['uri' => $uri, 'uid' => $uid, 'delayed' => $delayed], Database::INSERT_IGNORE);
+               return DBA::insert('delayed-post', ['uri' => $item['uri'], 'uid' => $item['uid'], 'delayed' => $delayed], Database::INSERT_IGNORE);
        }
 
        /**
@@ -61,9 +59,9 @@ class Delayed
         *
         * @return bool delete success
         */
-       private static function delete(string $uri)
+       private static function delete(string $uri, int $uid)
        {
-               return DBA::delete('delayed-post', ['uri' => $uri]);
+               return DBA::delete('delayed-post', ['uri' => $uri, 'uid' => $uid]);
        }
 
        /**
@@ -73,9 +71,9 @@ class Delayed
         *
         * @return bool "true" if an entry with that URI exists
         */
-       public static function exists(string $uri)
+       public static function exists(string $uri, int $uid)
        {
-               return DBA::exists('delayed-post', ['uri' => $uri]);
+               return DBA::exists('delayed-post', ['uri' => $uri, 'uid' => $uid]);
        }
 
        /**
@@ -93,10 +91,14 @@ class Delayed
 
                Logger::notice('Post stored', ['id' => $id, 'uid' => $item['uid'], 'cid' => $item['contact-id']]);
 
+               // It should always contain an URI since this is needed to create a delayed post entry
+               if (!empty($item['uri']) && self::exists($item['uri'], $item['uid'])) {
+                       $result = self::delete($item['uri'], $item['uid']);
+                       Logger::notice('Delayed post entry deleted', ['result' => $result, 'uri' => $item['uri']]);
+               }
+
                if (!empty($id) && (!empty($taglist) || !empty($attachments))) {
-                       $feeditem = Item::selectFirst(['uri-id', 'uri'], ['id' => $id]);
-                       $result = self::delete($feeditem['uri']);
-                       Logger::notice('Delayed post entry deleted', ['result' => $result, 'item' => $feeditem]);
+                       $feeditem = Item::selectFirst(['uri-id'], ['id' => $id]);
 
                        foreach ($taglist as $tag) {
                                Tag::store($feeditem['uri-id'], Tag::HASHTAG, $tag);