Pick up the home page link from an Atom feed when it’s not specified as rel="alternate" — when it’s just an href. (Now we can get the favicon and feed icon properly for Allen Pike’s feed.)

This commit is contained in:
Brent Simmons
2024-10-15 18:14:06 -07:00
parent a28765abc8
commit 7b3889bdf5

View File

@@ -120,9 +120,19 @@ private extension AtomParser {
guard feed.link == nil, let currentAttributes else {
return
}
guard let link = currentAttributes[XMLString.href] else {
return
}
if let related = currentAttributes[XMLString.rel], related == XMLString.alternate {
feed.link = currentAttributes[XMLString.href]
let isRelated: Bool = {
if let related = currentAttributes[XMLString.rel], related == XMLString.alternate { // rel="alternate"
return true
}
return currentAttributes.count == 1 // Example: <link href="https://www.allenpike.com/"/>  no rel or anything
}()
if isRelated {
feed.link = link
}
}