Brent Simmons
|
c9610f1f8e
|
Create DownloadWithCacheManager, for when it’s a good idea to use a cache.
|
2017-11-23 10:24:36 -08:00 |
Brent Simmons
|
ca4f4d408f
|
Create downloadUsingCache method — so we don’t download a home page several times in succession, for instance.
|
2017-11-22 13:37:07 -08:00 |
Brent Simmons
|
86907f6aab
|
Create ThreadSafeCache, which FaviconDownloader uses.
|
2017-11-19 23:58:35 -08:00 |
Brent Simmons
|
1864f60e0b
|
Save iconURL and faviconURL in Feed when found in ParsedFeed.
|
2017-11-19 22:38:42 -08:00 |
Brent Simmons
|
0284117bc3
|
Save and restore iconURL in Feed.
|
2017-11-19 22:37:59 -08:00 |
Brent Simmons
|
f457694922
|
Save and restore faviconURL in Feed.
|
2017-11-19 21:24:19 -08:00 |
Brent Simmons
|
ffaa55c50c
|
Implement mark-everywhere-as-read.
|
2017-11-19 16:28:26 -08:00 |
Brent Simmons
|
9c571271e6
|
Create SmartFeed class. It’s for Unread and Starred pseudo-feeds — and will also be used later on by predicate-based smart feeds.
|
2017-11-19 15:40:02 -08:00 |
Brent Simmons
|
83cee90929
|
Fix a couple bugs in PseudoFeed. Make callback for fetching unread count @escaping.
|
2017-11-19 12:45:35 -08:00 |
Brent Simmons
|
19673f5c8a
|
Add methods for fetching unread count since a certain date to Database.framework.
|
2017-11-19 12:44:17 -08:00 |
Brent Simmons
|
e681007bbe
|
Add TodayFeedDelegate. Start work on fetching unread count for Today pseudo-feed.
|
2017-11-19 12:12:43 -08:00 |
Brent Simmons
|
1cc532faa1
|
Add startOfToday and nullability annotations to NSCalendar+RSCore.
|
2017-11-19 12:11:56 -08:00 |
Brent Simmons
|
911e992b76
|
Use a Swift name for rs_performSelectorCoalesced — make it performSelectorCoalesced:with:delay:.
|
2017-11-19 11:42:22 -08:00 |
Brent Simmons
|
200ff61f6a
|
Fix code formatting nit in DisplayNameProvider.
|
2017-11-19 11:41:27 -08:00 |
Brent Simmons
|
eff6acba94
|
Create index on statuses (read) for performance reasons.
|
2017-11-19 11:40:45 -08:00 |
Brent Simmons
|
23ae585b12
|
Add a group-style row for accounts.
|
2017-11-18 16:56:36 -08:00 |
Brent Simmons
|
ca081c41a9
|
Decode HTML entities in the JSON Feed parser for content_html. Fix #176.
|
2017-11-18 12:41:15 -08:00 |
Brent Simmons
|
828075454e
|
Skip calculating a zero size for empty RSSingleLineView and RSSingleLineRenderer.
|
2017-11-16 21:10:44 -08:00 |
Brent Simmons
|
0e5b400a0c
|
Show Error Log window from Window menu.
|
2017-11-15 22:40:49 -08:00 |
Brent Simmons
|
1d2fe4623b
|
Add Inspector to RSCore. Show/hide inspector via Info command in Window menu.
|
2017-11-15 22:33:35 -08:00 |
Brent Simmons
|
1e713e3bfd
|
Update Account unread count when BatchUpdate did perform.
|
2017-11-15 13:26:10 -08:00 |
Brent Simmons
|
38954448cb
|
Move BatchUpdate.swift to RSCore.
|
2017-11-15 13:25:43 -08:00 |
Brent Simmons
|
3612469954
|
Make LogItem not crash on init.
|
2017-11-15 13:13:19 -08:00 |
Brent Simmons
|
48ca636796
|
Make progress on LogWindowController.
|
2017-11-14 22:04:14 -08:00 |
Brent Simmons
|
887e562716
|
Post a notification when a LogItem is added.
|
2017-11-14 21:39:24 -08:00 |
Brent Simmons
|
60ee139451
|
Add ability to log items to AppDelegate.
|
2017-11-14 21:31:17 -08:00 |
Brent Simmons
|
bf45c3bdd9
|
Rename Logger to Log.
|
2017-11-14 21:19:12 -08:00 |
Brent Simmons
|
7e2420700c
|
Add Logger and LogItem. Start work on log window.
|
2017-11-14 21:15:06 -08:00 |
Brent Simmons
|
0bc84aa50c
|
Show the Keyboard Shortcuts menu via its new Window menu command. The window’s HTML content remains to be done, though.
|
2017-11-13 18:33:23 -08:00 |
Brent Simmons
|
5d781d1657
|
Add method to display contents of file in WebViewWindowController.
|
2017-11-13 18:19:25 -08:00 |
Brent Simmons
|
773f660601
|
Create WebViewWindow, which holds a WKWebView. To be used for keyboard shortcuts and whatever else needs a plain web view in a window.
|
2017-11-13 13:23:22 -08:00 |
Brent Simmons
|
9f56030b79
|
Calculate the Account’s unread count by looking at the set of flattened feeds — this way a given feed (which can occur more than once) is counted only once. Fix #101.
|
2017-11-11 19:34:10 -08:00 |
Brent Simmons
|
0fe8cbd360
|
Remove redundant check to see if feed is probably XML.
|
2017-11-11 14:27:56 -08:00 |
Brent Simmons
|
a593661ba9
|
Add feed detection test for DCRainmaker feed. Make sure it’s detected as RSS. Fix #146.
|
2017-11-11 10:37:28 -08:00 |
Brent Simmons
|
2982109f9b
|
Check that data is not XML, rather than that it is HTML, when determining feed type. Fix #144.
|
2017-11-11 10:30:01 -08:00 |
Brent Simmons
|
9818278c9b
|
Make undo deleting feeds/folders work.
|
2017-11-05 12:14:36 -08:00 |
Brent Simmons
|
57296279e4
|
Switch back to AnyObject from AnyHashable, because of http://openradar.appspot.com/34824398
|
2017-11-04 23:05:20 -07:00 |
Brent Simmons
|
e16911b363
|
Make deleting work. Can’t undo yet. But now everything is messed-up because of an AnyHashable casting bug. Don’t run this build.
|
2017-11-04 22:51:14 -07:00 |
Brent Simmons
|
66c02a6fe1
|
Fix build errors.
|
2017-11-04 19:29:43 -07:00 |
Brent Simmons
|
17e22fb91a
|
Upgrade to recommended settings everywhere.
|
2017-11-04 19:16:07 -07:00 |
Brent Simmons
|
ad3020f13f
|
Upgrade to recommend changes for Data.
|
2017-11-04 19:14:55 -07:00 |
Brent Simmons
|
5c984cbd23
|
Upgrade to recommend changes for RSTextDrawing.
|
2017-11-04 19:14:38 -07:00 |
Brent Simmons
|
9886ac110a
|
Upgrade to recommend changes for RSFeedFinder.
|
2017-11-04 19:14:16 -07:00 |
Brent Simmons
|
ef303c0c38
|
Make progress on deleting and especially undoing delete.
|
2017-11-04 19:03:47 -07:00 |
Brent Simmons
|
c08bbaa970
|
Use AnyHashable instead of AnyObject as representedObject for tree nodes.
|
2017-11-04 15:27:32 -07:00 |
Brent Simmons
|
ef1d95341b
|
Show feeds in Feed Directory sidebar.
|
2017-11-04 14:53:21 -07:00 |
Brent Simmons
|
2bb0cdb0ba
|
Fix build failures in OPMLTests. Tests all still pass in RSParser.
|
2017-11-04 10:25:13 -07:00 |
Brent Simmons
|
911e6b0879
|
Do some refactoring.
|
2017-11-01 22:40:28 -07:00 |
Brent Simmons
|
17b84ec57c
|
Rename MarkAllReadCommand to MarkReadOrUnreadCommand and make it handle both cases.
|
2017-10-29 12:09:56 -07:00 |
Brent Simmons
|
f9b3eeb4d7
|
Switch macOS deployment target to 10.13. Get MarkAllReadCommand working as an undoable command.
|
2017-10-29 11:14:10 -07:00 |
Brent Simmons
|
d16f83c99a
|
Start UndoableCommand as part of undo support.
|
2017-10-24 09:28:58 -07:00 |
Brent Simmons
|
c101d9dd04
|
Maintain url-to-feed and feedID-to-feed dictionaries to make lookups faster. This makes OPML importing very fast.
|
2017-10-22 11:08:51 -07:00 |
Brent Simmons
|
649f62207f
|
Fix OPML importing.
|
2017-10-21 21:00:21 -07:00 |
Brent Simmons
|
8d5e568cde
|
Make folder.account weak and optional.
|
2017-10-21 16:37:40 -07:00 |
Brent Simmons
|
d512908b6f
|
Use @discardableResult with addFeed.
|
2017-10-21 16:32:29 -07:00 |
Brent Simmons
|
7bf1847588
|
Send notification on adding a feed to a folder. Also: Update ToDo.
|
2017-10-21 16:27:06 -07:00 |
Brent Simmons
|
c237aed5b8
|
Rejigger the find-feed scoring to handle bitsplitting.org — we were getting the podcast feed just because it had “RSS” in the title. But we want the blog feed to get the best score.
|
2017-10-21 16:23:51 -07:00 |
Brent Simmons
|
da1b7a6c7b
|
Post children-did-change notification after adding a feed.
|
2017-10-21 16:06:25 -07:00 |
Brent Simmons
|
edea37dba6
|
Add TreeController.normalizeSelectedNodes and supporting functions in Node.
|
2017-10-21 12:14:15 -07:00 |
Brent Simmons
|
702559cfb1
|
Define kDeleteKeyCode for use in key handling.
|
2017-10-21 10:54:59 -07:00 |
Brent Simmons
|
aca8acea7c
|
Update sidebar when adding a folder.
|
2017-10-19 13:27:59 -07:00 |
Brent Simmons
|
3812c216b2
|
Show unread count in window title.
|
2017-10-18 21:53:45 -07:00 |
Brent Simmons
|
2383ecd480
|
Implement ensureFolder — it actually creates and adds a folder and makes sure account is saved to disk.
|
2017-10-18 19:46:35 -07:00 |
Brent Simmons
|
31947854c0
|
Add AccountDelegate methods for reading and writing a userInfo dictionary that’s stored on disk in the same file as the rest of the Account info. Save account unreadCount with the disk dictionary. Mark an account as dirty when any descendant changes an unread count.
|
2017-10-18 19:14:40 -07:00 |
Brent Simmons
|
39599a43f3
|
Make hasAtLeastOneFeed() a Container protocol function with a default implementation. Scrap Account’s feedIDDictionary, since it’s not needed. (Well, profiling may tell us later to bring it back.)
|
2017-10-18 18:45:09 -07:00 |
Brent Simmons
|
fe29ccd2ed
|
Show unread count in dock badge. Force-update unread counts at startup.
|
2017-10-18 18:37:45 -07:00 |
Brent Simmons
|
324f330a3b
|
Use localizedStandardCompare when sorting Account names. It’s likely I got the order backwards, but I won’t know until we have accounts other than the local account. (I always get this backwards, even knowing that I always get it backwards.)
|
2017-10-18 18:21:36 -07:00 |
Brent Simmons
|
f90bf3bea1
|
Rename childrenContainsFeed to childrenContain. Add assertionFailure — expecting pointer equality.
|
2017-10-18 18:13:49 -07:00 |
Brent Simmons
|
3ea60cb461
|
Handle unread count change notifications in Folder. Update the unread count when needed.
|
2017-10-13 06:58:15 -07:00 |
Brent Simmons
|
505f4bcdba
|
Handle unread count did change notification in Account.
|
2017-10-13 06:50:33 -07:00 |
Brent Simmons
|
4897181909
|
Avoid a compiler bug with constrained Set extensions. Add a notification observation to Account when unread count changes.
|
2017-10-12 21:02:27 -07:00 |
Brent Simmons
|
165e74a3f3
|
Refactor status change handling in Account.
|
2017-10-10 13:23:12 -07:00 |
Brent Simmons
|
f5a5bf91b2
|
Update unread counts for feeds when statuses change.
|
2017-10-09 21:54:08 -07:00 |
Brent Simmons
|
77042f67b5
|
Include updated feeds in StatusesDidChange notification, so that updating unread counts will work.
|
2017-10-08 22:25:33 -07:00 |
Brent Simmons
|
6572631866
|
Update the timeline cell when an article’s status changes.
|
2017-10-08 21:06:25 -07:00 |
Brent Simmons
|
8a6b8bde9b
|
Remove some inaccurate assertions about the main thread.
|
2017-10-08 19:33:37 -07:00 |
Brent Simmons
|
8aa3746cb8
|
Add code for fetching articles for the timeline. Doesn’t actually work yet, though, for some reason.
|
2017-10-08 18:58:15 -07:00 |
Brent Simmons
|
4b662efe15
|
Comment-out some debugging code.
|
2017-10-08 01:56:18 -07:00 |
Brent Simmons
|
1b44591692
|
Save new and updated articles to the database.
|
2017-10-08 01:54:37 -07:00 |
Brent Simmons
|
ca611623aa
|
Simplify Container and its function implementations.
|
2017-10-07 21:41:21 -07:00 |
Brent Simmons
|
7f6f6f9061
|
Set the account to dirty upon updating some Feed properties.
|
2017-10-07 20:25:17 -07:00 |
Brent Simmons
|
c52eb024ab
|
Avoid resetting the save timer so often during a refresh session. Instead just remove it (if refreshing) and add it back when the refresh session ends.
|
2017-10-07 20:24:58 -07:00 |
Brent Simmons
|
0ba557736e
|
Avoid saving account to disk during a refresh session. Reschedule the timer and do it later.
|
2017-10-07 20:11:17 -07:00 |
Brent Simmons
|
d8e723db46
|
Fix typo — send correct notification on account finishing refresh.
|
2017-10-07 18:31:34 -07:00 |
Brent Simmons
|
ade76d6405
|
Save to disk when needed. Coalesce writing, so it doesn’t happen over and over during a refresh session.
|
2017-10-07 18:15:42 -07:00 |
Brent Simmons
|
bed43dd3d6
|
Call the completion block in Account.update, so the refresher can do its thing properly. Also: update ToDo.
|
2017-10-07 17:53:37 -07:00 |
Brent Simmons
|
c6f683c34c
|
Make Account, rather than its delegate, watch for refresh progress changes. This way the delegate doesn’t have to be inited with its Account.
|
2017-10-07 17:43:10 -07:00 |
Brent Simmons
|
b77569f38b
|
Create and use CombinedRefreshProgress, which reports refresh progress across all accounts. Used by the status view.
|
2017-10-07 17:20:19 -07:00 |
Brent Simmons
|
5d8aa94dc3
|
Keep track of refresh beginning and finishing. Validate the refreshAll command (menu, toolbar).
|
2017-10-07 14:40:14 -07:00 |
Brent Simmons
|
ab82febb9a
|
Move Account/Local folder to Account/LocalAccount, to make it easier to spot (since LocalAccount is its name). Also: wire up refreshing. Make organization changes to LocalAccountRefresher.
|
2017-10-07 12:40:14 -07:00 |
Brent Simmons
|
f7c5919674
|
Send DownloadProgressDidChange notification only when numberOfTasks or numberRemaining actually change.
|
2017-10-07 12:37:11 -07:00 |
Brent Simmons
|
1bffbb7312
|
Use new UserAgent.headers() function. Reorganize — API up top, with extensions for protocol conformances.
|
2017-10-07 12:36:09 -07:00 |
Brent Simmons
|
6888ad6d00
|
Use UserAgent.headers() function.
|
2017-10-07 12:35:11 -07:00 |
Brent Simmons
|
07e6ff5572
|
Add UserAgent.headers() function — otherwise that code was duplicated in a couple places.
|
2017-10-07 12:34:12 -07:00 |
Brent Simmons
|
6a1c39d8a3
|
Remove Notifications.swift from Data.framework. Clean up UnreadCountProvider.
|
2017-10-07 11:56:22 -07:00 |
Brent Simmons
|
12ea6e6a9f
|
Fix a second bug loading feeds. Feeds now appear in the sidebar.
|
2017-10-05 21:17:50 -07:00 |
Brent Simmons
|
199dd0e247
|
Fix bug loading feeds from disk.
|
2017-10-05 21:08:27 -07:00 |
Brent Simmons
|
c258a9da5c
|
Rewrite and move BatchUpdate.swift.
|
2017-10-05 20:34:29 -07:00 |
Brent Simmons
|
c80c6c30f8
|
Fix builder errors, mostly in RSParser.
|
2017-10-04 13:28:48 -07:00 |
Brent Simmons
|
83231ed373
|
Fix some build errors.
|
2017-10-02 13:15:07 -07:00 |