Commit Graph

67 Commits

Author SHA1 Message Date
Brent Simmons e181822c48 Merge, manually, fix and tests for detecting as JSON Feed feeds which do slash-escaping, such as Curt’s feed <http://curtclifton.net/feed.json>. 2018-01-08 13:13:15 -08:00
Brent Simmons 1e90237e7e Fix bug decoding &#39; entities.
1. Fix typo in the entities dictionary — add the actual ' character.
2. Add EntityDecodingTests.swift and a test for this.
2017-12-30 10:24:44 -08:00
Brent Simmons 20dccb1060 Add license and Readme from RSParser’s separate open source project. Just part of keeping these both in sync. 2017-12-30 10:24:04 -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 fb9a1d610c Parse enclosures in RSS. 2017-12-18 15:35:50 -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 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 179c889d9b Fix typo. 2017-12-02 21:35:02 -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 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 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 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 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 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 ca081c41a9 Decode HTML entities in the JSON Feed parser for content_html. Fix #176. 2017-11-18 12:41:15 -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 2bb0cdb0ba Fix build failures in OPMLTests. Tests all still pass in RSParser. 2017-11-04 10:25:13 -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 649f62207f Fix OPML importing. 2017-10-21 21:00:21 -07:00
Brent Simmons ca611623aa Simplify Container and its function implementations. 2017-10-07 21:41:21 -07:00
Brent Simmons 199dd0e247 Fix bug loading feeds from disk. 2017-10-05 21:08:27 -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
Brent Simmons b28a849af6 Continue march toward non-optional article.status. 2017-09-18 22:00:35 -07:00
Brent Simmons 2943fca8e3 Make ParsedAttachment require a URL. 2017-09-10 11:21:49 -07:00
Brent Simmons 9ad83e58b3 Make tags and attachments sets instead of arrays. 2017-09-10 11:18:15 -07:00
Brent Simmons b1bd1ac75a Use a Set<ParsedAuthor> instead of [ParsedAuthor] array. 2017-09-10 11:02:05 -07:00
Brent Simmons 9a45ab7996 Marked ParsedFeed.hubs a Set<ParsedHub>. 2017-09-10 10:53:24 -07:00
Brent Simmons 7415131e8d Make ParsedFeed.items a Set<ParsedItem>. Fix some build errors in Database.framework. 2017-09-09 18:46:58 -07:00
Brent Simmons fb121f8a8c Make more progress on saving/updating articles. 2017-09-02 16:08:02 -07:00
Brent Simmons d33d8a0330 Make progress toward saving/updating articles. 2017-09-02 14:19:42 -07:00
Brent Simmons 1e856b7924 Convert RSParser to Swift 4. Now using Xcode 9. Buid still broken. 2017-07-08 12:21:29 -07:00
Brent Simmons d47c60e6de Work on getting Database.framework to build. 2017-07-03 11:20:14 -07:00