Commit Graph

730 Commits

Author SHA1 Message Date
Brent Simmons 9dc3ed03c7 Adopt DatabaseQueue. 2019-11-29 21:49:44 -08:00
Brent Simmons 6fdaf773cd Add SyncDatabase to referenced frameworks in project settings. 2019-11-29 21:49:24 -08:00
Maurice Parker e2434e620c Get extended subscription information from Feedbin. Issue #917 2019-11-07 19:07:10 -06:00
Brent Simmons 3354d5a569 Delete articles and statuses from feeds no longer subscribed-to. At startup. Fix #899. 2019-10-24 22:28:26 -07:00
Brent Simmons cd4135bf9a Remove old, comment-out update method in ArticlesTable. 2019-10-24 21:48:24 -07:00
Brent Simmons fcb0f0c439 Remove a no-longer-used Account.update function — we have a new one that’s way faster. Also: assert that we’re in the main thread in that new update function. 2019-10-13 19:23:36 -07:00
Brent Simmons 1d0cacd5fc When syncing, update the database by articleIDs rather than by feeds — this means *far* fewer fetches and much less data pulled from the database. It should help app responsiveness dramatically during sync, and especially during an initial sync. 2019-10-13 19:02:56 -07:00
Brent Simmons 099172d9d2 Empty the database articles cache when NetNewsWire moves to the background. This helps prevent the cache from growing forever. 2019-10-12 15:06:21 -07:00
Brent Simmons 50276233d1 Add feeds all in one go when processing Feedbin subscriptions. This is a performance enhancement. 2019-10-06 12:37:46 -07:00
Brent Simmons 37c9818cad Create and use a cache for DatabaseArticle — this will make fetches faster, since we can skip pulling the same data from the database over and over. Articles in the cache are removed when articles are updated, so the cache is never stale. 2019-09-28 13:51:33 -07:00
Brent Simmons 2b491217f3 Create statusWithRow(_ row: FMResultSet, articleID: String) — it allows us to avoid pulling articleID from the row twice every time we’re creating a DatabaseArticle. 2019-09-28 12:18:08 -07:00
Brent Simmons d7b45a1413 Change parseDatePublished() to a lazy var parsedDatePublished — it appeared that it was getting called more than once, and date parsing is expensive. Also: use RSDateWithString rather than an NSDateFormatter, since NSDateFormatter is so massively slow. 2019-09-27 23:01:31 -07:00
Maurice Parker 90834fe6b1 Delete conditional get information for taggings if it looks like Feedbin may have renamed a folder. Issue #1050 2019-09-26 11:35:07 -05:00
Maurice Parker c4ee1edb69 Add externalID to Folder and persist it to OPML file. Issue #1060 2019-09-25 17:01:09 -05:00
Maurice Parker 08a8b8f6c2 Update to Swift 5.1 2019-09-25 15:32:30 -05:00
Maurice Parker ea13f911f1 Change to ignore unsupported accounts instead of crashing 2019-09-20 11:41:28 -05:00
Brent Simmons 41c82eca15 Rename existingFeed(with:) to existingFeed(withFeedID:) to make it more clear. Make account.idToFeedDictionary private — callers should use existingFeed(withFeedID:). 2019-09-08 21:44:05 -07:00
Brent Simmons f5f306f60f Add comments to feed.iconURL and feed.faviconURL, explaining that these are set only if that info was part of the feed (which is a JSON-Feed-only feature). 2019-09-08 21:17:57 -07:00
Maurice Parker 7ca2226669 Move credentials classes to the Account framework in NetNewsWire 2019-09-08 04:28:43 -05:00
Maurice Parker e31dec7c44 Call completion handler when there are no feeds associated with the folder being removed. Issue #938 2019-09-01 10:49:35 -05:00
Maurice Parker a69be4117a Retrieve statuses before articles during sync process and default starred articles to read if there isn't an unread status Issue #868 2019-08-30 10:39:52 -05:00
Brent Simmons bffda93700 Give has(feed) a default implementation in Container.swift. 2019-08-21 21:07:40 -07:00
Brent Simmons fe2d329301 Make has(feed) a Container protocol method. 2019-08-21 21:05:47 -07:00
Brent Simmons f513741ddb Start work on filtering timeline so that articles from deleted feeds never show up. 2019-08-21 13:23:46 -07:00
Brent Simmons f8c8fc5f34 Fix crashing bug with marking all as read via contextual menu. Implement feed.fetchUnreadArticles. 2019-08-12 09:43:29 -07:00
Brent Simmons f824be2f16 Change Today feed from 28 hours to 24 hours, since 24 hours is less weird and more easily explainable. 2019-07-27 12:30:13 -07:00
Brent Simmons 9edc726065 Make the Today smart feed show articles from the last 28 hours, so it doesn’t surprise people by emptying out at midnight. 2019-07-24 09:27:03 -07:00
Maurice Parker 4fc1998cf3 Make Account and AccountDelegate interfaces more consistent by requiring the container parameter on removeFeed. Resolves #802 2019-07-17 15:41:21 -05:00
Brent Simmons 055e0f09ad Update code formatting in Account. 2019-07-08 23:06:40 -07:00
Brent Simmons 1e998543a5 Use right single curly quote instead of foot mark in error messages. 2019-07-08 22:59:29 -07:00
Brent Simmons 21faa0ddc0 Update code formatting in some files in Account.framework. 2019-07-08 22:58:19 -07:00
Brent Simmons 1a03bcf03c Make code formatting match current style. 2019-07-08 22:22:31 -07:00
Brent Simmons cc458ecab7 Make code formatting match current style. 2019-07-08 22:20:57 -07:00
Brent Simmons 5d3cd8889f Make optionalIntForColumn an extension method on FMResultSet. 2019-07-08 22:20:46 -07:00
Brent Simmons c6907b73f9 Make code formatting in AttachmentsTable match current style. 2019-07-08 22:13:30 -07:00
Brent Simmons bed1620ae4 Make code formatting in AuthorsTable match current style. 2019-07-08 22:11:24 -07:00
Brent Simmons 1d2ea8a4af Make code formatting in StatusesTable match ourrent style. 2019-07-08 22:09:28 -07:00
Brent Simmons 8422122816 Delete a few unused lines of code. 2019-07-08 21:47:11 -07:00
Brent Simmons 72fa80956a Make code formatting in ArticlesTable match current style. Also: normalize MARK comments. 2019-07-08 21:35:29 -07:00
Brent Simmons 011054b345 Remove some unused code. 2019-07-08 21:22:06 -07:00
Brent Simmons 33ff7c94c3 Make articlesTable.ensureStatuses non-blocking. 2019-07-08 21:09:54 -07:00
Brent Simmons 3d0d6fa8a9 Mark function as having @discardableResult, because we don’t always care about the result. 2019-07-08 21:09:16 -07:00
Brent Simmons 36791fc3ad Make fetching article IDs async — use a callback rather than a fetch sync and a returned value. 2019-07-07 15:05:36 -07:00
Brent Simmons 597c57e61c Remove references to DispatchQueue.main.sync and assert that we’re on the main thread. 2019-07-07 14:24:50 -07:00
Brent Simmons 1e82ad4845 Note that AccountManager is main thread only. Add an assert in a strategic location (activeAccounts property). 2019-07-07 14:05:27 -07:00
Brent Simmons 590961fb2c Add comment that Account is main-thread-only, and assert that we’re on the main thread in flattenedFeeds(). 2019-07-07 14:01:44 -07:00
Brent Simmons a5bf148d82 Make Transport callbacks run on the main thread, which is consistent with NetNewsWire’s general pattern for these types of callbacks. This helps avoid situations where we touch model objects (which are main-thread-only) on a background thread. 2019-07-07 13:42:24 -07:00
Brent Simmons a68ca58242 Remove a precondition that is no longer valid when doing async fetches. 2019-07-06 11:50:22 -07:00
Brent Simmons 7a204ad6ed Run database fetches async, in the timeline, when appropriate — for instance, when All Unread is selected and new articles come in. 2019-07-05 20:06:31 -07:00
Maurice Parker 47a7fa420d Fixed error caused by updating to the latest from RSWeb 2019-06-16 14:55:48 -05:00