subscribe_to_feed: do not subscribe to feeds which can't be downloaded

This commit is contained in:
Andrew Dolgov 2010-11-10 13:27:44 +03:00
parent fb0742394a
commit 5414ad4c80
2 changed files with 12 additions and 2 deletions

View File

@ -1304,6 +1304,9 @@ function subscribeToFeed() {
try { try {
if (!transport.responseXML)
console.log(transport.responseText);
var result = transport.responseXML.getElementsByTagName('result')[0]; var result = transport.responseXML.getElementsByTagName('result')[0];
var rc = parseInt(result.getAttribute('code')); var rc = parseInt(result.getAttribute('code'));
@ -1323,8 +1326,10 @@ function subscribeToFeed() {
} }
break; break;
case 2: case 2:
alert(__("Specified URL seems to be invalid."));
break;
case 3: case 3:
alert(__("Can't subscribe to the specified URL.")); alert(__("Specified URL doesn't seem to contain any feeds."));
break; break;
case 4: case 4:
new Ajax.Request("backend.php", { new Ajax.Request("backend.php", {
@ -1349,6 +1354,9 @@ function subscribeToFeed() {
} }
}); });
break; break;
case 5:
alert(__("Couldn't download the specified URL."));
break;
case 0: case 0:
alert(__("You are already subscribed to this feed.")); alert(__("You are already subscribed to this feed."));
break; break;

View File

@ -351,7 +351,7 @@
} }
} }
function fetch_file_contents($url, $type) { function fetch_file_contents($url, $type = false) {
if (USE_CURL_FOR_ICONS) { if (USE_CURL_FOR_ICONS) {
$ch = curl_init($url); $ch = curl_init($url);
@ -2917,12 +2917,14 @@
* 4 - URL content is HTML which contains multiple feeds. * 4 - URL content is HTML which contains multiple feeds.
* Here you should call extractfeedurls in rpc-backend * Here you should call extractfeedurls in rpc-backend
* to get all possible feeds. * to get all possible feeds.
* 5 - Couldn't download the URL content.
*/ */
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 = '') {
$url = fix_url($url); $url = fix_url($url);
if (!validate_feed_url($url)) return 2; if (!validate_feed_url($url)) return 2;
if (!fetch_file_contents($url)) return 5;
if (url_is_html($url)) { if (url_is_html($url)) {
$feedUrls = get_feeds_from_html($url); $feedUrls = get_feeds_from_html($url);