part of #276: determine if the url contents are html

This commit is contained in:
Christian Weiske 2010-11-07 14:43:15 +01:00 committed by Andrew Dolgov
parent 2b8290cd5b
commit f33479dab8
2 changed files with 22 additions and 0 deletions

View File

@ -1319,6 +1319,7 @@ function subscribeToFeed() {
} }
break; break;
case 2: case 2:
case 3:
alert(__("Can't subscribe to the specified URL.")); alert(__("Can't subscribe to the specified URL."));
break; break;
case 0: case 0:

View File

@ -2953,6 +2953,7 @@
* 0 - OK, Feed already exists * 0 - OK, Feed already exists
* 1 - OK, Feed added * 1 - OK, Feed added
* 2 - Invalid URL * 2 - Invalid URL
* 3 - URL content is HTML, not a feed
*/ */
function subscribe_to_feed($link, $url, $cat_id = 0, function subscribe_to_feed($link, $url, $cat_id = 0,
$auth_login = '', $auth_pass = '') { $auth_login = '', $auth_pass = '') {
@ -2971,6 +2972,9 @@
WHERE feed_url = '$url' AND owner_uid = ".$_SESSION["uid"]); WHERE feed_url = '$url' AND owner_uid = ".$_SESSION["uid"]);
if (db_num_rows($result) == 0) { if (db_num_rows($result) == 0) {
if (url_is_html($url)) {
return 3;
}
$result = db_query($link, $result = db_query($link,
"INSERT INTO ttrss_feeds "INSERT INTO ttrss_feeds
@ -7026,4 +7030,21 @@
return $feedUrls; return $feedUrls;
} }
/**
* Checks if the content behind the given URL is a HTML file
*
* @param string $url URL to check
*
* @return boolean True if the URL contains HTML content
*/
function url_is_html($url) {
$content = substr(fetch_file_contents($url, false), 0, 1000);
if (strpos($content, '<html>') === false
&& strpos($content, '<html ') === false
) {
return false;
}
return true;
}
?> ?>