From 4351a3713129cf31c83d32ec92d1eae156afc981 Mon Sep 17 00:00:00 2001 From: Charlotte Van Petegem Date: Wed, 28 Jun 2023 17:35:06 +0200 Subject: [PATCH] Try to find an HTML-type link first when parsing atom feeds (#784) Signed-off-by: Charlotte Van Petegem Co-authored-by: Will Hunt --- changelog.d/784.bugfix | 1 + src/feeds/parser.rs | 7 ++++++- 2 files changed, 7 insertions(+), 1 deletion(-) create mode 100644 changelog.d/784.bugfix diff --git a/changelog.d/784.bugfix b/changelog.d/784.bugfix new file mode 100644 index 00000000..63f29a9f --- /dev/null +++ b/changelog.d/784.bugfix @@ -0,0 +1 @@ +Feeds now tries to find an HTML-type link before falling back to the first link when parsing atom feeds diff --git a/src/feeds/parser.rs b/src/feeds/parser.rs index 623df0c6..3d33a74e 100644 --- a/src/feeds/parser.rs +++ b/src/feeds/parser.rs @@ -102,7 +102,12 @@ fn parse_feed_to_js_result(feed: &Feed) -> JsRssChannel { .iter() .map(|item| FeedItem { title: Some(item.title().value.clone()), - link: item.links().first().map(|f| f.href.clone()), + link: item + .links() + .iter() + .find(|l| l.mime_type.as_ref().map_or(false, |t| t == "text/html")) + .or_else(|| item.links().first()) + .map(|f| f.href.clone()), id: Some(item.id.clone()), // No equivalent id_is_permalink: false,