From df86cbb361e480dbe50b1dc52025c880f170f6b2 Mon Sep 17 00:00:00 2001 From: Patrick Hyatt Date: Fri, 1 Nov 2024 11:22:54 -0400 Subject: Rebuild Feed .ico and .txt on cache clear (#6961) * - Modify Feed.faviconPrepare signature to allow forced retrieval of the favicon - Add faviconRebuild which clears file cache and re-retrieves icons - Call faviconRebuild when clearCache is fired * Update app/Models/Feed.php * - PHPStan fix : Use static method call vs dynamic --------- Co-authored-by: Alexandre Alapetite --- app/Models/Feed.php | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) (limited to 'app') diff --git a/app/Models/Feed.php b/app/Models/Feed.php index b5b599d5f..03c7cdd74 100644 --- a/app/Models/Feed.php +++ b/app/Models/Feed.php @@ -225,7 +225,7 @@ class FreshRSS_Feed extends Minz_Model { return $this->nbNotRead; } - public function faviconPrepare(): void { + public function faviconPrepare(bool $force = false): void { require_once(LIB_PATH . '/favicons.php'); $url = $this->website; if ($url == '') { @@ -235,7 +235,7 @@ class FreshRSS_Feed extends Minz_Model { if (@file_get_contents($txt) !== $url) { file_put_contents($txt, $url); } - if (FreshRSS_Context::$isCli) { + if (FreshRSS_Context::$isCli || $force) { $ico = FAVICONS_DIR . $this->hash() . '.ico'; $ico_mtime = @filemtime($ico); $txt_mtime = @filemtime($txt); @@ -1006,7 +1006,13 @@ class FreshRSS_Feed extends Minz_Model { } } + private function faviconRebuild(): void { + FreshRSS_Feed::faviconDelete($this->hash()); + $this->faviconPrepare(true); + } + public function clearCache(): bool { + $this->faviconRebuild(); return @unlink($this->cacheFilename()); } -- cgit v1.2.3