diff options
| author | 2016-10-12 15:47:04 +0200 | |
|---|---|---|
| committer | 2016-10-12 15:47:04 +0200 | |
| commit | e8d1a6dcc9c6aeb5204a8afc47aaae3c6bdd9dc4 (patch) | |
| tree | d744a349b1d9ab1e1de780f211b3fe52e46e11d4 /app/Models/Feed.php | |
| parent | 2630393587fccb8f14c1b61208debc30d314c015 (diff) | |
Cron refresh favicons
Related to
https://github.com/FreshRSS/FreshRSS/issues/1181
https://github.com/FreshRSS/FreshRSS/issues/1298
Diffstat (limited to 'app/Models/Feed.php')
| -rw-r--r-- | app/Models/Feed.php | 24 |
1 files changed, 18 insertions, 6 deletions
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) { |
