aboutsummaryrefslogtreecommitdiff
path: root/app/Models/Feed.php
diff options
context:
space:
mode:
authorGravatar Alexandre Alapetite <alexandre@alapetite.fr> 2016-10-12 15:47:04 +0200
committerGravatar Alexandre Alapetite <alexandre@alapetite.fr> 2016-10-12 15:47:04 +0200
commite8d1a6dcc9c6aeb5204a8afc47aaae3c6bdd9dc4 (patch)
treed744a349b1d9ab1e1de780f211b3fe52e46e11d4 /app/Models/Feed.php
parent2630393587fccb8f14c1b61208debc30d314c015 (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.php24
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) {