Brent Simmons
a8bd15e9b4
Add method to convert HTML to plain text suitable for copying to text-based apps. It could be much improved, but it’s better than nothing for right now.
2017-12-26 16:17:57 -08:00
Brent Simmons
0b2d7c6733
Validate unread counts on fetching articles. Fix #274 .
2017-12-26 11:27:55 -08:00
Brent Simmons
288f203bea
Add setPointAndSizeAdjustingForScreen for placing windows without (usually) going offscreen. Use it for positioning the Keyboard Shortcuts window. Fix #263 .
2017-12-22 11:13:20 -08:00
Brent Simmons
a4c82739b6
Implement next and previous subscription navigation. Also: on first-run, position and size the window a bit nicer.
2017-12-21 14:43:29 -08:00
Brent Simmons
84845c21b3
Make sidebar expand/collapse keyboard shortcuts work.
2017-12-21 11:09:07 -08:00
Brent Simmons
70000c1d31
Progress on keyboard shortcuts. Add link to Technotes in Help menu. Fix #266 .
2017-12-20 21:23:48 -08:00
Brent Simmons
035702d403
Add KeyboardKey and KeyboardShortcut structs.
2017-12-20 12:54:01 -08:00
Brent Simmons
23769bc391
Add AccountDelegate.accountDidInitialize method, so that the delegate can set the account’s nameForDisplay before anything else happens. Fix #247 .
2017-12-19 17:48:30 -08:00
Brent Simmons
705efcb7e8
Add keyboard utilities to RSCore.
2017-12-19 15:23:42 -08:00
Brent Simmons
dd89f2dea7
Add test for Macworld authors — make sure they appear as names instead of email addresses, even though they’re using RSS.
2017-12-19 13:28:33 -08:00
Brent Simmons
6c5566e184
Parse Atom authors. Fix #260 .
2017-12-19 13:24:19 -08:00
Brent Simmons
0317196cf6
Add test for Atom authors. Currently failing.
2017-12-19 13:03:35 -08:00
Brent Simmons
ccd87040c3
Support multiple authors in RSS and Atom feeds.
2017-12-19 13:03:05 -08:00
Brent Simmons
83c49bf428
Add two tests for parsing Atom attachments. Thanks to Marco for finding some examples (they’re very rare).
2017-12-19 11:52:12 -08:00
Brent Simmons
b380d0597f
Test Omni Show and Macworld unique IDs. The Omni Show ids should come from the feed’s guids. Macworld’s unique IDs should be calculated, since the feed doesn’t have guids.
2017-12-19 11:20:40 -08:00
Brent Simmons
fefa96d259
Prefer permalink to link when creating a calculated unique ID.
2017-12-19 11:19:46 -08:00
Brent Simmons
a3dde79b84
Add test to make sure RSS parser is using guid for article.uniqueID.
2017-12-19 11:02:05 -08:00
Brent Simmons
a82cee29b8
Make RSParsedArticle calculate a unique ID only when there’s no guid. Otherwise use the guid. Do not attempt to create a globally-unique ID — that’s out of scope for the parser and should be (and is) handled at the app’s model layer.
2017-12-19 10:59:24 -08:00
Brent Simmons
7ccb531f0c
Parse Atom enclosures. However, I couldn’t find any in the wild, so there are no tests yet.
2017-12-19 10:17:09 -08:00
Brent Simmons
5b01f04afe
Save to disk right after importing OPML. Fix #249 .
2017-12-18 21:46:35 -08:00
Brent Simmons
fcda565d91
Remove references to tags. Fix #259 .
2017-12-18 18:20:13 -08:00
Brent Simmons
fb9a1d610c
Parse enclosures in RSS.
2017-12-18 15:35:50 -08:00
Brent Simmons
adf5a5e784
Add NSImage extension method to tint an image with a color.
2017-12-17 10:48:24 -08:00
Brent Simmons
0221eda956
Add Node.existingOrNewChildNode — recycles an existing node. Creates a new node only when needed.
2017-12-16 11:15:36 -08:00
Brent Simmons
859f479a89
Fix a memory leak that happened every time you added a feed. Use a weak delegate to avoid a retain cycle.
2017-12-13 21:19:12 -08:00
Brent Simmons
b04876185d
Clean up DownloadWithCacheManager’s cache at most every five minutes — it’s very expensive to do it on every request. This dramatically helps sidebar scrolling performance when you have a couple thousand feeds all trying to get their favicons.
2017-12-13 21:18:20 -08:00
Brent Simmons
3eb95ce63d
Fix OPML import performance regression. Fix #238 .
2017-12-11 23:12:54 -08:00
Brent Simmons
0b4a9f143e
Parse Feedbin articles.
2017-12-11 13:36:16 -08:00
Brent Simmons
8160d8e38e
Create Feedbin, FeedbinAccountDelegate, and FeedbinGetSubscriptionsDelegate.
2017-12-10 14:05:01 -08:00
Brent Simmons
6e93cc2718
Create FeedbinSubscription struct.
2017-12-10 14:04:14 -08:00
Brent Simmons
1d956c619d
Make APICall.init public.
2017-12-10 14:03:35 -08:00
Brent Simmons
89a74077d9
Create FeedbinSubscription struct.
2017-12-10 13:58:44 -08:00
Brent Simmons
8d7eb910da
Make APICall delegate based rather than defining a bunch of protocols.
2017-12-10 13:57:38 -08:00
Brent Simmons
de883ce082
Define string constants in JSONFeedParser rather than using literals all over the place. Also: remove a no-longer-needed do/try/catch.
2017-12-10 13:56:40 -08:00
Brent Simmons
cc3f77571b
Make JSONTypes public. Add JSONUtilities.
2017-12-10 13:53:00 -08:00
Brent Simmons
16b1918580
Continue work on web services client.
2017-12-10 12:31:10 -08:00
Brent Simmons
cc918daf37
Start work on web services support in RSWeb.
2017-12-09 11:27:06 -08:00
Brent Simmons
3d72ba4b44
Add case for detecting < https://www.natashatherobot.com/feed/ > as an RSS feed.
...
It’s missing the opening <rss> tag, but it has enough other distinct markers that we can detect it as RSS.
Add two tests to make sure it’s detected and that the parser handles it.
2017-12-07 20:05:58 -08:00
Brent Simmons
a488683550
Refresh all after importing OPML. Fix #59 .
2017-12-03 12:54:51 -08:00
Brent Simmons
0c176eccd0
Fetch all unread counts at startup. This is done with a single SQL call, and it’s done in the background, so performance hit should not be noticeable. Fix #138 .
2017-12-03 11:57:53 -08:00
Brent Simmons
c83e0ca68d
Do quite a bit less work on resizing the timeline. Fix #175 .
2017-12-02 22:18:43 -08:00
Brent Simmons
179c889d9b
Fix typo.
2017-12-02 21:35:02 -08:00
Brent Simmons
3da2521e8e
When adding a feed, update it right away rather than waiting for the next Refresh. Fix #147 . Fix #215 .
2017-12-02 17:47:08 -08:00
Brent Simmons
f99cd162bb
Add support for RSS 1.0 (RDF) feeds. Added so we can handle Pinboard feeds. (Not sure if anyone else is still using RSS 1.0.) Fix #231 .
2017-12-02 16:37:24 -08:00
Brent Simmons
35cb0fe078
Get rid of the lock. Add comment that Node is main-thread-only; add precondition to init method. Fix #230 .
2017-12-02 16:12:09 -08:00
Brent Simmons
e71d763443
Save feed.authors.
2017-12-02 14:20:58 -08:00
Brent Simmons
b5d8233955
Fix bug saving related objects for articles — authors, tags, and attachments.
2017-12-02 13:20:27 -08:00
Brent Simmons
f28d921aff
Avoid skipping parsing Dr. Drang’s JSON Feed, which can’t be detected that it’s a JSON Feed with only partial data, since it has the version element at the end. Add a test for this.
2017-12-01 13:19:30 -08:00
Brent Simmons
efcc4fedaa
Add tests for Dr. Drang’s JSON Feed.
2017-11-30 13:19:22 -08:00
Brent Simmons
1e528ee8b0
Fix bug detecting Macworld’s RSS feed as an RSS feed. The feed doesn’t start with the standard XML header.
2017-11-28 21:29:09 -08:00
Brent Simmons
6c36107320
Prefer Apple touch icons to other feed icons.
2017-11-26 20:40:07 -08:00
Brent Simmons
82dace2acc
Start FeedIconDownloader.
2017-11-26 13:48:40 -08:00
Brent Simmons
bfccda8c88
Get twitter:image:src from HTML metadata.
2017-11-26 11:49:01 -08:00
Brent Simmons
ff7695c290
Parse Open Graph images when parsing metadata from an HTML page.
2017-11-26 11:38:03 -08:00
Brent Simmons
18f6b177e9
Fix typo.
2017-11-25 20:24:12 -08:00
Brent Simmons
e026e159d1
Rebuild the feed dictionary at appropriate times. Fix #169 .
2017-11-25 18:05:20 -08:00
Brent Simmons
1047fa5a02
Use the proper index sets and so on to make deleting work from the sidebar again. Fix #192 .
2017-11-25 17:44:54 -08:00
Brent Simmons
7d579733f0
Add tests to HTMLFeedFinder for finding the best feed from a web page.
2017-11-25 16:48:42 -08:00
Brent Simmons
fce95bb5b6
Pull JSON feed from web page metadata (along with RSS and Atom, which already worked).
2017-11-25 16:48:13 -08:00
Brent Simmons
23af6b4d29
Adjust scoring in FeedSpecifier to slightly prefer JSON feeds.
2017-11-25 16:47:36 -08:00
Brent Simmons
489cf8e29b
Start redoing HTMLFeedFinderTests.
2017-11-25 16:34:40 -08:00
Brent Simmons
50f4e46913
Add 'json' as possible-feed match string.
2017-11-25 16:34:20 -08:00
Brent Simmons
68c01491fc
Note when feed settings change and update the sidebar cells.
2017-11-25 13:48:14 -08:00
Brent Simmons
9865bd8e51
Fix a crash on startup — detect when there are no feeds and don’t hit database.
2017-11-25 13:11:19 -08:00
Brent Simmons
97079108be
Add Atom parser test for getting the home page link. It passed, which means the bug I’m currently hunting (no favicon for Dr. Drang) is somewhere else.
2017-11-25 13:02:21 -08:00
Brent Simmons
0b5f470654
Check "icon" as well as "shortcut icon" when finding the favicon link in a web page. (See Macdrifter.com, for instance.)
2017-11-25 13:01:20 -08:00
Brent Simmons
55166e0979
Update a Feed with settings taken from the raw feed. (Some Feeds had no homePageURL set, which meant, in most cases, no favicons.)
2017-11-25 12:17:49 -08:00
Brent Simmons
bd8b7c6ed9
Implement debugDropConditionalGetInfo command. Fix #197 .
2017-11-25 11:13:15 -08:00
Brent Simmons
e4008b677f
Fix two typos in JSONFeedParser which kept the parser from getting the feed’s favicon and icon URLs. Also added a test for this.
2017-11-25 10:34:48 -08:00
Brent Simmons
32973c4c85
Fix an ambiguous call to download in DownloadWithCacheManager. I’m honestly not sure what function would have been called.
2017-11-24 13:11:41 -08:00
Brent Simmons
e4f65000b2
Replace Objective-C RSBinaryCache with Swift BinaryDiskCache in RSCore.
2017-11-24 13:10:22 -08:00
Brent Simmons
3282f0ec09
Create NSImage on background queue.
2017-11-23 12:15:33 -08:00
Brent Simmons
b4ff1785ab
Switch from download to downloadUsingCache where appropriate.
2017-11-23 10:29:00 -08:00
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