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
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
Brent Simmons
cb4027a951
Fix some build errors.
2017-10-01 11:28:44 -07:00
Brent Simmons
04612049f5
Make progress on adding feeds.
2017-10-01 10:59:35 -07:00
Brent Simmons
a910841c65
Add createFeed method.
2017-09-30 16:56:48 -07:00
Brent Simmons
1f677ca600
Edit some access permissions in Folder.
2017-09-30 11:00:18 -07:00
Brent Simmons
5ae70758fb
Perform a minor refactoring in Folder.swift.
2017-09-28 13:34:16 -07:00
Brent Simmons
3a4e545e22
Fix build errors in Account.framework.
2017-09-28 13:16:47 -07:00
Brent Simmons
1ec3484a95
Init Folder with an Account rather than an accountID.
2017-09-28 06:53:01 -07:00
Brent Simmons
48543bcfd6
Make progress reading/writing Account feeds and folders to disk.
2017-09-27 13:29:05 -07:00
Brent Simmons
55967f8731
Fix some build errors.
2017-09-26 21:43:40 -07:00
Brent Simmons
f187f6a9ef
Make Feed provide a disk dictionary.
2017-09-26 13:32:02 -07:00
Brent Simmons
9b566dd10d
Init feed with a disk dictionary.
2017-09-26 13:26:28 -07:00
Brent Simmons
8d9c9217dc
Make HTTPConditionalGetInfo serializable via a dictionary.
2017-09-26 13:16:46 -07:00
Brent Simmons
2978d4420b
Start work on adding feeds and folders.
2017-09-25 13:31:36 -07:00
Brent Simmons
21080a97fc
Start work on feed importing.
2017-09-24 22:35:57 -07:00
Brent Simmons
4d677b2055
Fix a bunch of build errors.
2017-09-24 12:24:44 -07:00
Brent Simmons
1ab282c23a
Do some cleanups on app code.
2017-09-23 12:17:14 -07:00
Brent Simmons
0843c10bc5
Remove accountInfo references. This was speculative anyway. I’ll figure out later what we actually need. (Which might be accountInfo after all, and might not be.)
2017-09-22 08:06:06 -07:00
Brent Simmons
6bb1deaa9e
Start Database unit tests with a blank file.
2017-09-21 18:23:42 -07:00
Brent Simmons
a7063f7a5d
Simplify filterIncomingArticles.
2017-09-21 18:14:37 -07:00
Brent Simmons
d9f0e53312
Switch to using DatabaseArticle over article dictionaries.
2017-09-21 13:25:14 -07:00
Brent Simmons
19e65dd076
Create DatabaseArticle to use instead of that article dictionary thing.
2017-09-21 12:59:08 -07:00
Brent Simmons
93db92d611
Use temporary article dictionaries when fetching articles.
2017-09-20 13:29:21 -07:00
Brent Simmons
f0eea49179
Start working of moving from stubArticles to article dictionaries.
2017-09-19 13:36:13 -07:00
Brent Simmons
8767aa3178
Continue work on non-optional article.status.
2017-09-19 08:07:06 -07:00
Brent Simmons
b28a849af6
Continue march toward non-optional article.status.
2017-09-18 22:00:35 -07:00
Brent Simmons
6db993075b
Make progress on making ArticleStatus a reference type and on making article.status non-optional.
2017-09-18 13:17:30 -07:00
Brent Simmons
ab43db7761
Get Data.framework building again.
2017-09-18 13:01:36 -07:00
Brent Simmons
622fd51d50
Make ArticleStatus a reference type. Make article.status non-optional.
2017-09-18 12:59:42 -07:00
Brent Simmons
54ca352a70
Continue fixing build errors.
2017-09-17 17:56:04 -07:00
Brent Simmons
92a60d8f06
Continue fixing build errors.
2017-09-17 17:03:58 -07:00
Brent Simmons
0336e30b0d
Continue to fix build errors.
2017-09-17 16:30:45 -07:00
Brent Simmons
6631a9c2f8
Continue fixing build errors.
2017-09-17 13:07:55 -07:00
Brent Simmons
c0ce68e64b
Fix some build errors.
2017-09-17 12:54:08 -07:00
Brent Simmons
1b391c262e
Continue working on build errors.
2017-09-17 12:34:10 -07:00
Brent Simmons
1c63e868c9
Delete dead code.
2017-09-17 12:20:59 -07:00
Brent Simmons
121fbf3c27
Move AccountManager to Account.framework.
2017-09-17 12:20:32 -07:00
Brent Simmons
e78fc0d696
Get Account.framework building.
2017-09-17 12:08:50 -07:00
Brent Simmons
306836766a
Fix build error in RSWeb.
2017-09-17 11:37:22 -07:00
Brent Simmons
4bb0325c45
Delete superseded code.
2017-09-17 11:32:58 -07:00
Brent Simmons
ba8d2c81e8
Create AccountDelegate. The actual implementation for each different type of Account will conform to AccountDelegate.
2017-09-16 15:30:26 -07:00
Brent Simmons
5715d2f221
Move Folder and Container from Data to Account.
2017-09-16 15:25:38 -07:00
Brent Simmons
1f35892791
Make AttachmentsTable use default implementation of save.
2017-09-16 13:10:03 -07:00
Brent Simmons
db757bcdb9
Implement marking statuses.
2017-09-16 11:04:29 -07:00
Brent Simmons
90c11bb687
Delete some unused code.
2017-09-16 10:38:54 -07:00
Brent Simmons
66129841a5
Use UnreadCountDictionary instead of UnreadCountTable.
2017-09-16 10:21:39 -07:00
Brent Simmons
72cfc84001
Cache statuses when fetching articles — since articles are fetched using a join statement with the statuses table.
2017-09-14 13:32:06 -07:00
Brent Simmons
80c8a848e9
Slightly simplify related-object adding code.
2017-09-13 21:52:11 -07:00
Brent Simmons
7563906f9b
Create Articles with attached objects.
2017-09-13 21:41:01 -07:00
Brent Simmons
57cf5a25d7
Fix some build errors.
2017-09-13 17:40:25 -07:00
Brent Simmons
1cfa11d032
Move save-using-cache code to DatabaseRelatedObjectsTable. Fix some build errors.
2017-09-13 13:29:52 -07:00
Brent Simmons
d284bf3757
Remove cache from Author since it’s now in AuthorsTable.
2017-09-12 22:27:36 -07:00
Brent Simmons
8f01e7e3b6
Fix build error.
2017-09-12 22:06:59 -07:00
Brent Simmons
8f12df8f5b
Move fetchObjectsWithIDs from AttachmentsTable to default protocol implementation since AuthorsTable needs the exact same thing.
2017-09-12 21:47:04 -07:00
Brent Simmons
9341515926
Save and fetch attachments. Use a cache.
2017-09-12 21:19:45 -07:00
Brent Simmons
b32c96c912
Prune DatabaseLookupTable some more. Get RSDatabase building again.
2017-09-11 21:58:22 -07:00
Brent Simmons
d77c4d763f
Add comment to RelatedObjectsMap.
2017-09-11 13:16:30 -07:00
Brent Simmons
45063d2d96
Remove cache from DatabaseLookupTable because it made the code too complex. If profiling says we need caching, we can add it back later.
2017-09-11 13:15:12 -07:00
Brent Simmons
258abab9f6
Rename *LookupTable data structures to *Map.
2017-09-11 13:11:29 -07:00
Brent Simmons
5ee58458a2
Make progress on related objects.
2017-09-11 06:46:32 -07:00
Brent Simmons
07a44f7af0
Fix some build errors in Database.framework.
2017-09-10 11:36:28 -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
7680760537
Fix some Database.framework build errors. Add Author cache.
2017-09-09 12:57:24 -07:00
Brent Simmons
4d816850d6
Delete some dead code.
2017-09-09 12:24:30 -07:00
Brent Simmons
3c47b23b8b
Add article.changesFrom() to get changes in an Article.
2017-09-09 12:09:48 -07:00
Brent Simmons
54b5100b09
Call saveUpdatedRelatedObjects when saving updated articles.
2017-09-09 11:10:15 -07:00
Brent Simmons
f3406088f3
Use a KeyPath to generalize code for checking for tags, attachments, and authors changes.
2017-09-09 11:02:02 -07:00
Brent Simmons
f40b400dd5
Make progress on saving updated articles.
2017-09-08 13:36:30 -07:00
Brent Simmons
9ee20ee270
Get Data.framework building again.
2017-09-07 21:00:30 -07:00
Brent Simmons
75603eefdc
Deal with fallout from moving Account to its own framework.
2017-09-07 20:51:51 -07:00
Brent Simmons
6a4fd38056
Continue mess-making. Start Account framework.
2017-09-07 20:41:25 -07:00
Brent Simmons
a92492eb91
Make further progress on saving articles from feeds.
2017-09-06 13:33:04 -07:00
Brent Simmons
d84c65c66f
Continue work on saving articles.
2017-09-05 08:53:45 -07:00
Brent Simmons
dadb4a4cd0
Continue to make a mess. Switching computers so I can sit with my laptop in the living room and wait for the Pagliacci Pizza guy to knock.
2017-09-04 18:29:02 -07:00
Brent Simmons
b0cb01a68e
Make a mess of things. Article and ArticleStatus are now immutable structs.
2017-09-04 17:10:02 -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
d017536d58
Make AttachmentsTable, AuthorsTable, and TagsTable classes instead of structs.
2017-09-02 10:13:37 -07:00
Brent Simmons
b783d1c062
Create and use a DatabaseRelatedObjectsTable protocol, which clarifies the relationships between different table types.
2017-09-02 10:11:19 -07:00
Brent Simmons
a00ac9c2ac
Implement database.fetchUnreadCounts.
2017-09-01 13:31:27 -07:00
Brent Simmons
66ae62233f
Start work on fetching unread counts.
2017-08-31 13:35:48 -07:00
Brent Simmons
f3bfa8811d
Implement marking statuses in memory and in database.
2017-08-29 13:32:36 -07:00
Brent Simmons
baabf842e1
Progress.
2017-08-27 13:03:15 -07:00
Brent Simmons
3c43732e25
Delete some commented-out code that has been superseded.
2017-08-26 16:44:39 -07:00
Brent Simmons
2d1c63403d
Make progress fetching articles.
2017-08-26 15:37:15 -07:00
Brent Simmons
2cefb87f20
Create ArticleCache, which wraps a weak-to-weak NSMapTable. An article is cached for as long as there’s an external (outside-the-cache) reference to the article.
2017-08-23 21:30:28 -07:00
Brent Simmons
cdb8446c86
Make Articles table own the various related and lookup tables.
2017-08-23 13:23:12 -07:00
Brent Simmons
becbf3d7b0
Fix Account-Database init method.
2017-08-22 07:45:09 -07:00
Brent Simmons
5860f774bd
Make Database.framework build. Doesn’t work, but it builds.
2017-08-21 13:31:14 -07:00
Brent Simmons
4010011b5a
Progress toward getting Database.framework to build. Mostly just commented stuff out.
2017-08-20 22:43:46 -07:00
Brent Simmons
9ddaaf5f5d
Decide on preliminary public API for Database.swift. Stub-out everything.
2017-08-20 21:23:17 -07:00
Brent Simmons
c164c29cde
Make attachments use a DatabaseLookupTable.
2017-08-20 17:46:15 -07:00
Brent Simmons
213b1d7a6f
Turn ObjectCache into DatabaseObjectCache — rather than a generic with a keypath, it works with DatabaseObject, which has a known databaseID property.
2017-08-20 16:03:09 -07:00
Brent Simmons
2ce577e9d4
Make progress on Database surgery.
2017-08-20 15:56:58 -07:00
Brent Simmons
54cfaefd81
Finish DatabaseLookupTable — well, except for testing and seeing if it actually works.
2017-08-20 15:03:05 -07:00
Brent Simmons
dccc44c920
Make progress saving relationships in DatabaseLookupTable.
2017-08-20 12:41:33 -07:00
Brent Simmons
e76beee988
Progress on relationships.
2017-08-19 22:07:31 -07:00
Brent Simmons
2d915a890e
Start DatabaseLookupTableCache.
2017-08-19 16:30:55 -07:00
Brent Simmons
0186aeffa2
Added Swift compile time check setting. Fixed issue, and then Xcode stopped beachballing, which means I can move back from my laptop to my iMac. Whew.
2017-08-19 12:27:54 -07:00
Brent Simmons
8d5d94e1a9
Checking in to switch computers BECAUSE XCODE IS JUST BEACHBALLING ON MY IMAC GODDAMNIT.
2017-08-19 11:43:52 -07:00
Brent Simmons
e7897e21d9
Start ToDo.ooutline. (OmniOutliner outline.)
2017-08-14 13:33:50 -07:00
Brent Simmons
177667d639
Remove one of the caches from DatabaseLookupTable.
2017-08-14 13:16:52 -07:00
Brent Simmons
a4b27075a7
More work on relationships.
2017-08-14 12:54:57 -07:00
Brent Simmons
7f5277f3e0
Using LookupTable.
2017-08-08 20:10:02 -07:00
Brent Simmons
2fe6b0e2a6
LookupTable.
2017-08-07 22:09:10 -07:00
Brent Simmons
67cb2c57d7
Make LookupTable not a DatabaseTable.
2017-08-07 20:03:38 -07:00
Brent Simmons
7f573c2b14
Continue progress on relationships.
2017-08-07 20:00:46 -07:00
Brent Simmons
7edc76cd6e
More progress on relationships.
2017-08-07 19:37:31 -07:00
Brent Simmons
4223808c74
Make progress on relationships.
2017-08-06 21:46:47 -07:00
Brent Simmons
570d70d8fe
Progress on lookup tables.
2017-08-06 21:16:13 -07:00
Brent Simmons
4503f771da
Attach authors.
2017-08-06 12:37:47 -07:00
Brent Simmons
c30e7eeb99
Get StatusesTable compiling.
2017-08-05 11:12:45 -07:00
Brent Simmons
9d37d88c2f
Make progress on Database.framework.
2017-08-03 21:10:01 -07:00
Brent Simmons
2ace9ec0d2
Get Data.framework building again.
2017-08-03 19:22:54 -07:00
Brent Simmons
b756f39cbe
Do things. I forget what, since it was yesterday or whatever. Progress, anyway.
2017-07-31 18:39:42 -07:00
Brent Simmons
c76d42b42f
Make progress on getting StatusTable to compile.
2017-07-30 11:55:46 -07:00
Brent Simmons
031617809f
Add uniquedObjects to ObjectCache.
2017-07-30 11:36:27 -07:00
Brent Simmons
32ae8ab1d8
Create ObjectCache and start using it.
2017-07-30 11:22:21 -07:00
Brent Simmons
bf11f88ea7
Continue moving functions to DatabaseTable.
2017-07-29 12:50:23 -07:00
Brent Simmons
77ba434878
Start moving common functions to DatabaseTable.
2017-07-29 12:29:05 -07:00
Brent Simmons
da9a974dff
Give DatabaseTable an RSDatabaseQueue.
2017-07-29 12:13:38 -07:00
Brent Simmons
02174012ec
Rename Manager to Table. Conform to DatabaseTable protocol.
2017-07-29 12:08:10 -07:00
Brent Simmons
961454a447
I don't remember what I was doing, but I should commit it. Back from vacation now. Which was lovely. (At the beach, with family.)
2017-07-29 11:26:19 -07:00
Brent Simmons
f293d5715c
Make DatabaseTable a protocol.
2017-07-16 20:51:08 -07:00
Brent Simmons
8fc4c3041d
Make progress on attachments. Build still broken.
2017-07-16 19:36:38 -07:00
Brent Simmons
13f8c4f9b1
Start work on Author management.
2017-07-13 13:38:47 -07:00
Brent Simmons
e3b8e6833b
Make progress on getting Database.framework to build.
2017-07-12 13:25:10 -07:00
Brent Simmons
f46a3ece48
Back out of ArticleID struct in Data.framework.
2017-07-12 12:55:48 -07:00
Brent Simmons
7ce19b0659
Add ArticleID struct.
2017-07-10 21:47:27 -07:00
Brent Simmons
c79580b87c
Continue work on tags. Build broken.
2017-07-10 20:54:00 -07:00
Brent Simmons
d02013cb3a
Set Database.framework to compile with Swift 4.
2017-07-08 16:04:43 -07:00
Brent Simmons
4594949df7
Remove Database stuff from Data.framework, since it’s going in Database.framework.
2017-07-08 16:01:26 -07:00
Brent Simmons
2e862de338
Move LocalStatusesManager to Data.framework.
2017-07-08 13:35:06 -07:00
Brent Simmons
d0a4effe07
Begin moving database stuff from LocalAccount.framework to Data.framework.
2017-07-08 13:32:09 -07:00
Brent Simmons
7ce6390f23
Set LocalAccount to use Swift 4. Broken build, though.
2017-07-08 13:25:28 -07:00
Brent Simmons
95c077b725
Replace import DataModel with import Data.
2017-07-08 13:18:59 -07:00
Brent Simmons
3f6ce99e21
Converrt Data.framework to Swift 4.
2017-07-08 13:14:39 -07:00
Brent Simmons
96e17818af
Remove DataModel.framework.
2017-07-08 13:12:46 -07:00
Brent Simmons
226addd0ba
Convert RSFeedFinder to Swift 4.
2017-07-08 13:10:55 -07:00
Brent Simmons
b30032657c
Convert RSTree to Swift 4.
2017-07-08 13:08:10 -07:00
Brent Simmons
d4d3b491af
Convert RSWeb to Swift 4.
2017-07-08 13:07:04 -07:00
Brent Simmons
ea387a228f
Convert RSCore to Swift 4. Build still broken.
2017-07-08 12:29:10 -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
698c1faa95
Continue refactoring. Build still broken.
2017-07-07 17:49:16 -07:00
Brent Simmons
41d8a7f3de
Continue surgery. Still broken build.
2017-07-03 15:04:31 -07:00
Brent Simmons
d47c60e6de
Work on getting Database.framework to build.
2017-07-03 11:20:14 -07:00
Brent Simmons
0379e5f525
Add to Database.framework. Delete RSXML.framework, since it’s been superseded by RSParser.framework. Everything still broken.
2017-07-03 10:40:48 -07:00
Brent Simmons
4a8f33b08a
Move Database.framework’s Info.plist.
2017-07-03 10:32:20 -07:00
Brent Simmons
d9cfab7d68
Continue major surgery. Everything is wildly broken.
2017-07-03 10:29:44 -07:00
Brent Simmons
944f05c71e
Commit major surgery but leave it unfinished. Everything is broken.
2017-07-01 17:22:19 -07:00
Brent Simmons
483e00b2da
Add more tests to RSParser.
2017-06-27 06:56:03 -07:00
Brent Simmons
c32e1a3933
Fix bug finding channel element in RSS-in-JSON parser.
2017-06-26 19:51:01 -07:00
Brent Simmons
49a5e58ff2
Move feedType function to FeedType.swift. Add a few more cases to FeedParserTypeTests.
2017-06-26 19:37:30 -07:00
Brent Simmons
3bb9887513
Add HTML tests to RSParser.
2017-06-25 18:11:38 -07:00
Brent Simmons
a53a0c4697
Add RSDateParserTests to RSParser.
2017-06-25 17:46:48 -07:00
Brent Simmons
67279b6796
Turn on more errors/warnings for RSParser, including treat-warnings-as-errors.
2017-06-25 17:42:30 -07:00
Brent Simmons
53574284dc
Add OPMLTests to RSParser.
2017-06-25 17:34:48 -07:00
Brent Simmons
c56f887ab4
Start adding RSParser tests.
2017-06-25 17:15:47 -07:00
Brent Simmons
b939d91da0
Get RSParser.framework building again.
2017-06-25 16:40:29 -07:00
Brent Simmons
e9c19e427a
Make it build. Add a README.
2017-06-25 16:32:07 -07:00
Brent Simmons
1ad4474b29
Make progress on getting RSParser.framework to build.
2017-06-25 14:06:01 -07:00
Brent Simmons
6f0e4a9da6
Start JSONFeed parser. No idea if it works yet.
2017-06-25 11:48:44 -07:00
Brent Simmons
aaa83e07aa
Extract some code into methods in the RSS-in-JSON parser.
2017-06-25 10:37:02 -07:00
Brent Simmons
8589c21091
Start RSS-in-JSON parser.
2017-06-25 10:23:30 -07:00
Brent Simmons
552ab693a3
Create common data structure for all feeds. Using Swift structs, because I love them so awfully much.
2017-06-20 22:00:19 -07:00
Brent Simmons
b00b2f39d7
Start work on turning RSXML.framework into RSParser.framework.
2017-06-20 21:18:46 -07:00
Andrew Carter
642955f1c9
Update sub-projects for Xcode 8.3.2
...
Apply recommended updates for Xcode 8.3.2 to eliminate the warnings.
2017-06-01 16:01:41 -07:00
Brent Simmons
5c4d51dcd6
Add Sparkle. Update SUFeedURL to use https, since I just added https to ranchero.com. (Thanks to Let’s Encrypt!).
2017-05-29 15:44:33 -07:00
Brent Simmons
3773f7b1bf
Replace Ranchero Software with Ranchero Software, LLC.
2017-05-29 13:17:58 -07:00
Brent Simmons
3c083c712b
Show progress indicator while refreshing. Fix #31 .
2017-05-29 12:22:06 -07:00
Brent Simmons
e79dbaef68
Add Help menu items.
2017-05-27 13:37:50 -07:00
Brent Simmons
e1aca9375c
Remove unneeded drop-index SQLite call.
2017-05-27 11:35:03 -07:00
Brent Simmons
19ce82329b
Add a whole ton more code.
2017-05-27 10:43:27 -07:00
Brent Simmons
3d5358af09
Unbreak the build. Don’t know if anything works, but at least it builds.
2017-05-26 13:07:55 -07:00
Brent Simmons
f49c552bf9
Add UniqueIdentifier file. Fix a couple build errors.
2017-05-24 13:29:40 -07:00
Brent Simmons
a336140a9a
Make HTTPConditionalGetInfo serialize and deserialize to a plist.
2017-05-24 13:22:57 -07:00
Brent Simmons
f17f31ba12
Fix one of several build errors.
2017-05-23 13:31:56 -07:00
Brent Simmons
e4d1ed8bd9
Add LocalAccount framework. Note: build is broken.
2017-05-23 13:24:42 -07:00
Brent Simmons
91d81831e9
Add DataModel framework.
2017-05-23 13:14:30 -07:00
Brent Simmons
dec10ad0a1
Add RSTextDrawing framework.
2017-05-22 13:32:05 -07:00
Brent Simmons
b2e3da5cb6
Add RSTree framework.
2017-05-22 13:29:37 -07:00
Brent Simmons
5c3870a03c
Add RSFeedFinder framework.
2017-05-22 13:27:54 -07:00
Brent Simmons
074bbca652
Add RSWeb framework.
2017-05-22 13:17:28 -07:00
Brent Simmons
02503fadb9
Add RSCore framework.
2017-05-22 13:13:40 -07:00
Brent Simmons
b506900e3d
Add RSDatabase.
2017-05-22 13:09:19 -07:00
Brent Simmons
05a90742a6
Add RSXML framework.
2017-05-22 13:06:02 -07:00