From 7d91cc73de054c645df61f64ef72ff8aca9cfb4d Mon Sep 17 00:00:00 2001 From: Michael Date: Tue, 9 May 2023 20:44:58 +0000 Subject: [PATCH] Unifiy the creation of photo links --- mod/photos.php | 4 +--- src/Model/Post/Media.php | 10 +++------- src/Module/Media/Photo/Upload.php | 2 +- src/Module/Profile/Photos.php | 4 +--- src/Util/Images.php | 28 ++++++++++++++++++++++++++++ 5 files changed, 34 insertions(+), 14 deletions(-) diff --git a/mod/photos.php b/mod/photos.php index 3d6a1d4051..18118bcd96 100644 --- a/mod/photos.php +++ b/mod/photos.php @@ -375,9 +375,7 @@ function photos_post(App $a) $arr['visible'] = 0; $arr['origin'] = 1; - $arr['body'] = '[url=' . DI::baseUrl() . '/photos/' . $user['nickname'] . '/image/' . $photo['resource-id'] . ']' - . '[img]' . DI::baseUrl() . '/photo/' . $photo['resource-id'] . '-' . $photo['scale'] . '.'. $ext . '[/img]' - . '[/url]'; + $arr['body'] = Images::getImageUrl($photo['resource-id'], $user['nickname'], $photo['scale'], $ext, ''); $item_id = Item::insert($arr); } diff --git a/src/Model/Post/Media.php b/src/Model/Post/Media.php index cc5b16d1e7..5e867d26cf 100644 --- a/src/Model/Post/Media.php +++ b/src/Model/Post/Media.php @@ -489,7 +489,7 @@ class Media if (preg_match_all("#\[url=([^\]]+?)\]\s*\[img=([^\[\]]*)\]([^\[\]]*)\[\/img\]\s*\[/url\]#ism", $body, $pictures, PREG_SET_ORDER)) { foreach ($pictures as $picture) { if (self::isLinkToImagePage($picture[1], $picture[2])) { - $body = str_replace($picture[0], '[url=' . str_replace(['-1.', '-2.'], '-0.', $picture[2]) . '][img=' . $picture[2] . ']' . $picture[3] . '[/img][/url]', $body); + $body = str_replace($picture[0], Images::getPictureUrl(str_replace(['-1.', '-2.'], '-0.', $picture[2]), $picture[2], $picture[3]), $body); } } } @@ -497,7 +497,7 @@ class Media if (preg_match_all("#\[url=([^\]]+?)\]\s*\[img\]([^\[]+?)\[/img\]\s*\[/url\]#ism", $body, $pictures, PREG_SET_ORDER)) { foreach ($pictures as $picture) { if (self::isLinkToImagePage($picture[1], $picture[2])) { - $body = str_replace($picture[0], '[url=' . str_replace(['-1.', '-2.'], '-0.', $picture[2]) . '][img]' . $picture[2] . '[/img][/url]', $body); + $body = str_replace($picture[0], Images::getPictureUrl(str_replace(['-1.', '-2.'], '-0.', $picture[2]), $picture[2], ''), $body); } } } @@ -1005,11 +1005,7 @@ class Media if ($media['type'] == self::IMAGE) { if (!empty($media['preview'])) { - if (!empty($media['description'])) { - $body .= "\n[url=" . $media['url'] . "][img=" . $media['preview'] . ']' . $media['description'] . '[/img][/url]'; - } else { - $body .= "\n[url=" . $media['url'] . "][img]" . $media['preview'] . '[/img][/url]'; - } + $body .= "\n" . Images::getPictureUrl($media['url'], $media['preview'], $media['description']); } else { if (!empty($media['description'])) { $body .= "\n[img=" . $media['url'] . ']' . $media['description'] . '[/img]'; diff --git a/src/Module/Media/Photo/Upload.php b/src/Module/Media/Photo/Upload.php index 09d31971a4..8ea079c6cf 100644 --- a/src/Module/Media/Photo/Upload.php +++ b/src/Module/Media/Photo/Upload.php @@ -180,7 +180,7 @@ class Upload extends \Friendica\BaseModule } $this->logger->info('upload done'); - $this->return(200, "\n\n" . '[url=' . $this->baseUrl . '/photos/' . $owner['nickname'] . '/image/' . $resource_id . '][img=' . $this->baseUrl . "/photo/$resource_id-$preview." . $image->getExt() . "][/img][/url]\n\n"); + $this->return(200, "\n\n" . Images::getImageUrl($resource_id, $owner['nickname'], $preview, $image->getExt(), '') . "\n\n"); } /** diff --git a/src/Module/Profile/Photos.php b/src/Module/Profile/Photos.php index 03937c655e..720efa060b 100644 --- a/src/Module/Profile/Photos.php +++ b/src/Module/Profile/Photos.php @@ -273,9 +273,7 @@ class Photos extends \Friendica\Module\BaseProfile $arr['visible'] = $visible; $arr['origin'] = 1; - $arr['body'] = '[url=' . $this->baseUrl . '/photos/' . $this->owner['nickname'] . '/image/' . $resource_id . ']' - . '[img]' . $this->baseUrl . "/photo/{$resource_id}-{$preview}.".$image->getExt() . '[/img]' - . '[/url]'; + $arr['body'] = Images::getImageUrl($resource_id, $this->owner['nickname'], $preview, $image->getExt(), ''); $item_id = Item::insert($arr); // Update the photo albums cache diff --git a/src/Util/Images.php b/src/Util/Images.php index 90d120081b..08553a1a9c 100644 --- a/src/Util/Images.php +++ b/src/Util/Images.php @@ -316,4 +316,32 @@ class Images return ['width' => $dest_width, 'height' => $dest_height]; } + + /** + * Get a link to a an image link with a preview + * + * @param string $resource_id + * @param string $nickname + * @param integer $preview + * @param string $ext + * @param string $description + * @return string + */ + public static function getImageUrl(string $resource_id, string $nickname, int $preview, string $ext, string $description): string + { + return '[url=' . DI::baseUrl() . '/photos/' . $nickname . '/image/' . $resource_id . '][img=' . DI::baseUrl() . '/photo/' . $resource_id . '-' . $preview. '.' . $ext . ']' . $description . '[/img][/url]'; + } + + /** + * Get a link to a picture with a preview + * + * @param string $photo + * @param string $preview + * @param string $description + * @return string + */ + public static function getPictureUrl(string $photo, string $preview, string $description): string + { + return '[url=' . $photo . '][img=' . $preview . ']' . $description . '[/img][/url]'; + } }