diff options
| author | 2016-10-12 15:47:04 +0200 | |
|---|---|---|
| committer | 2016-10-12 15:47:04 +0200 | |
| commit | e8d1a6dcc9c6aeb5204a8afc47aaae3c6bdd9dc4 (patch) | |
| tree | d744a349b1d9ab1e1de780f211b3fe52e46e11d4 /lib/favicons.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 'lib/favicons.php')
| -rw-r--r-- | lib/favicons.php | 40 |
1 files changed, 40 insertions, 0 deletions
diff --git a/lib/favicons.php b/lib/favicons.php new file mode 100644 index 000000000..6709f6745 --- /dev/null +++ b/lib/favicons.php @@ -0,0 +1,40 @@ +<?php + +include(LIB_PATH . '/Favicon/Favicon.php'); +include(LIB_PATH . '/Favicon/DataAccess.php'); + +$favicons_dir = DATA_PATH . '/favicons/'; +$default_favicon = PUBLIC_PATH . '/themes/icons/default_favicon.ico'; + +function download_favicon($website, $dest) { + global $favicons_dir, $default_favicon; + + syslog(LOG_DEBUG, 'FreshRSS Favicon discovery GET ' . $website); + $favicon_getter = new \Favicon\Favicon(); + $favicon_getter->setCacheDir($favicons_dir); + $favicon_url = $favicon_getter->get($website); + + if ($favicon_url === false) { + return @copy($default_favicon, $dest); + } + + syslog(LOG_DEBUG, 'FreshRSS Favicon GET ' . $favicon_url); + $c = curl_init($favicon_url); + curl_setopt($c, CURLOPT_HEADER, false); + curl_setopt($c, CURLOPT_RETURNTRANSFER, true); + curl_setopt($c, CURLOPT_BINARYTRANSFER, true); + $img_raw = curl_exec($c); + $status_code = curl_getinfo($c, CURLINFO_HTTP_CODE); + curl_close($c); + + if ($status_code === 200) { + $file = fopen($dest, 'w'); + if ($file !== false) { + fwrite($file, $img_raw); + fclose($file); + return true; + } + } + + return false; +} |
