Maurice Parker
10a87ccfb6
Refactored starred article passing to make it more reliable
2020-04-03 13:26:08 -05:00
Maurice Parker
f143248e08
Enable passing starred articles between devices.
2020-04-03 11:25:01 -05:00
Maurice Parker
d6b094b37e
Save starred articles to iCloud.
2020-04-02 18:06:47 -05:00
Maurice Parker
f97194b9be
Removed long running operations support as I don't think we need it.
2020-04-02 14:13:57 -05:00
Maurice Parker
ef6a79489a
Add missing completion block calls.
2020-04-02 12:25:23 -05:00
Maurice Parker
2924c0e6cc
Rework download progress so that the delegate always manages it to make for smoother progress bar progressions.
2020-04-02 12:00:10 -05:00
Maurice Parker
40ea5243c6
Removed notification we no longer needed to use to refresh the Feeds and Sidebar.
2020-04-01 20:31:32 -05:00
Maurice Parker
ea78b5683d
Fix background notification processing of CloudKit changes.
2020-04-01 20:21:14 -05:00
Maurice Parker
850d6b5623
Format code fix.
2020-04-01 17:15:00 -05:00
Maurice Parker
def48546a3
Change how initial refresh is triggered.
2020-04-01 16:45:29 -05:00
Maurice Parker
b3cf7ccdb7
Remove batch update blocks that were causing more harm than good.
2020-04-01 15:39:29 -05:00
Maurice Parker
39aecd84fe
Fixed chunked record handling.
2020-04-01 15:39:07 -05:00
Maurice Parker
7e8892cda5
Beef up error handling for fetches.
2020-04-01 14:55:40 -05:00
Maurice Parker
9ffaa41d35
Add missing post sync database updates.
2020-04-01 14:55:22 -05:00
Maurice Parker
694be77e96
Add CloudKit status syncing
2020-04-01 14:10:07 -05:00
Maurice Parker
1ab21bd3e3
Added batch update capabilities.
2020-04-01 12:22:59 -05:00
Maurice Parker
44231937cd
Add send statuses to CloudKit.
2020-04-01 11:46:37 -05:00
Maurice Parker
9a1b7f5225
Update precondition to make sure iCloud doesn't call the wrong update method.
2020-04-01 09:19:51 -05:00
Maurice Parker
9e2ba8a36b
Delete dead code.
2020-04-01 08:00:24 -05:00
Maurice Parker
0ce1bf5ebc
Added sync database integration
2020-03-31 20:56:34 -05:00
Maurice Parker
c3b5d337c5
Change to use 0 and 1 for boolean.
2020-03-31 20:42:39 -05:00
Maurice Parker
3f82a28d21
Add import OPML for CloudKit.
2020-03-31 18:10:35 -05:00
Maurice Parker
0cafee7f59
Renamed old name left over from refactoring.
2020-03-31 16:47:02 -05:00
Maurice Parker
cdde8e4b09
Refactored the OPML load code so that the normalization step is separate from the add step.
2020-03-31 15:21:53 -05:00
Maurice Parker
31e06cd24a
Add batch update block to fetch to prevent the Feeds list from dancing around.
2020-03-31 11:18:52 -05:00
Maurice Parker
1be5dc8a54
Implemented feed and folder restore so that undo works.
2020-03-31 11:07:54 -05:00
Maurice Parker
218df326f4
Fix issue where out of order records was dropping web feeds.
2020-03-31 10:32:04 -05:00
Maurice Parker
90376dac03
Implement add, move, delete folder operations for feeds.
2020-03-31 03:30:53 -05:00
Maurice Parker
df1faa368f
Refactored add feed code to be more reliable.
2020-03-31 02:20:47 -05:00
Maurice Parker
203b83d64d
Enable adding feeds to folders.
2020-03-30 21:11:57 -05:00
Maurice Parker
6d3e6914df
Fix account container lookup so that it doesn't keep creating records.
2020-03-30 18:14:07 -05:00
Maurice Parker
1ee3c3d85a
Made sure the special account container didn't get created locally.
2020-03-30 18:03:56 -05:00
Maurice Parker
766eb507bf
Add container handling code
2020-03-30 15:15:45 -05:00
Maurice Parker
53e947ee4c
Rename addFolder to createFolder to be more consistent.
2020-03-30 13:35:02 -05:00
Maurice Parker
f68d523a15
Merge branch 'ios-release'
2020-03-30 11:50:58 -05:00
Maurice Parker
187121298e
Added support for CloudKit push notifications (subscriptions).
2020-03-30 02:48:25 -05:00
Brent Simmons
cf98ff49ea
Implement retention policy for feed-based accounts (local, iCloud).
2020-03-29 23:20:01 -07:00
Brent Simmons
85b24ff92d
Add parentheses in the right places to make Xcode 11.4 happy with our tuples.
2020-03-29 18:53:15 -07:00
Brent Simmons
2c4ee99dc2
Create and use ArticlesDatabase.RetentionStyle enum.
2020-03-29 18:51:03 -07:00
Maurice Parker
e2d8db6f26
Added feed rename sync to iCloud.
2020-03-29 17:53:11 -05:00
Maurice Parker
4f425c9c86
Implement web feed sync between devices.
2020-03-29 17:12:34 -05:00
Maurice Parker
c0e1fbfff3
Add external id lookups for folders and web feeds.
2020-03-29 12:07:54 -05:00
Maurice Parker
2afdd26c9d
Change function names using the find suffix to use the existing suffix to match precedent.
2020-03-29 12:00:02 -05:00
Maurice Parker
3b31f2562d
Stub out fetching feed changes.
2020-03-29 11:53:52 -05:00
Maurice Parker
573cee0fd6
Added delete feed functionality.
2020-03-29 08:52:59 -05:00
Maurice Parker
6ce82fc28b
Implement CloudKit feed add.
2020-03-29 03:43:20 -05:00
Maurice Parker
f59d6f712f
Simplify record handling.
2020-03-28 08:53:03 -05:00
Maurice Parker
fe2297213d
Add automatic zone creation.
2020-03-28 08:30:25 -05:00
Maurice Parker
f288e3d5d8
More infrastructure work on CloudKit.
2020-03-27 13:59:42 -05:00
Maurice Parker
d0680bcc73
Merge branch 'ios-release'
2020-03-24 12:21:32 -05:00
Brent Simmons
fb4f72ad18
Save articles from multiple web feeds at once — rather than doing it feed-by-feed — when syncing. (This makes syncing faster.) Fix #1794 .
2020-03-22 19:25:53 -07:00
Maurice Parker
8105756ccb
Add some work in progress for CloudKit syncing
2020-03-22 16:35:03 -05:00
Anh Do
bdbeced5d2
Initial feed download now retrieves entries in the last 90 days
2020-03-22 01:11:00 -04:00
Anh Do
cfaacd0ada
Fix starred story hashes being parsed incorrectly
2020-03-22 00:47:33 -04:00
Anh Do
59f3fb4b3d
Handle account-level folder when syncing
2020-03-22 00:47:33 -04:00
Anh Do
f0fe308c7b
Update last article fetch time
2020-03-22 00:47:33 -04:00
Anh Do
a784b11d1c
Fix feeds being returned without corresponding folder
2020-03-22 00:47:33 -04:00
Anh Do
1e5033febe
Restore feed and folder
2020-03-22 00:47:32 -04:00
Anh Do
1e66860f34
Move feed
2020-03-22 00:47:32 -04:00
Anh Do
fe7cbe3bd3
Fix feed deletion in folder triggering unexpected deletes
2020-03-22 00:47:32 -04:00
Anh Do
a9615560ae
Fix feed not showing up at account-level if it's also in another folder
2020-03-22 00:47:32 -04:00
Anh Do
51a4a2b3c8
Rename subscriptionID to externalID
2020-03-22 00:47:32 -04:00
Anh Do
20ff053335
Rename, delete web feed, fix adding feed directly under account not working
2020-03-22 00:47:31 -04:00
Anh Do
70302a425c
Refactoring, fix folder changes not working, add new web feed
2020-03-22 00:47:31 -04:00
Anh Do
ec855364bc
Remove feeds in folder
2020-03-22 00:47:31 -04:00
Anh Do
e6659eea10
Rename and remove folder
2020-03-22 00:47:31 -04:00
Anh Do
494ce5bab9
Add folder
2020-03-22 00:47:31 -04:00
Anh Do
08339606e9
Use secure version of story images
2020-03-22 00:47:30 -04:00
Anh Do
fb07cfe187
Handle refresh progress
2020-03-22 00:47:30 -04:00
Anh Do
0479bbd9f5
Parse story image and tags
2020-03-22 00:47:30 -04:00
Anh Do
1d3073c593
Add missing story fetching
2020-03-22 00:47:30 -04:00
Anh Do
bde6a607ba
Fix starred story parsing using incorrect JSON field
2020-03-22 00:47:30 -04:00
Anh Do
b7e7e17656
Update unread/starred status
2020-03-22 00:47:29 -04:00
Anh Do
b8c7e8c1c6
Fix typo
2020-03-22 00:47:29 -04:00
Anh Do
e1d5288d3d
Implement status change
2020-03-22 00:47:29 -04:00
Anh Do
8f64f7230d
Add network suspension support
2020-03-22 00:47:29 -04:00
Anh Do
bf1a732e8f
Add missing story fetching handler
2020-03-22 00:47:29 -04:00
Anh Do
299619703c
Ignore "everything" folder
2020-03-22 00:47:29 -04:00
Anh Do
a913b65700
Fix failing login when credentials include &=
2020-03-22 00:47:28 -04:00
Anh Do
7453e397d5
Read published date from timestamp directly
2020-03-22 00:47:28 -04:00
Anh Do
6b38c07654
Put feeds in folders (code taken from Feedbin)
2020-03-22 00:47:28 -04:00
Anh Do
8e99f8deea
Display flat feed list
2020-03-22 00:47:28 -04:00
Anh Do
f4a0c56a54
Use NewsBlur terminologies in models (Feed, Story)
2020-03-22 00:47:28 -04:00
Anh Do
175cd0e798
Parse articles from story river
2020-03-22 00:47:27 -04:00
Anh Do
d37f70d2dd
Add unread story hashes query
2020-03-22 00:47:27 -04:00
Anh Do
9727219b09
Add feed list query
2020-03-22 00:47:27 -04:00
Anh Do
b7fe991b7b
Retrieve session id for later requests
2020-03-22 00:47:27 -04:00
Anh Do
034aabbfff
Add login/logout support
2020-03-22 00:47:26 -04:00
Maurice Parker
f2d9552c85
Renamed subscriptionID to externalD on WebFeed so that it matches what we did with Folder.
2020-03-21 11:33:13 -05:00
Maurice Parker
0d56226146
Fix delegate name.
2020-03-20 17:48:57 -05:00
Maurice Parker
e3d46960fd
Add CloudKit syncing add account UI.
2020-03-18 15:48:44 -05:00
Maurice Parker
5b5eaf6bb7
Merge branch 'ios-release'
2020-03-14 17:13:25 -05:00
Nate Weaver
1a930c4407
Simplify .utf8
2020-03-14 12:09:00 -05:00
Nate Weaver
6ad6fe46ad
Make sure POST body is properly URL-encoded
2020-03-14 12:09:00 -05:00
Maurice Parker
8384725b01
Revert "Make sure POST body is properly URL-encoded"
2020-03-14 02:48:37 -05:00
Nate Weaver
aed6858043
Simplify .utf8
2020-03-13 22:16:24 -05:00
Nate Weaver
3af70f5c7c
Make sure POST body is properly URL-encoded
2020-03-13 22:12:36 -05:00
Maurice Parker
cc0fd50ea2
Make podcast URL's have a lower priority than other URL's. Issue #1897
2020-03-13 12:57:43 -05:00
Maurice Parker
fe31ca8076
Normalize the URL if it was found in the HTML metadata. Issue #1896
2020-03-13 12:15:35 -05:00
Maurice Parker
229aada857
Normalize the URL if it was found in the HTML metadata.
2020-03-13 12:11:38 -05:00
Maurice Parker
7d8feba24b
Remove file coordinator usage from account files. Issue #1821
2020-03-03 11:39:04 -08:00
Maurice Parker
0e72811429
Implement mark as unread window for accounts that need it. Issue #1407
2020-02-18 13:49:29 -08:00
Maurice Parker
2ae021960b
Move account files to the documents directory and out of the shared container. Issue #1784
2020-02-12 16:21:48 -08:00
Nate Weaver
4ac8107f27
Don't unwrap now-non-optionals, and unwrap now-explicit optionals
2020-02-08 18:22:35 -06:00
Brent Simmons
c679d92e09
Make the Feedly tests build again — fix references to addOperation.
2020-02-05 22:37:43 -08:00
Brent Simmons
01fc60916e
Move the operation queue from Account to ArticlesDatabase, which is the rightful owner.
2020-02-05 22:17:32 -08:00
Brent Simmons
d40eaed1f5
Begin moving the MainThreadOperationQueue from Account to ArticlesDatabase.
2020-02-05 21:23:23 -08:00
Brent Simmons
2d33de1205
Fix references to addOperation, which is now just add.
2020-02-05 21:18:29 -08:00
Maurice Parker
2017a2138f
Change to only send the unread counts init notification once during program load. Issue #1772
2020-02-03 10:28:34 -08:00
Brent Simmons
0b2ec6473a
Call the correct fetchUnreadCounts methd.
2020-02-01 15:16:24 -08:00
Brent Simmons
3f4c84e442
Use the new FetchUnreadCountsForFeedsOperation.
2020-02-01 15:01:47 -08:00
Brent Simmons
30cf8c6a08
Add, as a micro-optimization, a custom hash function for FeedIdentifier.
2020-02-01 15:00:36 -08:00
Kiel Gillard
b87882a919
Log failures attempting to add new feeds to a Feedly account to help debug #1691
2020-01-31 17:00:30 +11:00
Kiel Gillard
e5e7163f8e
Improve the test coverage and add some documentation.
2020-01-31 07:55:50 +11:00
Kiel Gillard
a339b05bf8
Santizes right to left div elements from Feedly content.
2020-01-31 07:55:50 +11:00
Brent Simmons
dc4850b777
Merge branch 'ios-candidate' of https://github.com/Ranchero-Software/NetNewsWire into ios-candidate
2020-01-29 23:09:44 -08:00
Brent Simmons
35adaa7a8c
Fetch the unread count for just one feed when that’s all that’s needed. Helps performance.
2020-01-29 23:09:38 -08:00
Maurice Parker
b53cbfcf2c
Make sure completion handler is called when there are no active accounts. Issue #1727
2020-01-28 16:24:35 -07:00
Brent Simmons
dc9243dcc7
Make fetching all unread counts an operation. Cancel it when the account is suspending. Turning things like this into operations goes to fixing the dreaded 0xdead10cc crashes.
2020-01-27 23:00:48 -08:00
Nate Weaver
b9bba7b614
Update RSWeb
2020-01-27 23:02:01 -06:00
Maurice Parker
118ecd01b0
Fix option set bug in AccountBehaviors.
2020-01-27 20:05:07 -07:00
Brent Simmons
61ccf6fa1f
Replace use of Dictionary(uniqueKeysWithValues) with a separate function that can handle duplicate keys without crashing. Fix #1671 .
2020-01-21 22:03:33 -08:00
Kiel Gillard
fb69a2bc54
Fix the logging of Feedly errors. #1628 .
2020-01-21 18:31:41 +11:00
Brent Simmons
bca3c4216c
Merge branch 'ios-candidate' of https://github.com/Ranchero-Software/NetNewsWire into ios-candidate
2020-01-19 22:25:13 -08:00
Brent Simmons
70b57b9d4d
Disable files with failing Feedly tests. This is meant to be temporary.
2020-01-19 22:25:06 -08:00
Brent Simmons
f9f4d70868
Make Feedly tests build again.
2020-01-19 22:19:54 -08:00
Maurice Parker
531c40a059
Escape special XML characters for external folder id. Issue #1659
2020-01-19 22:52:45 -07:00
Brent Simmons
f76385ce64
Merge branch 'ios-candidate' of https://github.com/Ranchero-Software/NetNewsWire into ios-candidate
2020-01-19 16:55:46 -08:00
Brent Simmons
a2bcdb1cfd
Fix the progress indicator bug I had introduced in working on FeedlyOperation. Make sure FeedlyOperation calls downloadProgress.completeTask(), and make sure that all paths lead there.
2020-01-19 16:55:39 -08:00
Maurice Parker
53ba0bc9ac
Fix so that Feedbin correctly stores the perma link in the correct field.
2020-01-19 17:15:21 -07:00
Brent Simmons
6181f416a4
Revise FeedlyOperation to work with MainThreadOperation properly. We’re still using inheritance — FeedlyOperation is a base class. I tried and failed to come up with a better solution. Everything other solution resulted in a lot of boilerplate code being replicated.
2020-01-19 14:19:06 -08:00
Nate Weaver
7ee1f99962
Updates for Data+RSCore changes
2020-01-18 19:18:58 -06:00
Nate Weaver
b35215d03b
Update for pending RSCore String updates
2020-01-17 13:45:38 -06:00
Kiel Gillard
912a3acb35
Subscribing to a Feedly feed only downloads the first page worth of content, not each and every page. Maybe related to #1408 .
2020-01-17 17:16:52 +11:00
Brent Simmons
e2e9a66bc5
Merge pull request #1635 from kielgillard/ios-candidate
...
Let Feedly users add to the uncategorized collection/folder.
2020-01-16 22:01:47 -08:00
Kiel Gillard
02cfc384c4
Makes the Feedly models immutable because they are used to represent API responses only and it improves a developer's ability to reason about how they're used in the codebase. Fixes #1629 .
2020-01-17 16:47:21 +11:00
Kiel Gillard
c18575ea85
Let Feedly users add to the uncategorized collection/folder.
2020-01-17 15:25:57 +11:00
Maurice Parker
fb8d77fff1
Merge pull request #1631 from kielgillard/feedly-fix-tests-post-operations-surgery
...
Fix test failures by cancelling operations with the queue.
2020-01-16 13:45:36 -08:00
Kiel Gillard
f14ba07740
Fix test failures by cancelling operations with the queue. It seems operations no longer can cancel themselves.
2020-01-17 08:27:20 +11:00
Maurice Parker
4f36ec3b11
Add Update Credetials button to the error dialog when a Feedbin credentials error happens. Issue #1441
2020-01-16 13:50:30 -07:00
Maurice Parker
61b788a1de
Provide user friendly account error for 403 status code (FORBIDDEN)
2020-01-16 12:17:47 -07:00
Brent Simmons
80542bee12
Add missing calls to super.run() in FeedlyOperation subclasses.
2020-01-15 22:51:00 -08:00
Brent Simmons
57af7526da
Revise Feedly tests to use MainThreadOperationQueue; get them building again. They don’t pass, but at least they build.
2020-01-15 22:10:06 -08:00
Brent Simmons
39db00c022
Use MainThreadOperationQueue with Feedly syncing.
2020-01-15 21:30:37 -08:00
Nate Weaver
6eac3781ba
Update to latest RSCore
...
Update use of OMPLString().
2020-01-13 22:20:57 -06:00
Kiel Gillard
325f220181
Ignore the remote article status if the sync database contains a pending (and therefore more recent) status. Fixes #1516 .
2020-01-13 18:04:58 +11:00
Nate Weaver
e94985e7f2
Update to latest RSCore
2020-01-12 18:26:41 -06:00
Nate Weaver
42b4261793
Treat empty URLs as nil
...
Fixes #1612 .
2020-01-12 03:29:56 -06:00
Kiel Gillard
745b5d8cb8
Fetch article contents from Feedly by ids rather than paging through streams up until the last successful sync date. Issues #1453 #1398 #1408 #1429
2020-01-11 10:45:45 +11:00
Brent Simmons
4ab5c25844
Add createStatusesIfNeeded API to Account, to use with syncing. (Needed for Feedly syncing, and could very well be needed for other systems too.)
2020-01-09 22:27:29 -08:00
Maurice Parker
7824939c30
Make OPML generate in a consistent order when the Web Feed name is the same. Issue #1545
2020-01-06 13:58:51 -07:00
Kiel Gillard
6922b6ddec
Use string-based key paths instead of Swift key paths for FeedlyOperation. #1481
2020-01-06 08:59:08 +11:00
Maurice Parker
c3fbf88fbb
Add check so that we don't update article statuses for articles that we have pending statuses to send. Issue #1515
2020-01-02 18:21:18 -07:00
Brent Simmons
e773c11571
Merge pull request #1509 from timothyekl/account-test-api-updates
...
Update Account tests for new async API
2020-01-02 16:12:17 -08:00
Tim Ekl
44e920b18b
Don't explicitly name error variables
...
Following the resolution of #1512 , start using the implicit `error`
variable inside `catch` blocks instead of explicitly declaring `e`
everywhere.
2020-01-02 13:31:06 -08:00
Kiel Gillard
2ee50054dc
Indicate FeedlyOperations are asynchronous.
2020-01-02 10:00:09 +11:00
Kiel Gillard
f455bcec16
Models the feed website url of feedly articles as an optional since it seems the Feedly API will not always provide one. Issue #1449 .
2020-01-02 09:34:24 +11:00
Tim Ekl
5ac18b14a7
Add missing expectations to send statuses tests
...
f82be27666
flipped around calls to `selectPendingCount(_:)` so that it
respected the new async nature of the method; however, it neglected to
add enough XCTestExpectations to keep the test methods running through
the callbacks. Add those here.
2020-01-01 13:39:17 -08:00
Tim Ekl
e4c84bc501
Add two missing expectation fulfillments
...
It looks like two tests in FeedlySetStarredArticlesOperationTests
created but never referenced XCTestExpectation instances. Based on the
other nearby tests, add a call to `fulfill()` inside the associated
completion block after the rest of our test assertions are done.
2019-12-31 19:41:32 -06:00
Tim Ekl
6c10774c4a
Fix build errors stemming from FeedlyTestSupport
...
There was one call to a throwing function inside
`checkArticles(in:correspondToStreamItemsIn:)` which was not
appropriately marked with `try`. Add that keyword, and then bubble out
the chain of errors through additional layers of helpers to the
enclosing test:
* This `checkArticles` variant was called by two others
* …one of which was used in `testAddNewFeedSuccess()`
* …another of which was used in various `verify` sync helpers
* …which were referenced from `testSyncing()`, a test case method
None of these involved any particular async hoops to jump through, and
since the top-level callers were all test functions, we can count on
XCTest to handle any errors thrown — no additional `catch` or handling
on our part is necessary.
2019-12-31 19:36:42 -06:00
Tim Ekl
711aca3d1b
Fix build errors in Feedly test support
...
Two more cases of completion blocks taking Results, requiring a
do/catch/Result.get() to unwrap.
This commit deliberately leaves one build error for a more comprehensive
fix, since it occurs in a helper function that will have broader
fallout.
2019-12-31 19:29:44 -06:00
Tim Ekl
152b1f2b8a
Fix errors in Feedly sync unread operations tests
...
Yet more completion blocks with Results; apply the usual
do/catch/Result.get() dance.
2019-12-31 19:27:47 -06:00
Tim Ekl
13b227a461
Fix errors in Feedly set starred operations tests
...
More of the same: completion blocks which take Results need
do/catch/Result.get().
2019-12-31 19:24:36 -06:00
Tim Ekl
f12e8b4a4a
Fix errors in starred articles operations tests
...
Pull the same do/catch/Result.get() trick as previously for completion
blocks which now take Results. `try` a few throwing calls.
2019-12-31 19:11:37 -06:00
Tim Ekl
6a4f3fb11e
Fix build errors in sync stream operations tests
...
Prefix two throwing calls with `try`. Label the enclosing test functions
with `throws` so the XCTest machinery helps us with error reporting.
2019-12-31 19:08:29 -06:00
Tim Ekl
6583688e38
Fix errors in Feedly unread operations tests
...
Most fetch completion blocks took a parameter that was expected to be
some result data type, but is now a Result. Rename these parameters;
wrap their existing bodies in do/catch blocks; and recreate the original
underlying variable using the result of `Result.get()`.
Prepend a few synchronous calls that started throwing with `try` along
the way.
2019-12-31 19:06:10 -06:00
Brent Simmons
51faf77e59
Update isExecuting and isFinished in a way that should make NSOperationQueue happy. Hopefully this fixes a mystery crash bug.
2019-12-31 15:40:05 -08:00
Tim Ekl
ae1651fad1
Fix errors in Feedly update-feeds operation tests
...
Mark some throwing calls with `try`; mark the enclosing test functions
with `throws`, letting the XCTest framework handle error reporting for
us.
2019-12-31 15:55:59 -06:00
Tim Ekl
f82be27666
Resolve errors in Feedly statuses operation tests
...
Add `error` parameters to completion blocks which now pass them. Assert
these errors are always nil in the existing tests.
Flip calls to `selectPendingCount()` so they are async, with a
completion block that asserts about the results instead of asserting
about the return value. Since the closure takes a Result, unwrap it in a
do/catch block at each site; `XCTAssertNoThrow` doesn't help us bubble a
value out from `Result.get()`, and I'd rather not use `try!` here. There
might be a stylistic discussion to be had about this unwrapping, though.
2019-12-31 15:52:54 -06:00
Kiel Gillard
3b47edfba7
Models the feed identifier of feedly articles as an optional since it seems the Feedly API will not always provide one (despite the API documentation).
...
Additional, more elegantly handle the failure to parse an article when Feedly does not provide a matching feed.
2019-12-31 08:47:27 +11:00
Brent Simmons
3a33c38d5c
Use an inner function in FeedbinAccountDelegate.refreshMissingArticles. I like this pattern because 1) it keeps the switch statement and its cases near each other, and 2) it puts all the actual processing in a single function, which makes it easier to see where processing happens.
2019-12-17 21:24:17 -08:00
Brent Simmons
db564d9cf9
Remove all references to fetchArticleIDsForStatusesWithoutArticles. Use fetchArticleIDsForStatusesWithoutArticlesNewerThanCutoffDate instead.
2019-12-17 21:15:20 -08:00
Maurice Parker
236f581d95
Update Feedbin to use fetchArticleIDsForStatusesWithoutArticlesNewerThanCutoffDate for missing articles.
2019-12-17 17:43:08 -07:00
Kiel Gillard
40dacd6522
Update set starred articles operation to honour database errors.
2019-12-18 09:45:30 +11:00
Kiel Gillard
5a9b138a9d
Update set unraed articles operation to honour database errors.
2019-12-18 09:42:08 +11:00
Kiel Gillard
7ddcb2fc8e
Add optional completions to avoid race conditions involving these marked statuses.
2019-12-18 09:41:45 +11:00
Kiel Gillard
6fb0e2e0d0
Honour the error case when ingesting read and star statuses
2019-12-18 09:32:58 +11:00
Kiel Gillard
bd307cbb6c
Give the FeedlySyncStarredArticlesOperation a delegate so that if the database becomes suspended, the remainder of the sync operation cancels.
2019-12-18 09:26:57 +11:00
Kiel Gillard
311f5b2e81
Check the account update error when update a Feedly account and finish with an error, indicating to its delegate that remaining operations should cancel.
2019-12-18 09:19:00 +11:00
Maurice Parker
b637a6f01b
Process the article downloads in smaller transaction groups to make possible to interrupt. Issue #1437 .
2019-12-17 14:28:04 -07:00
Maurice Parker
7192a6893e
Change Feedbin to always check the error from Account.update.
2019-12-17 13:25:01 -07:00
Brent Simmons
567a971a1c
Remove no-longer-used fetchStatuses functions.
2019-12-16 23:09:46 -08:00
Brent Simmons
704ccb2927
Remove no-longer-used ensureStatuses functions.
2019-12-16 23:06:21 -08:00
Brent Simmons
e8045b0e8b
Merge branch 'master' of https://github.com/brentsimmons/NetNewsWire
2019-12-16 22:46:24 -08:00
Brent Simmons
15184aa3f1
Finish changes mandated by DatabaseQueue changes.
2019-12-16 22:45:59 -08:00
Brent Simmons
3c8097404f
Make progress on update ArticleFetcher to handle DatabaseQueue changes.
2019-12-16 17:04:00 -08:00
Brent Simmons
51393967e2
Finish making Account and AccountManager compatible with DatabaseQueue changes.
2019-12-16 17:03:41 -08:00
Brent Simmons
9516392c61
Make two more Feedly operations compatible with DatabaseQueue changes.
2019-12-16 17:03:05 -08:00
Brent Simmons
3883d24ebe
Simplify FeedlySetUnreadArticlesOperation.
2019-12-16 16:26:35 -08:00
Brent Simmons
67f65545b3
Continue changes mandated by DatabaseQueue changes.
2019-12-16 15:55:37 -08:00
Brent Simmons
e700da9410
Mark appropriate functions as throws.
2019-12-16 15:32:08 -08:00
Brent Simmons
f2052f110f
Make updateUnreadCounts compatible with database changes.
2019-12-16 14:59:15 -08:00
Brent Simmons
9a36051d8a
Remove a reference to database.isSuspended.
2019-12-16 14:43:25 -08:00
Maurice Parker
9dad3f0540
Pass the account metadata to delegate on initialization
2019-12-16 14:19:55 -07:00
Brent Simmons
3981312d6f
Update sync code to handle async selectForProcessing.
2019-12-16 12:49:07 -08:00
Brent Simmons
7a134740ec
Make SyncDatabase selectPendingCount async.
2019-12-16 10:50:13 -08:00
Maurice Parker
58b24f3349
Rename callback: to completion:
2019-12-14 18:01:34 -07:00
Maurice Parker
43bf65b7a6
Rename occurrences of completionHandler to completion.
2019-12-14 17:14:55 -07:00
Brent Simmons
45cdb7bea3
Create a fetchStatuses method that will optionally create statuses if needed. Callback gets Set<ArticleStatus> — or nil if the app is suspended.
2019-12-11 22:28:01 -08:00
Maurice Parker
e303d64c1d
Refresh feeds and sidebar when downloaded articles update all their unread counts. Issue #1430
2019-12-10 18:17:54 -07:00
Maurice Parker
b8ef6c7549
Don't process OPML file if it hasn't changed since it was last produced. Issue #1428
2019-12-10 14:10:07 -07:00
Maurice Parker
358f386c4b
Change progress view to use the most recent last fetch end time. Issue #1383
2019-12-09 18:34:26 -07:00
Kiel Gillard
2401b0be1b
Fix compilation issues with tests after Account API changes.
2019-12-09 18:54:29 +11:00
Maurice Parker
a3dc787fb0
Change to call completion when exiting early. Issue #1421
2019-12-08 10:00:20 -07:00
Brent Simmons
0b87531f2f
Make fetchStarredArticles an async call. Also have it respect subscribed-to feed IDs.
2019-12-07 22:23:44 -08:00
Brent Simmons
a561ea9484
Fetch unread article IDs async. Also: fetch only for feeds currently subscribed-to. Fix #1218 .
2019-12-07 20:57:23 -08:00
Maurice Parker
a75ce688d9
Update to latest RSWeb so that refreshAll completion handler no longer gets called early
2019-12-07 16:26:38 -07:00
Brent Simmons
b61cd3a869
Hash just the webFeedID in WebFeed’s hash function. This will almost always be unique, and it helps performance because 1) string hashing is slow, and 2) we update sets of WebFeeds kind of often.
2019-12-07 12:05:58 -08:00
Maurice Parker
d4722f766f
Make sure local accounts can't initiate processing after suspendNetwork is called. Issue #1401
2019-12-06 16:06:54 -07:00
Kiel Gillard
d5331c08c8
Improve Feedly's suspension support. #1396
2019-12-07 07:59:45 +11:00
Brent Simmons
66c9d287bb
Merge pull request #1403 from kielgillard/feedly-report-crawled
...
Feedly articles report the crawled and recrawled date…
2019-12-05 21:52:43 -08:00
Kiel Gillard
f58bb38e8f
Remove unused code.
2019-12-05 19:02:40 +11:00
Kiel Gillard
d9a2ca8e7e
Adds unit tests for adding a new feed with Feedly. #1300
2019-12-05 19:02:40 +11:00
Kiel Gillard
7563d1b2c6
Search Feedly for the best feed (and its identifier) for the URL entered when adding a new feed. #1300
2019-12-05 19:02:40 +11:00
Kiel Gillard
fcd6d15b4c
Feedly articles report the crawled and recrawled date for the date published and updated values.
2019-12-05 18:55:28 +11:00
Brent Simmons
a5c1341b0c
Resume databases for all accounts before resuming anything else, so that notifications don’t trigger database calls.
2019-12-04 22:11:20 -08:00
Maurice Parker
95c1b36fe7
Change order of suspending steps to prevent work from going to a suspended queue. Issue #1400
2019-12-04 17:27:39 -07:00
Kiel Gillard
3fdab4a288
Feed titles in Feedly seem to be optional despite what the API documentation says, possibly fixing #1326 if there are no other required keys that should be optional.
2019-12-04 09:33:10 +11:00
Kiel Gillard
f7375a9c8e
Update public Feedly sandbox OAuth secrets.
2019-12-04 09:29:43 +11:00
Maurice Parker
dad8b39ea9
Remove cancellAll for FeedWrangler.
2019-12-02 15:59:45 -06:00
Maurice Parker
f159371967
Change to make sure all queue's get cleared before suspending the database. Issue #1389
2019-12-02 14:14:35 -06:00
Maurice Parker
7a8155f58f
Add suspend and resume to managed files
2019-12-01 17:16:52 -06:00
Maurice Parker
d9f2e13732
Suspend and resume account resources when moving between the background and foreground.
2019-12-01 16:51:25 -06:00
Brent Simmons
45804a3d1a
Use the new VoidCompletionBlock instead of (() -> ()).
2019-11-29 23:42:11 -08:00
Brent Simmons
ed5db537f8
Fix warning in in-progress code.
2019-11-29 23:04:29 -08:00
Brent Simmons
b5f1c69f8e
Add AccountManager.resumeAll, Account.resume. Add suspend() and resume() to AccountDelegate and to individual AccountDelegate instances.
2019-11-29 22:57:14 -08:00
Brent Simmons
2dd239d5ee
Merge changes from mac-release — adopt DatabaseQueue.
2019-11-29 22:17:32 -08:00
Brent Simmons
6fdaf773cd
Add SyncDatabase to referenced frameworks in project settings.
2019-11-29 21:49:24 -08:00
Kiel Gillard
5cd90a9be7
Fix syncing of unread articles with Feedly when adding new or existing feeds to folders. #1289 #1332
2019-11-30 10:14:58 +11:00
Kiel Gillard
757c469e00
Improves the test coverage of syncing and progress reporting, identifying and fixing a bug when cancelling. #1328
2019-11-30 08:00:46 +11:00
Maurice Parker
7d39933ba4
Add article exception fetcher to always restore article to timeline regardless of timeline state.
2019-11-29 14:31:15 -06:00
Kiel Gillard
52d2121553
Fixes race conditions in FeedlyOperation progress reporting unit tests.
2019-11-29 18:33:32 +11:00
Maurice Parker
30f560be4d
Convert Feedly and Mercury to use the new Secrets system.
2019-11-27 17:20:09 -06:00
Maurice Parker
748f4e64d3
Merge pull request #1364 from jbennett/manage-secrets
...
Generalize handling of secrets and keys
2019-11-27 16:54:24 -06:00
Maurice Parker
81c4756f97
Persist article read filters across application launches. Issue #1349
2019-11-27 11:43:36 -06:00
Jonathan Bennett
eda98d166d
remove FeedWrangler build scripts
2019-11-27 11:17:46 -05:00
Maurice Parker
991ecf2a71
Merge pull request #1363 from kielgillard/1326-missing-data
...
Adds public logging of the Feedly errors…
2019-11-27 09:55:22 -06:00
Kiel Gillard
1891523d0d
Adds public logging of the Feedly errors to help identify the missing key in #1326 .
2019-11-27 19:04:55 +11:00
Kiel Gillard
2f96e8b8a6
Feedly operations can optionally report their progress. #1328
2019-11-27 18:32:18 +11:00
Maurice Parker
ebd7f4904d
Persist the Feeds Read filter across application launches. Issue #1349
2019-11-26 20:23:12 -06:00
Maurice Parker
4a9e79cd1e
Persist and restore container expanded state across application launches. Issue #1361
2019-11-26 16:33:11 -06:00
Jonathan Bennett
9d0034576d
start extracting secrets
2019-11-26 08:58:16 -05:00
Jonathan Bennett
ce51e4e632
Merge branch 'master' into feature/feed-wrangler
2019-11-24 20:41:43 -05:00
Maurice Parker
6a56936850
Moved expanded state away from Node so that it won't get lost on rebuilds. Issue #1346
2019-11-24 18:29:00 -06:00
Maurice Parker
43744ec128
Add folder read fetch query.
2019-11-22 10:21:30 -06:00
Maurice Parker
eea5d6f327
Change ReadFilter to ReadFilterType and differentiate the ReadFilter from the query filter.
2019-11-22 09:40:39 -06:00
Maurice Parker
a5b4d570af
Change ReadFilter case unavailable to alwaysRead
2019-11-22 09:32:27 -06:00
Maurice Parker
6d8fca01ea
Filter async requests based on ReadFilter.
2019-11-21 19:54:35 -06:00
Maurice Parker
e8826130a4
Add timeline filter button
2019-11-21 18:22:43 -06:00
Jonathan Bennett
0f105c8421
logout when deleting account
2019-11-21 01:17:41 -05:00
Jonathan Bennett
b3c053964c
handle new feeds better
...
this is in prep for the initial acount/feeds changes
2019-11-21 01:09:09 -05:00
Jonathan Bennett
d3c168a12e
use add_feed_and_wait endpoint
...
The add_feed endpoint does not return feed info. The _and_wait endpoint can be slower (up to 10 seconds) but will make sure we gett the right URL if available.
2019-11-20 17:26:27 -05:00
Jonathan Bennett
85d54c17cc
allow cancelling of network requests
2019-11-20 16:33:56 -05:00
Jonathan Bennett
93595ab745
bubble transport errors up
2019-11-20 16:33:12 -05:00
Jonathan Bennett
36c2aabe38
rename Feed to WebFeed
2019-11-20 16:02:25 -05:00
Jonathan Bennett
29a0608288
pbxproj merge fixes
2019-11-20 14:51:07 -05:00
Jonathan Bennett
b4a862d207
Merge branch 'master' into feature/feed-wrangler
...
# Conflicts:
# Frameworks/Account/Account.swift
# Frameworks/Account/Account.xcodeproj/project.pbxproj
# NetNewsWire.xcodeproj/project.pbxproj
# submodules/RSCore
2019-11-20 14:01:04 -05:00
Jonathan Bennett
82d7631694
treack refresh progress better
2019-11-20 12:27:21 -05:00
Jonathan Bennett
ac33bf982e
cleanup code
...
most network calls follow the same structure
2019-11-20 12:09:42 -05:00
Jonathan Bennett
e867991ec8
use transport.send(request, resultType, completion)
2019-11-20 11:48:03 -05:00
Jonathan Bennett
f4bee1d0b9
retrieve missing articles
2019-11-20 06:13:30 -05:00
Maurice Parker
5ce5175bc0
Change to not suggest root folder for Accounts that don't support it. Issue #1287
2019-11-16 13:25:55 -06:00
Maurice Parker
91a3e4fd73
Change Add Web Feed folder selection to be a separate controlling instead of the picker wheel. Issue #1270
2019-11-16 12:02:58 -06:00
Maurice Parker
5283d2efbe
Implement Feed protocol.
2019-11-15 06:19:14 -06:00
Kiel Gillard
55faf550d7
Implements logout for Feedly accounts.
2019-11-15 19:09:14 +11:00
Maurice Parker
afd9783711
Merge branch 'master' of https://github.com/brentsimmons/NetNewsWire
2019-11-14 20:11:50 -06:00
Maurice Parker
06bd5b3a6f
Renamed Feed and related classes/instances to WebFeed
2019-11-14 20:11:41 -06:00
Kiel Gillard
bec80922ce
Enables accounts and their delegates to prepare to be deleted. Provides a variation of the Account Inspector on iOS for Feedly.
2019-11-15 09:47:39 +11:00
Kiel Gillard
b317a99594
Fix failing Feedly tests.
2019-11-15 09:32:02 +11:00
Maurice Parker
a96c5f34ce
Merge pull request #1295 from kielgillard/cancellation-improvements
...
Improves the behaviour and fixes some issues…
2019-11-14 15:40:28 -06:00
Maurice Parker
0d66259650
Add ArticleFetcherType and change state restoration to use new type.
2019-11-14 15:06:32 -06:00
Kiel Gillard
3ed5a43de3
Improves the behaviour and fixes some issues with cancelling of Feedly operations.
2019-11-15 07:59:44 +11:00
Maurice Parker
96dbd96527
Change keychain accessiblity to allow access when the device is locked. Issue #1292
2019-11-12 19:24:07 -06:00
Maurice Parker
3b3dd9f1bd
Always use cloud environment for Feedly.
2019-11-11 18:18:59 -06:00
Maurice Parker
4c97d099ea
Add ProjectSettings.xcconfig to be included in the Account build.
2019-11-11 17:57:49 -06:00
Maurice Parker
2617744d49
Merge branch 'master' of https://github.com/brentsimmons/NetNewsWire
2019-11-11 13:52:52 -06:00
Maurice Parker
866988edcf
Correct deep link comments.
2019-11-11 13:47:28 -06:00
Kiel Gillard
c87f8c974a
Store the last article fetch when articles were successfully fetched.
2019-11-11 17:42:14 +11:00
Kiel Gillard
a4bcbf5c36
Automatically refreshes a new Feedly account after its creation.
2019-11-11 08:10:39 +11:00
Kiel Gillard
8c27187ad8
Make the OAuthAuthorizationClient an implementation detail the Account.framework.
2019-11-09 21:44:13 +11:00
Kiel Gillard
39c7bdb5e2
Give this test a bit more time to execute on a stressed system.
2019-11-09 21:44:13 +11:00
Kiel Gillard
b8f7e3f519
Use ASWebAuthenticationSession to authenticate Feedly users and grant NNW access tokens.
2019-11-09 21:44:13 +11:00
Maurice Parker
9846428071
Update Feedbin tests to match latest functionality.
2019-11-07 19:36:31 -06:00
Maurice Parker
6b2ecdaca0
Merge branch 'mac-release'
2019-11-07 19:17:53 -06:00
Maurice Parker
e2434e620c
Get extended subscription information from Feedbin. Issue #917
2019-11-07 19:07:10 -06:00
Kiel Gillard
4c9e98c150
Ensures refresh tokens occurs before syncing. Implements cancelAll for Feedly.
2019-11-07 20:44:51 +11:00
Kiel Gillard
6bef313937
Feedly accounts now refresh their access tokens on initialisation.
2019-11-07 18:55:05 +11:00
Kiel Gillard
434b11ed17
Ensures Feedly status operations finish at the right time. In part, this is achieved by adding and using completion handlers to the asynchronous ensure status API.
2019-11-06 13:26:12 +11:00
Kiel Gillard
1a1ee0fa17
Fixes an issue where sending article statuses to Feedly was finishing prematurely.
2019-11-06 11:22:10 +11:00
Maurice Parker
098f5050eb
Cancel local account network activity when told to shutdown by the OS. Issue #1232
2019-11-04 20:41:08 -06:00
Maurice Parker
c6e3ed6692
Cancel network activity when told to shutdown by the OS. Issue #1232
2019-11-04 20:24:21 -06:00
Maurice Parker
219e5751a1
Merge pull request #1144 from kielgillard/master
...
Syncs articles in pages, decouples article syncing from status syncin…
2019-11-04 14:29:22 -06:00
Maurice Parker
2f2efb5eac
Change Feedbin to no longer clear lastFetchDate on errors. Issue #1233
2019-11-02 16:21:37 -05:00
Kiel Gillard
4f70cb6040
Improves test coverage in Feedly. Adds callbacks to SyncDatabase. Content is paged from Feedly. Unread status is set before articles are ingested.
2019-11-02 10:29:34 +11:00
Brent Simmons
4cb602f24a
Merge mac-release.
2019-10-26 12:44:33 -07: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
Jonathan Bennett
48e47ec40b
Allow adding of feeds
2019-10-24 11:48:12 -04:00
Jonathan Bennett
77fc1bd8fe
Merge branch 'master' into feature/feed-wrangler
...
# Conflicts:
# submodules/RSCore
2019-10-23 21:10:57 -04:00
Ryan Dotson
48fb3ebc18
Curled some quotes
2019-10-22 19:58:05 +09:00
Maurice Parker
af16731ecd
Add the ability to specify folder in Add Feed shortcut
2019-10-20 18:49:17 -05:00