From 4363e13c342e4e47e14ce3ca74fbc707dc1f891d Mon Sep 17 00:00:00 2001 From: Alexandre Alapetite Date: Mon, 21 Mar 2022 12:51:41 +0100 Subject: [PATCH] Set feed error state when XPath does not match (#4275) Gives the ability to filter HTML+XPath feeds that are not working --- app/Controllers/feedController.php | 3 +++ lib/lib_rss.php | 1 + 2 files changed, 4 insertions(+) diff --git a/app/Controllers/feedController.php b/app/Controllers/feedController.php index dabfb348f..0d1cd3230 100755 --- a/app/Controllers/feedController.php +++ b/app/Controllers/feedController.php @@ -375,6 +375,9 @@ class FreshRSS_feed_Controller extends FreshRSS_ActionController { $simplePie = $simplePiePush; //Used by WebSub } elseif ($feed->kind() === FreshRSS_Feed::KIND_HTML_XPATH) { $simplePie = $feed->loadHtmlXpath(false, $isNewFeed); + if ($simplePie == null) { + throw new FreshRSS_Feed_Exception('HTML+XPath Web scraping failed for [' . $feed->url(false) . ']'); + } } else { $simplePie = $feed->load(false, $isNewFeed); } diff --git a/lib/lib_rss.php b/lib/lib_rss.php index 51578da0b..9f931a0ac 100644 --- a/lib/lib_rss.php +++ b/lib/lib_rss.php @@ -424,6 +424,7 @@ function getHtml(string $url, array $attributes = []): string { if ($c_status != 200 || $c_error != '' || $html === false) { Minz_Log::warning('Error fetching content: HTTP code ' . $c_status . ': ' . $c_error . ' ' . $url); + // TODO: Implement HTTP 410 Gone } if ($html == false) { $html = '';