From 6eba9d0820b7ef788bf8b0ce815ff6bbc9a9bd47 Mon Sep 17 00:00:00 2001 From: Mormegil Date: Wed, 12 Jan 2022 15:53:03 +0100 Subject: [PATCH] Resolve relative URLs during feed discovery When a feed is added using the feed discovery feature, and the feed link uses a relative URL, the discovery needs to resolve the URL relative to the provided website URL. Fixes #1385 Signed-off-by: Mormegil --- lib/Service/FeedServiceV2.php | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/lib/Service/FeedServiceV2.php b/lib/Service/FeedServiceV2.php index bb1be8dcbe..2fbaefee10 100644 --- a/lib/Service/FeedServiceV2.php +++ b/lib/Service/FeedServiceV2.php @@ -16,6 +16,7 @@ use FeedIo\Explorer; use FeedIo\Reader\ReadErrorException; use HTMLPurifier; +use Net_URL2; use OCA\News\Db\FeedMapperV2; use OCA\News\Fetcher\FeedFetcher; @@ -199,7 +200,13 @@ public function create( if ($full_discover) { $feeds = $this->explorer->discover($feedUrl); if ($feeds !== []) { - $feedUrl = array_shift($feeds); + $discoveredUrl = array_shift($feeds); + $url2 = new Net_URL2($discoveredUrl); + if ($url2->isAbsolute()) { + $feedUrl = $discoveredUrl; + } else { + $feedUrl = strval((new Net_URL2($feedUrl))->resolve($discoveredUrl)); + } } }