summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGravatar Alexandre Alapetite <alexandre@alapetite.fr> 2022-03-21 12:51:41 +0100
committerGravatar GitHub <noreply@github.com> 2022-03-21 12:51:41 +0100
commit4363e13c342e4e47e14ce3ca74fbc707dc1f891d (patch)
tree47b6d2fdebbb68fbe55d179ee4ccce9de71cb132
parent6f018cc674fe049ba49ebf4d89ab386bc29a9327 (diff)
Set feed error state when XPath does not match (#4275)
Gives the ability to filter HTML+XPath feeds that are not working
-rwxr-xr-xapp/Controllers/feedController.php3
-rw-r--r--lib/lib_rss.php1
2 files changed, 4 insertions, 0 deletions
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 = '';