Revert "get favicon from icon atom feeds & search for icons not only in html head (closes #457)"
This reverts commit 882311d9ad
.
This commit is contained in:
parent
eb38af4ee4
commit
1bd11fdf95
|
@ -332,9 +332,9 @@
|
||||||
* @access public
|
* @access public
|
||||||
* @return mixed The favicon URL, or false if none was found.
|
* @return mixed The favicon URL, or false if none was found.
|
||||||
*/
|
*/
|
||||||
function get_favicon_urls($url) {
|
function get_favicon_url($url) {
|
||||||
|
|
||||||
$favicons = array();
|
$favicon_url = false;
|
||||||
|
|
||||||
if ($html = @fetch_file_contents($url)) {
|
if ($html = @fetch_file_contents($url)) {
|
||||||
|
|
||||||
|
@ -350,27 +350,34 @@
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
# Limiting the search to head will not find when in body
|
$entries = $xpath->query('/html/head/link[@rel="shortcut icon" or @rel="icon"]');
|
||||||
$entries = $xpath->query('//link[@rel="shortcut icon" or @rel="icon"]');
|
|
||||||
if (count($entries) > 0) {
|
if (count($entries) > 0) {
|
||||||
foreach ($entries as $entry) {
|
foreach ($entries as $entry) {
|
||||||
array_push($favicons, rewrite_relative_url($url, $entry->getAttribute("href")));
|
$favicon_url = rewrite_relative_url($url, $entry->getAttribute("href"));
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
array_push($favicons, rewrite_relative_url($url, "/favicon.ico"));
|
if (!$favicon_url)
|
||||||
|
$favicon_url = rewrite_relative_url($url, "/favicon.ico");
|
||||||
|
|
||||||
return $favicons;
|
return $favicon_url;
|
||||||
} // function get_favicon_urls
|
} // function get_favicon_url
|
||||||
|
|
||||||
function validate_favicon($url, $feed) {
|
function check_feed_favicon($site_url, $feed, $link) {
|
||||||
|
# print "FAVICON [$site_url]: $favicon_url\n";
|
||||||
|
|
||||||
|
$icon_file = ICONS_DIR . "/$feed.ico";
|
||||||
|
|
||||||
|
if (!file_exists($icon_file)) {
|
||||||
|
$favicon_url = get_favicon_url($site_url);
|
||||||
|
|
||||||
|
if ($favicon_url) {
|
||||||
// Limiting to "image" type misses those served with text/plain
|
// Limiting to "image" type misses those served with text/plain
|
||||||
$contents = fetch_file_contents($url); // , "image");
|
$contents = fetch_file_contents($favicon_url); // , "image");
|
||||||
|
|
||||||
if (!$contents)
|
|
||||||
return false;
|
|
||||||
|
|
||||||
|
if ($contents) {
|
||||||
// Crude image type matching.
|
// Crude image type matching.
|
||||||
// Patterns gleaned from the file(1) source code.
|
// Patterns gleaned from the file(1) source code.
|
||||||
if (preg_match('/^\x00\x00\x01\x00/', $contents)) {
|
if (preg_match('/^\x00\x00\x01\x00/', $contents)) {
|
||||||
|
@ -391,37 +398,20 @@
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
//error_log("check_feed_favicon: favicon_url=$favicon_url isa UNKNOWN type");
|
//error_log("check_feed_favicon: favicon_url=$favicon_url isa UNKNOWN type");
|
||||||
return false;
|
$contents = "";
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
$icon_file = ICONS_DIR . "/$feed.ico";
|
if ($contents) {
|
||||||
$fp = @fopen($icon_file, "w");
|
$fp = @fopen($icon_file, "w");
|
||||||
|
|
||||||
if ($fp) {
|
if ($fp) {
|
||||||
fwrite($fp, $contents);
|
fwrite($fp, $contents);
|
||||||
fclose($fp);
|
fclose($fp);
|
||||||
chmod($icon_file, 0644);
|
chmod($icon_file, 0644);
|
||||||
}
|
}
|
||||||
return true;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
function check_feed_favicon($site_url, $feed, $link, $atom_icon) {
|
|
||||||
# print "FAVICON [$site_url]: $favicon_url\n";
|
|
||||||
|
|
||||||
if(!empty($atom_icon) && validate_favicon($atom_icon, $feed))
|
|
||||||
return;
|
|
||||||
|
|
||||||
$favicon_urls = array($atom_icon);
|
|
||||||
|
|
||||||
$favicon_urls = array_unique(array_merge($favicon_urls, get_favicon_urls($site_url)));
|
|
||||||
for ($i = 1; $i < count($favicon_urls); $i++) {
|
|
||||||
if (validate_favicon($favicon_urls[$i], $feed))
|
|
||||||
return;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
$favicon_urls = array_unique(array_merge($favicon_urls, get_favicon_urls(rewrite_relative_url($link, "/"))));
|
|
||||||
for (; $i < count($favicon_urls); $i++) {
|
|
||||||
if (validate_favicon($favicon_urls[$i], $feed))
|
|
||||||
return;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -441,14 +441,7 @@
|
||||||
_debug("update_rss_feed: checking favicon...");
|
_debug("update_rss_feed: checking favicon...");
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!file_exists(ICONS_DIR . "/$feed.ico")) {
|
check_feed_favicon($site_url, $feed, $link);
|
||||||
if ($use_simplepie) {
|
|
||||||
$atom_icon = $rss->get_favicon();
|
|
||||||
} else {
|
|
||||||
$atom_icon = $rss->channel["icon"];
|
|
||||||
}
|
|
||||||
check_feed_favicon($site_url, $feed, $link, $atom_icon);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (!$registered_title || $registered_title == "[Unknown]") {
|
if (!$registered_title || $registered_title == "[Unknown]") {
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue