]> git.mxchange.org Git - friendica.git/blobdiff - src/Model/Item.php
Merge pull request #11082 from annando/Fix-rendertime
[friendica.git] / src / Model / Item.php
index 094fa3b029c902553a9d174f27bfd087f25a46c6..ca5e4bec02b94fa4231bba30082a09f0a6f50a56 100644 (file)
@@ -366,7 +366,7 @@ class Item
        public static function guid($item, $notify)
        {
                if (!empty($item['guid'])) {
-                       return Strings::escapeTags(trim($item['guid']));
+                       return trim($item['guid']);
                }
 
                if ($notify) {
@@ -2258,8 +2258,8 @@ class Item
                        $condition[] = $network;
                }
 
-               $condition[0] .= " AND `received` < UTC_TIMESTAMP() - INTERVAL ? DAY";
-               $condition[] = $days;
+               $condition[0] .= " AND `received` < ?";
+               $condition[] = DateTimeFormat::utc('now - ' . $days . ' day');
 
                $items = Post::select(['resource-id', 'starred', 'id', 'post-type', 'uid', 'uri-id'], $condition);
 
@@ -2990,8 +2990,9 @@ class Item
        private static function addLinkAttachment(int $uriid, array $attachments, string $body, string $content, bool $shared, array $ignore_links)
        {
                DI::profiler()->startRecording('rendering');
-               // @ToDo Check only for audio and video
-               $preview = empty($attachments['visual']);
+               // Don't show a preview when there is a visual attachment (audio or video)
+               $types = array_column($attachments['visual'], 'type');
+               $preview = !in_array(Post\Media::IMAGE, $types) && !in_array(Post\Media::VIDEO, $types);
 
                if (!empty($attachments['link'])) {
                        foreach ($attachments['link'] as $link) {
@@ -3262,6 +3263,18 @@ class Item
                        return $item_id;
                }
 
+               $hookData = [
+                       'uri'     => $uri,
+                       'uid'     => $uid,
+                       'item_id' => null,
+               ];
+
+               Hook::callAll('item_by_link', $hookData);
+
+               if (isset($hookData['item_id'])) {
+                       return is_numeric($hookData['item_id']) ? $hookData['item_id'] : 0;
+               }
+
                if ($fetched_uri = ActivityPub\Processor::fetchMissingActivity($uri)) {
                        $item_id = self::searchByLink($fetched_uri, $uid);
                } else {
@@ -3354,7 +3367,7 @@ class Item
                        $body = $shared_item['body'];
                }
 
-               $item['body'] = preg_replace("/\[share ([^\[\]]*)\].*\[\/share\]/ism", '[share $1]' . $body . '[/share]', $item['body']);
+               $item['body'] = preg_replace("/\[share ([^\[\]]*)\].*\[\/share\]/ism", '[share $1]' . str_replace('$', '\$', $body) . '[/share]', $item['body']);
                unset($shared_item['body']);
 
                return array_merge($item, $shared_item);