diff --git a/apple/OmnivoreKit/Sources/Services/DataService/Queries/ArticleContentQuery.swift b/apple/OmnivoreKit/Sources/Services/DataService/Queries/ArticleContentQuery.swift index dde916be4..e167a1b6a 100644 --- a/apple/OmnivoreKit/Sources/Services/DataService/Queries/ArticleContentQuery.swift +++ b/apple/OmnivoreKit/Sources/Services/DataService/Queries/ArticleContentQuery.swift @@ -154,7 +154,7 @@ extension DataService { return } - if status == .succeeded { + if status == .succeeded || result.item.isPDF { do { try self?.persistArticleContent( item: result.item, @@ -174,7 +174,7 @@ extension DataService { let articleContent = ArticleContent( htmlContent: result.htmlContent, highlightsJSONString: result.highlights.asJSONString, - contentStatus: .make(from: result.contentStatus) + contentStatus: result.item.isPDF ? .succeeded : .make(from: result.contentStatus) ) continuation.resume(returning: articleContent) diff --git a/apple/OmnivoreKit/Sources/Services/InternalModels/InternalLinkedItem.swift b/apple/OmnivoreKit/Sources/Services/InternalModels/InternalLinkedItem.swift index 5e39aa6b9..d050c5e4f 100644 --- a/apple/OmnivoreKit/Sources/Services/InternalModels/InternalLinkedItem.swift +++ b/apple/OmnivoreKit/Sources/Services/InternalModels/InternalLinkedItem.swift @@ -23,6 +23,13 @@ struct InternalLinkedItem { let contentReader: String? var labels: [InternalLinkedItemLabel] + var isPDF: Bool { + if let contentReader = contentReader { + return contentReader == "PDF" + } + return (pageURLString ?? "").hasSuffix("pdf") + } + func asManagedObject(inContext context: NSManagedObjectContext) -> LinkedItem { let existingItem = LinkedItem.lookup(byID: id, inContext: context) let linkedItem = existingItem ?? LinkedItem(entity: LinkedItem.entity(), insertInto: context)