Implement retention policy for feed-based accounts (local, iCloud).

This commit is contained in:
Brent Simmons
2020-03-29 23:20:01 -07:00
parent 85b24ff92d
commit cf98ff49ea
4 changed files with 147 additions and 40 deletions

View File

@@ -190,8 +190,9 @@ public final class ArticlesDatabase {
// MARK: - Saving and Updating Articles
/// Update articles and save new ones  for feed-based systems (local and iCloud).
public func update(with feed: ParsedFeed, completion: @escaping UpdateArticlesCompletionBlock) {
public func update(with parsedItems: Set<ParsedItem>, webFeedID: String, completion: @escaping UpdateArticlesCompletionBlock) {
precondition(retentionStyle == .feedBased)
articlesTable.update(parsedItems, webFeedID, completion)
}
/// Update articles and save new ones for sync systems (Feedbin, Feedly, etc.).
@@ -268,7 +269,9 @@ public final class ArticlesDatabase {
/// Calls the various clean-up functions.
public func cleanupDatabaseAtStartup(subscribedToWebFeedIDs: Set<String>) {
articlesTable.deleteOldArticles()
if retentionStyle == .syncSystem {
articlesTable.deleteOldArticles()
}
articlesTable.deleteArticlesNotInSubscribedToFeedIDs(subscribedToWebFeedIDs)
}
}