X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=src%2FModel%2FPost%2FMedia.php;h=dd3f9f36e7a28f37fa7ea63ef43d092ff32a240b;hb=d951d49193899b64c2b7bbd84e9f20fa5d869b06;hp=ab17789724f250f3cf0b37c2fb2a2340273cd653;hpb=4fe278be7d605810c0bb848d10d48344df186747;p=friendica.git diff --git a/src/Model/Post/Media.php b/src/Model/Post/Media.php index ab17789724..dd3f9f36e7 100644 --- a/src/Model/Post/Media.php +++ b/src/Model/Post/Media.php @@ -463,7 +463,7 @@ class Media */ private static function isPictureLink(string $page, string $preview): bool { - return preg_match('#/photos/.*/image/#ism', $page) && preg_match('#/photo/.*-1\.#ism', $preview); + return (preg_match('#/photo/.*-0\.#ism', $page) || preg_match('#/photos/.*/image/#ism', $page)) && preg_match('#/photo/.*-[01]\.#ism', $preview); } /** @@ -482,15 +482,20 @@ class Media $attachments = []; if (preg_match_all("#\[url=([^\]]+?)\]\s*\[img=([^\[\]]*)\]([^\[\]]*)\[\/img\]\s*\[/url\]$endmatchpattern#ism", $body, $pictures, PREG_SET_ORDER)) { foreach ($pictures as $picture) { - if (!self::isPictureLink($picture[1], $picture[2])) { - continue; + if (self::isPictureLink($picture[1], $picture[2])) { + $body = str_replace($picture[0], '', $body); + $image = str_replace('-1.', '-0.', $picture[2]); + $attachments[$image] = [ + 'uri-id' => $uriid, 'type' => self::IMAGE, 'url' => $image, + 'preview' => $picture[2], 'description' => $picture[3] + ]; + } else { + $body = str_replace($picture[0], '', $body); + $attachments[$picture[1]] = [ + 'uri-id' => $uriid, 'type' => self::UNKNOWN, 'url' => $picture[1], + 'preview' => $picture[2], 'description' => $picture[3] + ]; } - $body = str_replace($picture[0], '', $body); - $image = str_replace('-1.', '-0.', $picture[2]); - $attachments[$image] = [ - 'uri-id' => $uriid, 'type' => self::IMAGE, 'url' => $image, - 'preview' => $picture[2], 'description' => $picture[3] - ]; } } @@ -503,15 +508,20 @@ class Media if (preg_match_all("#\[url=([^\]]+?)\]\s*\[img\]([^\[]+?)\[/img\]\s*\[/url\]$endmatchpattern#ism", $body, $pictures, PREG_SET_ORDER)) { foreach ($pictures as $picture) { - if (!self::isPictureLink($picture[1], $picture[2])) { - continue; + if (self::isPictureLink($picture[1], $picture[2])) { + $body = str_replace($picture[0], '', $body); + $image = str_replace('-1.', '-0.', $picture[2]); + $attachments[$image] = [ + 'uri-id' => $uriid, 'type' => self::IMAGE, 'url' => $image, + 'preview' => $picture[2], 'description' => null + ]; + } else { + $body = str_replace($picture[0], '', $body); + $attachments[$picture[1]] = [ + 'uri-id' => $uriid, 'type' => self::UNKNOWN, 'url' => $picture[1], + 'preview' => $picture[2], 'description' => null + ]; } - $body = str_replace($picture[0], '', $body); - $image = str_replace('-1.', '-0.', $picture[2]); - $attachments[$image] = [ - 'uri-id' => $uriid, 'type' => self::IMAGE, 'url' => $image, - 'preview' => $picture[2], 'description' => null - ]; } } @@ -567,6 +577,21 @@ class Media return $body; } + /** + * Remove media from the body + * + * @param string $body + * @return string + */ + public static function removeFromBody(string $body): string + { + do { + $prebody = $body; + $body = self::insertFromBody(0, $body); + } while ($prebody != $body); + return $body; + } + /** * Add media links from a relevant url in the body *