From c726958f3fe474c013237c8d885a03225121933c Mon Sep 17 00:00:00 2001 From: free-bots <54210595+free-bots@users.noreply.github.com> Date: Sun, 12 Jan 2025 11:12:52 +0100 Subject: [PATCH] fixed duplicate enclosure images (#265) * fixed duplicate enclosure images * added comment * Update xExtension-ImageProxy/extension.php --------- Co-authored-by: Alexandre Alapetite --- xExtension-ImageProxy/extension.php | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/xExtension-ImageProxy/extension.php b/xExtension-ImageProxy/extension.php index 9cdb721..3c21e45 100644 --- a/xExtension-ImageProxy/extension.php +++ b/xExtension-ImageProxy/extension.php @@ -124,12 +124,20 @@ final class ImageProxyExtension extends Minz_Extension { $imgs = $doc->getElementsByTagName('img'); foreach ($imgs as $img) { if ($img->hasAttribute('src')) { - $newSrc = self::getProxyImageUri($img->getAttribute('src')); + $src = $img->getAttribute('src'); + $newSrc = self::getProxyImageUri($src); + /* + Due to the URL change, FreshRSS is not aware of already rendered enclosures. + Adding data-xextension-imageproxy-original-src / srcset ensures that original URLs are present in the content for the renderer check FreshRSS_Entry->containsLink. + */ + $img->setAttribute('data-xextension-imageproxy-original-src', $src); $img->setAttribute('src', $newSrc); } if ($img->hasAttribute('srcset')) { - $newSrcSet = preg_replace_callback('/(?:([^\s,]+)(\s*(?:\s+\d+[wx])(?:,\s*)?))/', fn (array $matches) => self::getSrcSetUris($matches), $img->getAttribute('srcset')); + $srcSet = $img->getAttribute('srcset'); + $newSrcSet = preg_replace_callback('/(?:([^\s,]+)(\s*(?:\s+\d+[wx])(?:,\s*)?))/', fn (array $matches) => self::getSrcSetUris($matches), $srcSet); if ($newSrcSet != null) { + $img->setAttribute('data-xextension-imageproxy-original-srcset', $srcSet); $img->setAttribute('srcset', $newSrcSet); } }