diff --git a/Frameworks/Account/FeedFinder/HTMLFeedFinder.swift b/Frameworks/Account/FeedFinder/HTMLFeedFinder.swift index e8f242a56..39c3a095b 100644 --- a/Frameworks/Account/FeedFinder/HTMLFeedFinder.swift +++ b/Frameworks/Account/FeedFinder/HTMLFeedFinder.swift @@ -29,16 +29,14 @@ class HTMLFeedFinder { } } - if let bodyLinks = RSHTMLLinkParser.htmlLinks(with: parserData) { + let bodyLinks = RSHTMLLinkParser.htmlLinks(with: parserData) for oneBodyLink in bodyLinks { - if linkMightBeFeed(oneBodyLink) { - let normalizedURL = oneBodyLink.urlString.normalizedURL + if linkMightBeFeed(oneBodyLink), let normalizedURL = oneBodyLink.urlString?.normalizedURL { let oneFeedSpecifier = FeedSpecifier(title: oneBodyLink.text, urlString: normalizedURL, source: .HTMLLink) addFeedSpecifier(oneFeedSpecifier) } } - } } } diff --git a/Shared/Favicons/FaviconURLFinder.swift b/Shared/Favicons/FaviconURLFinder.swift index 54f38606b..cc429e4c6 100644 --- a/Shared/Favicons/FaviconURLFinder.swift +++ b/Shared/Favicons/FaviconURLFinder.swift @@ -49,20 +49,20 @@ struct FaviconURLFinder { // If the favicon has an explicit type, check that for an ignored type; otherwise, check the file extension. HTMLMetadataDownloader.downloadMetadata(for: homePageURL) { (htmlMetadata) in - let faviconURLs = htmlMetadata?.favicons.filter({ (favicon) -> Bool in + let faviconURLs = htmlMetadata?.favicons.compactMap({ (favicon) -> String? in if let type = favicon.type { if ignoredMimeTypes.contains(type) { - return false + return nil } } else { if let urlString = favicon.urlString, let url = URL(string: urlString), ignoredExtensions.contains(url.pathExtension) { - return false + return nil } } - return true - }).compactMap { $0.urlString } + return favicon.urlString + }) completion(faviconURLs) } diff --git a/Shared/Images/RSHTMLMetadata+Extension.swift b/Shared/Images/RSHTMLMetadata+Extension.swift index cf5dd8ba7..82580ab37 100644 --- a/Shared/Images/RSHTMLMetadata+Extension.swift +++ b/Shared/Images/RSHTMLMetadata+Extension.swift @@ -12,8 +12,9 @@ import RSParser extension RSHTMLMetadata { func largestOpenGraphImageURL() -> String? { + let openGraphImages = openGraphProperties.images - guard let openGraphImages = openGraphProperties?.images, !openGraphImages.isEmpty else { + guard !openGraphImages.isEmpty else { return nil } @@ -47,7 +48,9 @@ extension RSHTMLMetadata { func largestAppleTouchIcon() -> String? { - guard let icons = appleTouchIcons, !icons.isEmpty else { + let icons = appleTouchIcons + + guard !icons.isEmpty else { return nil } diff --git a/submodules/RSParser b/submodules/RSParser index 840877988..47ba87875 160000 --- a/submodules/RSParser +++ b/submodules/RSParser @@ -1 +1 @@ -Subproject commit 840877988917cf3dbc56b8a0c6e33ddd7aa66479 +Subproject commit 47ba87875fbd026dccc2c4d4382a98cb4a1f1fbc