Commit Graph

330 Commits

Author SHA1 Message Date
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