Commit Graph

350 Commits

Author SHA1 Message Date
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 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 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
Maurice Parker f6677367ec use refresh indicator to track all network activity. Issue #759 2019-06-16 14:48:50 -05:00
Maurice Parker 871dbbb752 moved dispatch group notify to background thread as it was deadlocked with the dispatch group wait on app exit 2019-06-12 17:28:54 -05:00
Maurice Parker 17c04b2aef Show the refresh progress bar when an OPML import starts. Issue #732 2019-06-10 16:17:54 -05:00
Maurice Parker 93fbbd4cc3 Make sure that FeedFinder and InitialDownloader are running on the main thread. 2019-06-10 08:21:03 -05:00
Maurice Parker f4e0cfaf2b Fix folder renaming issue that occurs for Feedbin when the tag doesn't exist at Feedbin. Issue #724 2019-06-07 05:03:54 -05:00
Maurice Parker eb71e88845 Resolved issue where local account feed finder could lock up the UI if an error was thrown. Issue #720 2019-06-06 19:46:42 -05:00
Maurice Parker e7ec59f31f
Merge pull request #725 from tgt/tgt/feedbin-fixes
Various Minor Feedbin Fixes
2019-06-06 15:27:06 -05:00
Maurice Parker 1cfc3bceef Fixed restore folder functionality for Feedbin. 2019-06-06 15:22:25 -05:00
Tom Grimwood-Taylor b0a24b6f17 Revert "Fix updating local feed list when no remote feeds."
cd85e52fdd
2019-06-06 14:23:06 +01:00
Tom Grimwood-Taylor 534da0bca6 Move call to sendArticleStatus to delegate. 2019-06-06 14:22:29 +01:00
Tom Grimwood-Taylor 0447694142 Fix feed selection when the max feed score is 0.
This occurs, for example, when searching for “macrumors.com” and adding
to the Feedbin account. All four feeds have a score of 0 since their
source is set as HTMLLink. This would also fix a case in which there are
two feeds: one with a negative score and one with a score of 0.

Since the method uses a Set the feed selected when there are multiple
feeds with an identical maximum score will be random.
2019-06-06 10:31:00 +01:00
Tom Grimwood-Taylor ac9057299a Remove edited name when remote feed name changes. 2019-06-06 10:31:00 +01:00
Tom Grimwood-Taylor f3505e4537 Fix posting name notifications when name changes. 2019-06-06 10:31:00 +01:00
Tom Grimwood-Taylor b4d7042a7b Ensure status changes are sent before refresh.
When the refresh button was manually clicked a full refresh would occur,
but locally changed statuses wouldn't be sent. This meant the statuses
of items in NetNewsWire would revert to their remote values until an
automatic status sync was triggered.
2019-06-06 10:31:00 +01:00
Tom Grimwood-Taylor 3c1b84dd73 Fix a Feedbin subscriptionID going out of sync.
If, for example, a user deleted a feed and recreated it on the server
without a sync in between, the subscription ID for the feed would update
on the server, but remain unchanged locally. If the user then wanted to
delete or rename the feed they'd get a 404 error.
2019-06-06 10:31:00 +01:00
Tom Grimwood-Taylor cd85e52fdd Fix updating local feed list when no remote feeds.
When there were no remote feeds the logic to remove local
feeds was skipped.
2019-06-03 17:09:17 +01:00
Maurice Parker 2d91e64148 Provide a better error message when encountering feed not found and already subscribed errors 2019-05-31 17:24:43 -05:00
Maurice Parker 8e0c857810 Update the extract page number function to make it more readable 2019-05-31 13:38:33 -05:00
Maurice Parker 88b2775076 Make sure that an account doesn't try persist to the disk in the time that it is logically deleted and when it is actually deallocated 2019-05-31 08:05:26 -05:00
Maurice Parker fec3c69f4a Remove Feedbin api workaround for unpropagated mode=extended parameter 2019-05-31 07:54:12 -05:00
Maurice Parker 10296a1b74 Clear the feed metadata on Feedbin feed delete 2019-05-31 07:47:05 -05:00
Maurice Parker d602f894f6 Fix link parsing bug that causes crash 2019-05-31 07:22:28 -05:00
Maurice Parker 0ddb47aa32 Refactor feed finder to make it threadsafe 2019-05-30 17:35:08 -05:00