From ba2103afa91f7f4dd0f130f9b768486f7a77ac40 Mon Sep 17 00:00:00 2001 From: Bruno Bernardino Date: Sat, 6 Sep 2025 20:40:11 +0100 Subject: [PATCH] Fix non-absolute URLs in feed articles --- docker-compose.yml | 2 +- lib/models/news.ts | 8 +++++++- 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/docker-compose.yml b/docker-compose.yml index 10a68da..afb9756 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -1,6 +1,6 @@ services: website: - image: ghcr.io/bewcloud/bewcloud:v2.5.2 + image: ghcr.io/bewcloud/bewcloud:v2.5.3 restart: always ports: - 127.0.0.1:8000:8000 diff --git a/lib/models/news.ts b/lib/models/news.ts index 70a1d74..3409c29 100644 --- a/lib/models/news.ts +++ b/lib/models/news.ts @@ -132,9 +132,15 @@ export class FeedModel { continue; } - const url = (feedArticle as JsonFeedArticle).url || getArticleUrl((feedArticle as FeedArticle).links) || + let url = (feedArticle as JsonFeedArticle).url || getArticleUrl((feedArticle as FeedArticle).links) || feedArticle.id; + // Fix relative URLs in the feeds + if (url.startsWith('/')) { + const feedUrl = new URL(newsFeed.feed_url); + url = `${feedUrl.origin}${url}`; + } + const articleIsoDate = (feedArticle as JsonFeedArticle).date_published || (feedArticle as FeedArticle).published?.toISOString() || (feedArticle as JsonFeedArticle).date_modified || (feedArticle as FeedArticle).updated?.toISOString();