From e8d1a6dcc9c6aeb5204a8afc47aaae3c6bdd9dc4 Mon Sep 17 00:00:00 2001 From: Alexandre Alapetite Date: Wed, 12 Oct 2016 15:47:04 +0200 Subject: Cron refresh favicons Related to https://github.com/FreshRSS/FreshRSS/issues/1181 https://github.com/FreshRSS/FreshRSS/issues/1298 --- app/Models/Context.php | 2 ++ app/Models/Feed.php | 24 ++++++++++++++++++------ 2 files changed, 20 insertions(+), 6 deletions(-) (limited to 'app/Models') diff --git a/app/Models/Context.php b/app/Models/Context.php index a38b1e0f1..889ddab1e 100644 --- a/app/Models/Context.php +++ b/app/Models/Context.php @@ -37,6 +37,8 @@ class FreshRSS_Context { public static $id_max = ''; public static $sinceHours = 0; + public static $isCron = false; + /** * Initialize the context. * diff --git a/app/Models/Feed.php b/app/Models/Feed.php index 21c1ef93d..b78f5f064 100644 --- a/app/Models/Feed.php +++ b/app/Models/Feed.php @@ -131,13 +131,25 @@ class FreshRSS_Feed extends Minz_Model { return $this->nbNotRead; } public function faviconPrepare() { - $file = DATA_PATH . '/favicons/' . $this->hash() . '.txt'; - if (!file_exists($file)) { - $t = $this->website; - if ($t == '') { - $t = $this->url; + require_once(LIB_PATH . '/favicons.php'); + $url = $this->website; + if ($url == '') { + $url = $this->url; + } + $txt = $favicons_dir . $this->hash() . '.txt'; + if (!file_exists($txt)) { + file_put_contents($txt, $url); + } + if (FreshRSS_Context::$isCron) { + $ico = $favicons_dir . $this->hash() . '.ico'; + $ico_mtime = @filemtime($ico); + $txt_mtime = @filemtime($txt); + if ($txt_mtime != false && + ($ico_mtime == false || $ico_mtime < $txt_mtime || ($ico_mtime < 14 * 86400))) { + // no ico file or we should download a new one. + $url = file_get_contents($txt); + download_favicon($url, $ico) || touch($ico); } - file_put_contents($file, $t); } } public static function faviconDelete($hash) { -- cgit v1.2.3 From 8a923aa8c75cae951e9700b44010304aea506340 Mon Sep 17 00:00:00 2001 From: Alexandre Alapetite Date: Wed, 12 Oct 2016 21:36:00 +0200 Subject: Finalize cron refresh favicons --- CHANGELOG.md | 2 +- app/Models/Feed.php | 3 ++- 2 files changed, 3 insertions(+), 2 deletions(-) (limited to 'app/Models') diff --git a/CHANGELOG.md b/CHANGELOG.md index 4067dc5a7..3178e6ae7 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -16,7 +16,7 @@ * Support custom ports `localhost:3306` for database servers [#1241](https://github.com/FreshRSS/FreshRSS/issues/1241) * Add date to exported files [#1240](https://github.com/FreshRSS/FreshRSS/issues/1240) * Auto-refresh favicons once or twice a month [#1181](https://github.com/FreshRSS/FreshRSS/issues/1181), [#1298](https://github.com/FreshRSS/FreshRSS/issues/1298) - * Cron updates will also refresh favicons every 14 days [#1306](https://github.com/FreshRSS/FreshRSS/pull/1306) + * Cron updates will also refresh favicons every 2 weeks [#1306](https://github.com/FreshRSS/FreshRSS/pull/1306) * Bug fixing * Correction of bugs related CSRF tokens introduced in version 1.5.0 [#1253](https://github.com/FreshRSS/FreshRSS/issues/1253), [44f22ab](https://github.com/FreshRSS/FreshRSS/pull/1261/commits/d9bf9b2c6f0b2cc9dec3b638841b7e3040dcf46f) * Fix bug in Global view introduced in version 1.5.0 [#1269](https://github.com/FreshRSS/FreshRSS/pull/1269) diff --git a/app/Models/Feed.php b/app/Models/Feed.php index b78f5f064..55c2db4d6 100644 --- a/app/Models/Feed.php +++ b/app/Models/Feed.php @@ -131,6 +131,7 @@ class FreshRSS_Feed extends Minz_Model { return $this->nbNotRead; } public function faviconPrepare() { + global $favicons_dir; require_once(LIB_PATH . '/favicons.php'); $url = $this->website; if ($url == '') { @@ -145,7 +146,7 @@ class FreshRSS_Feed extends Minz_Model { $ico_mtime = @filemtime($ico); $txt_mtime = @filemtime($txt); if ($txt_mtime != false && - ($ico_mtime == false || $ico_mtime < $txt_mtime || ($ico_mtime < 14 * 86400))) { + ($ico_mtime == false || $ico_mtime < $txt_mtime || ($ico_mtime < time() - (14 * 86400)))) { // no ico file or we should download a new one. $url = file_get_contents($txt); download_favicon($url, $ico) || touch($ico); -- cgit v1.2.3