From d87f68a006040de555aba5da680b6a63058cbb1e Mon Sep 17 00:00:00 2001 From: Jeremy Beker Date: Wed, 19 Jun 2019 12:25:37 -0400 Subject: [PATCH] Renamed GoogleReaderCompatible to just Reader --- Frameworks/Account/Account.swift | 14 +-- .../Account/Account.xcodeproj/project.pbxproj | 62 +++++------ .../ReaderAPIAccountDelegate.swift} | 54 ++++----- .../ReaderAPICaller.swift} | 104 +++++++++--------- .../ReaderAPIEntry.swift} | 20 ++-- .../ReaderAPISubscription.swift} | 25 ++--- .../ReaderAPITag.swift} | 8 +- .../ReaderAPITagging.swift} | 6 +- .../ReaderAPIUnreadEntry.swift} | 8 +- .../Accounts/AccountsAddViewController.swift | 8 +- .../AccountsPreferencesViewController.swift | 2 +- ...erCompatible.xib => AccountsReaderAPI.xib} | 14 +-- ...> AccountsReaderAPIWindowController.swift} | 8 +- Mac/Scriptability/Account+Scriptability.swift | 2 +- NetNewsWire.xcodeproj/project.pbxproj | 24 ++-- ...ift => SettingsReaderAPIAccountView.swift} | 14 +-- 16 files changed, 183 insertions(+), 190 deletions(-) rename Frameworks/Account/{GoogleReaderCompatible/GoogleReaderCompatibleAccountDelegate.swift => ReaderAPI/ReaderAPIAccountDelegate.swift} (93%) rename Frameworks/Account/{GoogleReaderCompatible/GoogleReaderCompatibleAPICaller.swift => ReaderAPI/ReaderAPICaller.swift} (86%) rename Frameworks/Account/{GoogleReaderCompatible/GoogleReaderCompatibleEntry.swift => ReaderAPI/ReaderAPIEntry.swift} (83%) rename Frameworks/Account/{GoogleReaderCompatible/GoogleReaderCompatibleSubscription.swift => ReaderAPI/ReaderAPISubscription.swift} (71%) rename Frameworks/Account/{GoogleReaderCompatible/GoogleReaderCompatibleTag.swift => ReaderAPI/ReaderAPITag.swift} (66%) rename Frameworks/Account/{GoogleReaderCompatible/GoogleReaderCompatibleTagging.swift => ReaderAPI/ReaderAPITagging.swift} (76%) rename Frameworks/Account/{GoogleReaderCompatible/GoogleReaderCompatibleUnreadEntry.swift => ReaderAPI/ReaderAPIUnreadEntry.swift} (61%) rename Mac/Preferences/Accounts/{AccountsGoogleReaderCompatible.xib => AccountsReaderAPI.xib} (97%) rename Mac/Preferences/Accounts/{AccountsGoogleReaderCompatibleWindowController.swift => AccountsReaderAPIWindowController.swift} (92%) rename iOS/Settings/{SettingsGoogleReaderCompatibleAccountView.swift => SettingsReaderAPIAccountView.swift} (88%) diff --git a/Frameworks/Account/Account.swift b/Frameworks/Account/Account.swift index fa1adca3c..a498c04ce 100644 --- a/Frameworks/Account/Account.swift +++ b/Frameworks/Account/Account.swift @@ -33,7 +33,7 @@ public enum AccountType: Int { case feedbin = 17 case feedWrangler = 18 case newsBlur = 19 - case googleReaderCompatible = 20 + case googleReaderAPI = 20 // TODO: more } @@ -217,8 +217,8 @@ public final class Account: DisplayNameProvider, UnreadCountProvider, Container, self.delegate = LocalAccountDelegate() case .feedbin: self.delegate = FeedbinAccountDelegate(dataFolder: dataFolder, transport: transport) - case .googleReaderCompatible: - self.delegate = GoogleReaderCompatibleAccountDelegate(dataFolder: dataFolder, transport: transport) + case .googleReaderAPI: + self.delegate = ReaderAPIAccountDelegate(dataFolder: dataFolder, transport: transport) default: fatalError("Only Local and Feedbin accounts are supported") } @@ -246,8 +246,8 @@ public final class Account: DisplayNameProvider, UnreadCountProvider, Container, defaultName = "FeedWrangler" case .newsBlur: defaultName = "NewsBlur" - case .googleReaderCompatible: - defaultName = "Google Reader Compatible" + case .googleReaderAPI: + defaultName = "Reader" } NotificationCenter.default.addObserver(self, selector: #selector(downloadProgressDidChange(_:)), name: .DownloadProgressDidChange, object: nil) @@ -327,8 +327,8 @@ public final class Account: DisplayNameProvider, UnreadCountProvider, Container, LocalAccountDelegate.validateCredentials(transport: transport, credentials: credentials, completion: completion) case .feedbin: FeedbinAccountDelegate.validateCredentials(transport: transport, credentials: credentials, completion: completion) - case .googleReaderCompatible: - GoogleReaderCompatibleAccountDelegate.validateCredentials(transport: transport, credentials: credentials, endpoint: endpoint, completion: completion) + case .googleReaderAPI: + ReaderAPIAccountDelegate.validateCredentials(transport: transport, credentials: credentials, endpoint: endpoint, completion: completion) default: break } diff --git a/Frameworks/Account/Account.xcodeproj/project.pbxproj b/Frameworks/Account/Account.xcodeproj/project.pbxproj index 0003bb8a7..3a6f1fd8b 100644 --- a/Frameworks/Account/Account.xcodeproj/project.pbxproj +++ b/Frameworks/Account/Account.xcodeproj/project.pbxproj @@ -35,13 +35,13 @@ 51E490362288C37100C791F0 /* FeedbinDate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 51E490352288C37100C791F0 /* FeedbinDate.swift */; }; 51E59599228C77BC00FCC42B /* FeedbinUnreadEntry.swift in Sources */ = {isa = PBXBuildFile; fileRef = 51E59598228C77BC00FCC42B /* FeedbinUnreadEntry.swift */; }; 51E5959B228C781500FCC42B /* FeedbinStarredEntry.swift in Sources */ = {isa = PBXBuildFile; fileRef = 51E5959A228C781500FCC42B /* FeedbinStarredEntry.swift */; }; - 552032F8229D5D5A009559E0 /* GoogleReaderCompatibleEntry.swift in Sources */ = {isa = PBXBuildFile; fileRef = 552032ED229D5D5A009559E0 /* GoogleReaderCompatibleEntry.swift */; }; - 552032F9229D5D5A009559E0 /* GoogleReaderCompatibleSubscription.swift in Sources */ = {isa = PBXBuildFile; fileRef = 552032EE229D5D5A009559E0 /* GoogleReaderCompatibleSubscription.swift */; }; - 552032FB229D5D5A009559E0 /* GoogleReaderCompatibleTag.swift in Sources */ = {isa = PBXBuildFile; fileRef = 552032F0229D5D5A009559E0 /* GoogleReaderCompatibleTag.swift */; }; - 552032FC229D5D5A009559E0 /* GoogleReaderCompatibleUnreadEntry.swift in Sources */ = {isa = PBXBuildFile; fileRef = 552032F1229D5D5A009559E0 /* GoogleReaderCompatibleUnreadEntry.swift */; }; - 552032FD229D5D5A009559E0 /* GoogleReaderCompatibleTagging.swift in Sources */ = {isa = PBXBuildFile; fileRef = 552032F2229D5D5A009559E0 /* GoogleReaderCompatibleTagging.swift */; }; - 552032FE229D5D5A009559E0 /* GoogleReaderCompatibleAccountDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 552032F3229D5D5A009559E0 /* GoogleReaderCompatibleAccountDelegate.swift */; }; - 55203300229D5D5A009559E0 /* GoogleReaderCompatibleAPICaller.swift in Sources */ = {isa = PBXBuildFile; fileRef = 552032F5229D5D5A009559E0 /* GoogleReaderCompatibleAPICaller.swift */; }; + 552032F8229D5D5A009559E0 /* ReaderAPIEntry.swift in Sources */ = {isa = PBXBuildFile; fileRef = 552032ED229D5D5A009559E0 /* ReaderAPIEntry.swift */; }; + 552032F9229D5D5A009559E0 /* ReaderAPISubscription.swift in Sources */ = {isa = PBXBuildFile; fileRef = 552032EE229D5D5A009559E0 /* ReaderAPISubscription.swift */; }; + 552032FB229D5D5A009559E0 /* ReaderAPITag.swift in Sources */ = {isa = PBXBuildFile; fileRef = 552032F0229D5D5A009559E0 /* ReaderAPITag.swift */; }; + 552032FC229D5D5A009559E0 /* ReaderAPIUnreadEntry.swift in Sources */ = {isa = PBXBuildFile; fileRef = 552032F1229D5D5A009559E0 /* ReaderAPIUnreadEntry.swift */; }; + 552032FD229D5D5A009559E0 /* ReaderAPITagging.swift in Sources */ = {isa = PBXBuildFile; fileRef = 552032F2229D5D5A009559E0 /* ReaderAPITagging.swift */; }; + 552032FE229D5D5A009559E0 /* ReaderAPIAccountDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 552032F3229D5D5A009559E0 /* ReaderAPIAccountDelegate.swift */; }; + 55203300229D5D5A009559E0 /* ReaderAPICaller.swift in Sources */ = {isa = PBXBuildFile; fileRef = 552032F5229D5D5A009559E0 /* ReaderAPICaller.swift */; }; 841973FE1F6DD1BC006346C4 /* RSCore.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 841973EF1F6DD19E006346C4 /* RSCore.framework */; }; 841973FF1F6DD1C5006346C4 /* RSParser.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 841973FA1F6DD1AC006346C4 /* RSParser.framework */; }; 841974011F6DD1EC006346C4 /* Folder.swift in Sources */ = {isa = PBXBuildFile; fileRef = 841974001F6DD1EC006346C4 /* Folder.swift */; }; @@ -143,13 +143,13 @@ 51E490352288C37100C791F0 /* FeedbinDate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = FeedbinDate.swift; sourceTree = ""; }; 51E59598228C77BC00FCC42B /* FeedbinUnreadEntry.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = FeedbinUnreadEntry.swift; sourceTree = ""; }; 51E5959A228C781500FCC42B /* FeedbinStarredEntry.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = FeedbinStarredEntry.swift; sourceTree = ""; }; - 552032ED229D5D5A009559E0 /* GoogleReaderCompatibleEntry.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = GoogleReaderCompatibleEntry.swift; sourceTree = ""; }; - 552032EE229D5D5A009559E0 /* GoogleReaderCompatibleSubscription.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = GoogleReaderCompatibleSubscription.swift; sourceTree = ""; }; - 552032F0229D5D5A009559E0 /* GoogleReaderCompatibleTag.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = GoogleReaderCompatibleTag.swift; sourceTree = ""; }; - 552032F1229D5D5A009559E0 /* GoogleReaderCompatibleUnreadEntry.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = GoogleReaderCompatibleUnreadEntry.swift; sourceTree = ""; }; - 552032F2229D5D5A009559E0 /* GoogleReaderCompatibleTagging.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = GoogleReaderCompatibleTagging.swift; sourceTree = ""; }; - 552032F3229D5D5A009559E0 /* GoogleReaderCompatibleAccountDelegate.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = GoogleReaderCompatibleAccountDelegate.swift; sourceTree = ""; }; - 552032F5229D5D5A009559E0 /* GoogleReaderCompatibleAPICaller.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = GoogleReaderCompatibleAPICaller.swift; sourceTree = ""; }; + 552032ED229D5D5A009559E0 /* ReaderAPIEntry.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ReaderAPIEntry.swift; sourceTree = ""; }; + 552032EE229D5D5A009559E0 /* ReaderAPISubscription.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ReaderAPISubscription.swift; sourceTree = ""; }; + 552032F0229D5D5A009559E0 /* ReaderAPITag.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ReaderAPITag.swift; sourceTree = ""; }; + 552032F1229D5D5A009559E0 /* ReaderAPIUnreadEntry.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ReaderAPIUnreadEntry.swift; sourceTree = ""; }; + 552032F2229D5D5A009559E0 /* ReaderAPITagging.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ReaderAPITagging.swift; sourceTree = ""; }; + 552032F3229D5D5A009559E0 /* ReaderAPIAccountDelegate.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ReaderAPIAccountDelegate.swift; sourceTree = ""; }; + 552032F5229D5D5A009559E0 /* ReaderAPICaller.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ReaderAPICaller.swift; sourceTree = ""; }; 841973E81F6DD19E006346C4 /* RSCore.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = RSCore.xcodeproj; path = ../RSCore/RSCore.xcodeproj; sourceTree = ""; }; 841973F41F6DD1AC006346C4 /* RSParser.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = RSParser.xcodeproj; path = ../RSParser/RSParser.xcodeproj; sourceTree = ""; }; 841974001F6DD1EC006346C4 /* Folder.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Folder.swift; sourceTree = ""; }; @@ -236,18 +236,18 @@ path = JSON; sourceTree = ""; }; - 552032EA229D5D5A009559E0 /* GoogleReaderCompatible */ = { + 552032EA229D5D5A009559E0 /* ReaderAPI */ = { isa = PBXGroup; children = ( - 552032ED229D5D5A009559E0 /* GoogleReaderCompatibleEntry.swift */, - 552032EE229D5D5A009559E0 /* GoogleReaderCompatibleSubscription.swift */, - 552032F0229D5D5A009559E0 /* GoogleReaderCompatibleTag.swift */, - 552032F1229D5D5A009559E0 /* GoogleReaderCompatibleUnreadEntry.swift */, - 552032F2229D5D5A009559E0 /* GoogleReaderCompatibleTagging.swift */, - 552032F3229D5D5A009559E0 /* GoogleReaderCompatibleAccountDelegate.swift */, - 552032F5229D5D5A009559E0 /* GoogleReaderCompatibleAPICaller.swift */, + 552032ED229D5D5A009559E0 /* ReaderAPIEntry.swift */, + 552032EE229D5D5A009559E0 /* ReaderAPISubscription.swift */, + 552032F0229D5D5A009559E0 /* ReaderAPITag.swift */, + 552032F1229D5D5A009559E0 /* ReaderAPIUnreadEntry.swift */, + 552032F2229D5D5A009559E0 /* ReaderAPITagging.swift */, + 552032F3229D5D5A009559E0 /* ReaderAPIAccountDelegate.swift */, + 552032F5229D5D5A009559E0 /* ReaderAPICaller.swift */, ); - path = GoogleReaderCompatible; + path = ReaderAPI; sourceTree = ""; }; 841973E91F6DD19E006346C4 /* Products */ = { @@ -330,7 +330,7 @@ 5165D71F22835E9800D9D53D /* FeedFinder */, 8419742B1F6DDE84006346C4 /* LocalAccount */, 84245C7D1FDDD2580074AFBB /* Feedbin */, - 552032EA229D5D5A009559E0 /* GoogleReaderCompatible */, + 552032EA229D5D5A009559E0 /* ReaderAPI */, 848935031F62484F00CEBD24 /* AccountTests */, 848934F71F62484F00CEBD24 /* Products */, 8469F80F1F6DC3C10084783E /* Frameworks */, @@ -544,13 +544,13 @@ buildActionMask = 2147483647; files = ( 84C8B3F41F89DE430053CCA6 /* DataExtensions.swift in Sources */, - 552032F9229D5D5A009559E0 /* GoogleReaderCompatibleSubscription.swift in Sources */, + 552032F9229D5D5A009559E0 /* ReaderAPISubscription.swift in Sources */, 84C3654A1F899F3B001EC85C /* CombinedRefreshProgress.swift in Sources */, 8469F81C1F6DD15E0084783E /* Account.swift in Sources */, 5144EA4E227B829A00D19003 /* FeedbinAccountDelegate.swift in Sources */, 51E5959B228C781500FCC42B /* FeedbinStarredEntry.swift in Sources */, 846E77451F6EF9B900A165E2 /* Container.swift in Sources */, - 552032FD229D5D5A009559E0 /* GoogleReaderCompatibleTagging.swift in Sources */, + 552032FD229D5D5A009559E0 /* ReaderAPITagging.swift in Sources */, 84F73CF1202788D90000BCEF /* ArticleFetcher.swift in Sources */, 841974251F6DDCE4006346C4 /* AccountDelegate.swift in Sources */, 5165D73122837F3400D9D53D /* InitialFeedDownloader.swift in Sources */, @@ -564,15 +564,15 @@ 84B99C9F1FAE8D3200ECDEDB /* ContainerPath.swift in Sources */, 5133231122810EB200C30F19 /* FeedbinIcon.swift in Sources */, 846E77501F6EF9C400A165E2 /* LocalAccountRefresher.swift in Sources */, - 55203300229D5D5A009559E0 /* GoogleReaderCompatibleAPICaller.swift in Sources */, + 55203300229D5D5A009559E0 /* ReaderAPICaller.swift in Sources */, 51E3EB41229AF61B00645299 /* AccountError.swift in Sources */, 51E59599228C77BC00FCC42B /* FeedbinUnreadEntry.swift in Sources */, - 552032F8229D5D5A009559E0 /* GoogleReaderCompatibleEntry.swift in Sources */, - 552032FB229D5D5A009559E0 /* GoogleReaderCompatibleTag.swift in Sources */, + 552032F8229D5D5A009559E0 /* ReaderAPIEntry.swift in Sources */, + 552032FB229D5D5A009559E0 /* ReaderAPITag.swift in Sources */, 5165D72822835F7800D9D53D /* FeedFinder.swift in Sources */, 51D58755227F53BE00900287 /* FeedbinTag.swift in Sources */, - 552032FE229D5D5A009559E0 /* GoogleReaderCompatibleAccountDelegate.swift in Sources */, - 552032FC229D5D5A009559E0 /* GoogleReaderCompatibleUnreadEntry.swift in Sources */, + 552032FE229D5D5A009559E0 /* ReaderAPIAccountDelegate.swift in Sources */, + 552032FC229D5D5A009559E0 /* ReaderAPIUnreadEntry.swift in Sources */, 84D09623217418DC00D77525 /* FeedbinTagging.swift in Sources */, 84CAD7161FDF2E22000F0755 /* FeedbinEntry.swift in Sources */, 5165D72A22835F7D00D9D53D /* HTMLFeedFinder.swift in Sources */, diff --git a/Frameworks/Account/GoogleReaderCompatible/GoogleReaderCompatibleAccountDelegate.swift b/Frameworks/Account/ReaderAPI/ReaderAPIAccountDelegate.swift similarity index 93% rename from Frameworks/Account/GoogleReaderCompatible/GoogleReaderCompatibleAccountDelegate.swift rename to Frameworks/Account/ReaderAPI/ReaderAPIAccountDelegate.swift index 1a4f666c7..6c2143f66 100644 --- a/Frameworks/Account/GoogleReaderCompatible/GoogleReaderCompatibleAccountDelegate.swift +++ b/Frameworks/Account/ReaderAPI/ReaderAPIAccountDelegate.swift @@ -1,5 +1,5 @@ // -// GoogleReaderCompatibleAccountDelegate.swift +// ReaderAPIAccountDelegate.swift // Account // // Created by Jeremy Beker on 5/28/19. @@ -19,17 +19,17 @@ import RSWeb import SyncDatabase import os.log -public enum GoogleReaderCompatibleAccountDelegateError: String, Error { +public enum ReaderAPIAccountDelegateError: String, Error { case invalidParameter = "There was an invalid parameter passed." case invalidResponse = "There was an invalid response from the server." } -final class GoogleReaderCompatibleAccountDelegate: AccountDelegate { +final class ReaderAPIAccountDelegate: AccountDelegate { private let database: SyncDatabase - private let caller: GoogleReaderCompatibleAPICaller - private var log = OSLog(subsystem: Bundle.main.bundleIdentifier!, category: "GoogleReaderCompatible") + private let caller: ReaderAPICaller + private var log = OSLog(subsystem: Bundle.main.bundleIdentifier!, category: "ReaderAPI") let supportsSubFolders = false let usesTags = true @@ -61,7 +61,7 @@ final class GoogleReaderCompatibleAccountDelegate: AccountDelegate { if transport != nil { - caller = GoogleReaderCompatibleAPICaller(transport: transport!) + caller = ReaderAPICaller(transport: transport!) } else { @@ -78,7 +78,7 @@ final class GoogleReaderCompatibleAccountDelegate: AccountDelegate { sessionConfiguration.httpAdditionalHeaders = userAgentHeaders } - caller = GoogleReaderCompatibleAPICaller(transport: URLSession(configuration: sessionConfiguration)) + caller = ReaderAPICaller(transport: URLSession(configuration: sessionConfiguration)) } @@ -547,7 +547,7 @@ final class GoogleReaderCompatibleAccountDelegate: AccountDelegate { return } - let caller = GoogleReaderCompatibleAPICaller(transport: transport) + let caller = ReaderAPICaller(transport: transport) caller.credentials = credentials caller.validateCredentials(endpoint: endpoint) { result in DispatchQueue.main.async { @@ -561,7 +561,7 @@ final class GoogleReaderCompatibleAccountDelegate: AccountDelegate { // MARK: Private -private extension GoogleReaderCompatibleAccountDelegate { +private extension ReaderAPIAccountDelegate { func refreshAccount(_ account: Account, completion: @escaping (Result) -> Void) { @@ -580,7 +580,7 @@ private extension GoogleReaderCompatibleAccountDelegate { } - func syncFolders(_ account: Account, _ tags: [GoogleReaderCompatibleTag]?) { + func syncFolders(_ account: Account, _ tags: [ReaderAPITag]?) { guard let tags = tags else { return } @@ -588,7 +588,7 @@ private extension GoogleReaderCompatibleAccountDelegate { let tagNames = tags.filter { $0.type == "folder" }.map { $0.tagID.replacingOccurrences(of: "user/-/label/", with: "") } - // Delete any folders not at GoogleReaderCompatible + // Delete any folders not at Reader if let folders = account.folders { folders.forEach { folder in if !tagNames.contains(folder.name ?? "") { @@ -611,7 +611,7 @@ private extension GoogleReaderCompatibleAccountDelegate { } }() - // Make any folders GoogleReaderCompatible has, but we don't + // Make any folders Reader has, but we don't tagNames.forEach { tagName in if !folderNames.contains(tagName) { DispatchQueue.main.sync { @@ -647,7 +647,7 @@ private extension GoogleReaderCompatibleAccountDelegate { } - func syncFeeds(_ account: Account, _ subscriptions: [GoogleReaderCompatibleSubscription]?) { + func syncFeeds(_ account: Account, _ subscriptions: [ReaderAPISubscription]?) { guard let subscriptions = subscriptions else { return } @@ -697,7 +697,7 @@ private extension GoogleReaderCompatibleAccountDelegate { } - func syncTaggings(_ account: Account, _ subscriptions: [GoogleReaderCompatibleSubscription]?) { + func syncTaggings(_ account: Account, _ subscriptions: [ReaderAPISubscription]?) { guard let subscriptions = subscriptions else { return } @@ -712,7 +712,7 @@ private extension GoogleReaderCompatibleAccountDelegate { } }() - let taggingsDict = subscriptions.reduce([String: [GoogleReaderCompatibleSubscription]]()) { (dict, subscription) in + let taggingsDict = subscriptions.reduce([String: [ReaderAPISubscription]]()) { (dict, subscription) in var taggedFeeds = dict // For each category that this feed belongs to, add the feed to that name in the dict @@ -834,7 +834,7 @@ private extension GoogleReaderCompatibleAccountDelegate { } } - func decideBestFeedChoice(account: Account, url: String, name: String?, container: Container, choices: [GoogleReaderCompatibleSubscriptionChoice], completion: @escaping (Result) -> Void) { + func decideBestFeedChoice(account: Account, url: String, name: String?, container: Container, choices: [ReaderAPISubscriptionChoice], completion: @escaping (Result) -> Void) { let feedSpecifiers: [FeedSpecifier] = choices.map { choice in let source = url == choice.url ? FeedSpecifier.Source.UserEntered : FeedSpecifier.Source.HTMLLink @@ -847,18 +847,18 @@ private extension GoogleReaderCompatibleAccountDelegate { createFeed(for: account, url: bestSubscription.url, name: name, container: container, completion: completion) } else { DispatchQueue.main.async { - completion(.failure(GoogleReaderCompatibleAccountDelegateError.invalidParameter)) + completion(.failure(ReaderAPIAccountDelegateError.invalidParameter)) } } } else { DispatchQueue.main.async { - completion(.failure(GoogleReaderCompatibleAccountDelegateError.invalidParameter)) + completion(.failure(ReaderAPIAccountDelegateError.invalidParameter)) } } } - func createFeed( account: Account, subscription sub: GoogleReaderCompatibleSubscription, name: String?, container: Container, completion: @escaping (Result) -> Void) { + func createFeed( account: Account, subscription sub: ReaderAPISubscription, name: String?, container: Container, completion: @escaping (Result) -> Void) { DispatchQueue.main.async { @@ -1013,7 +1013,7 @@ private extension GoogleReaderCompatibleAccountDelegate { } - func processEntries(account: Account, entries: [GoogleReaderCompatibleEntry]?, completion: @escaping (() -> Void)) { + func processEntries(account: Account, entries: [ReaderAPIEntry]?, completion: @escaping (() -> Void)) { let parsedItems = mapEntriesToParsedItems(account: account, entries: entries) let parsedMap = Dictionary(grouping: parsedItems, by: { item in item.feedURL } ) @@ -1042,7 +1042,7 @@ private extension GoogleReaderCompatibleAccountDelegate { } - func mapEntriesToParsedItems(account: Account, entries: [GoogleReaderCompatibleEntry]?) -> Set { + func mapEntriesToParsedItems(account: Account, entries: [ReaderAPIEntry]?) -> Set { guard let entries = entries else { return Set() @@ -1065,11 +1065,11 @@ private extension GoogleReaderCompatibleAccountDelegate { return } - let GoogleReaderCompatibleUnreadArticleIDs = Set(articleIDs.map { String($0) } ) + let unreadArticleIDs = Set(articleIDs.map { String($0) } ) let currentUnreadArticleIDs = account.fetchUnreadArticleIDs() // Mark articles as unread - let deltaUnreadArticleIDs = GoogleReaderCompatibleUnreadArticleIDs.subtracting(currentUnreadArticleIDs) + let deltaUnreadArticleIDs = unreadArticleIDs.subtracting(currentUnreadArticleIDs) let markUnreadArticles = account.fetchArticles(forArticleIDs: deltaUnreadArticleIDs) DispatchQueue.main.async { _ = account.update(markUnreadArticles, statusKey: .read, flag: false) @@ -1085,7 +1085,7 @@ private extension GoogleReaderCompatibleAccountDelegate { } // Mark articles as read - let deltaReadArticleIDs = currentUnreadArticleIDs.subtracting(GoogleReaderCompatibleUnreadArticleIDs) + let deltaReadArticleIDs = currentUnreadArticleIDs.subtracting(unreadArticleIDs) let markReadArticles = account.fetchArticles(forArticleIDs: deltaReadArticleIDs) DispatchQueue.main.async { _ = account.update(markReadArticles, statusKey: .read, flag: true) @@ -1108,11 +1108,11 @@ private extension GoogleReaderCompatibleAccountDelegate { return } - let GoogleReaderCompatibleStarredArticleIDs = Set(articleIDs.map { String($0) } ) + let starredArticleIDs = Set(articleIDs.map { String($0) } ) let currentStarredArticleIDs = account.fetchStarredArticleIDs() // Mark articles as starred - let deltaStarredArticleIDs = GoogleReaderCompatibleStarredArticleIDs.subtracting(currentStarredArticleIDs) + let deltaStarredArticleIDs = starredArticleIDs.subtracting(currentStarredArticleIDs) let markStarredArticles = account.fetchArticles(forArticleIDs: deltaStarredArticleIDs) DispatchQueue.main.async { _ = account.update(markStarredArticles, statusKey: .starred, flag: true) @@ -1128,7 +1128,7 @@ private extension GoogleReaderCompatibleAccountDelegate { } // Mark articles as unstarred - let deltaUnstarredArticleIDs = currentStarredArticleIDs.subtracting(GoogleReaderCompatibleStarredArticleIDs) + let deltaUnstarredArticleIDs = currentStarredArticleIDs.subtracting(starredArticleIDs) let markUnstarredArticles = account.fetchArticles(forArticleIDs: deltaUnstarredArticleIDs) DispatchQueue.main.async { _ = account.update(markUnstarredArticles, statusKey: .starred, flag: false) diff --git a/Frameworks/Account/GoogleReaderCompatible/GoogleReaderCompatibleAPICaller.swift b/Frameworks/Account/ReaderAPI/ReaderAPICaller.swift similarity index 86% rename from Frameworks/Account/GoogleReaderCompatible/GoogleReaderCompatibleAPICaller.swift rename to Frameworks/Account/ReaderAPI/ReaderAPICaller.swift index ec09e2976..4384af936 100644 --- a/Frameworks/Account/GoogleReaderCompatible/GoogleReaderCompatibleAPICaller.swift +++ b/Frameworks/Account/ReaderAPI/ReaderAPICaller.swift @@ -1,5 +1,5 @@ // -// GoogleReaderCompatibleAPICaller.swift +// ReaderAPICaller.swift // Account // // Created by Jeremy Beker on 5/28/19. @@ -9,13 +9,13 @@ import Foundation import RSWeb -enum CreateGoogleReaderSubscriptionResult { - case created(GoogleReaderCompatibleSubscription) +enum CreateReaderAPISubscriptionResult { + case created(ReaderAPISubscription) case alreadySubscribed case notFound } -final class GoogleReaderCompatibleAPICaller: NSObject { +final class ReaderAPICaller: NSObject { struct ConditionalGetKeys { static let subscriptions = "subscriptions" @@ -26,16 +26,16 @@ final class GoogleReaderCompatibleAPICaller: NSObject { static let starredEntries = "starredEntries" } - enum GoogleReaderState: String { + enum ReaderState: String { case read = "user/-/state/com.google/read" case starred = "user/-/state/com.google/starred" } - enum GoogleReaderStreams: String { + enum ReaderStreams: String { case readingList = "user/-/state/com.google/reading-list" } - enum GoogleReaderEndpoints: String { + enum ReaderAPIEndpoints: String { case login = "/accounts/ClientLogin" case token = "/reader/api/0/token" case disableTag = "/reader/api/0/disable-tag" @@ -89,7 +89,7 @@ final class GoogleReaderCompatibleAPICaller: NSObject { return } - let request = URLRequest(url: endpoint.appendingPathComponent(GoogleReaderEndpoints.login.rawValue), credentials: credentials) + let request = URLRequest(url: endpoint.appendingPathComponent(ReaderAPIEndpoints.login.rawValue), credentials: credentials) transport.send(request: request) { result in switch result { @@ -140,7 +140,7 @@ final class GoogleReaderCompatibleAPICaller: NSObject { return } - let request = URLRequest(url: endpoint.appendingPathComponent(GoogleReaderEndpoints.token.rawValue), credentials: credentials) + let request = URLRequest(url: endpoint.appendingPathComponent(ReaderAPIEndpoints.token.rawValue), credentials: credentials) transport.send(request: request) { result in switch result { @@ -165,14 +165,14 @@ final class GoogleReaderCompatibleAPICaller: NSObject { } - func retrieveTags(completion: @escaping (Result<[GoogleReaderCompatibleTag]?, Error>) -> Void) { + func retrieveTags(completion: @escaping (Result<[ReaderAPITag]?, Error>) -> Void) { guard let baseURL = APIBaseURL else { completion(.failure(CredentialsError.incompleteCredentials)) return } // Add query string for getting JSON (probably should break this out as I will be doing it a lot) - guard var components = URLComponents(url: baseURL.appendingPathComponent(GoogleReaderEndpoints.tagList.rawValue), resolvingAgainstBaseURL: false) else { + guard var components = URLComponents(url: baseURL.appendingPathComponent(ReaderAPIEndpoints.tagList.rawValue), resolvingAgainstBaseURL: false) else { completion(.failure(TransportError.noURL)) return } @@ -189,7 +189,7 @@ final class GoogleReaderCompatibleAPICaller: NSObject { let conditionalGet = accountMetadata?.conditionalGetInfo[ConditionalGetKeys.tags] let request = URLRequest(url: callURL, credentials: credentials, conditionalGet: conditionalGet) - transport.send(request: request, resultType: GoogleReaderCompatibleTagContainer.self) { result in + transport.send(request: request, resultType: ReaderAPITagContainer.self) { result in switch result { case .success(let (response, wrapper)): @@ -212,7 +212,7 @@ final class GoogleReaderCompatibleAPICaller: NSObject { self.requestAuthorizationToken(endpoint: baseURL) { (result) in switch result { case .success(let token): - var request = URLRequest(url: baseURL.appendingPathComponent(GoogleReaderEndpoints.renameTag.rawValue), credentials: self.credentials) + var request = URLRequest(url: baseURL.appendingPathComponent(ReaderAPIEndpoints.renameTag.rawValue), credentials: self.credentials) request.setValue("application/x-www-form-urlencoded", forHTTPHeaderField: "Content-Type") request.httpMethod = "POST" @@ -249,7 +249,7 @@ final class GoogleReaderCompatibleAPICaller: NSObject { self.requestAuthorizationToken(endpoint: baseURL) { (result) in switch result { case .success(let token): - var request = URLRequest(url: baseURL.appendingPathComponent(GoogleReaderEndpoints.disableTag.rawValue), credentials: self.credentials) + var request = URLRequest(url: baseURL.appendingPathComponent(ReaderAPIEndpoints.disableTag.rawValue), credentials: self.credentials) request.setValue("application/x-www-form-urlencoded", forHTTPHeaderField: "Content-Type") @@ -277,14 +277,14 @@ final class GoogleReaderCompatibleAPICaller: NSObject { } - func retrieveSubscriptions(completion: @escaping (Result<[GoogleReaderCompatibleSubscription]?, Error>) -> Void) { + func retrieveSubscriptions(completion: @escaping (Result<[ReaderAPISubscription]?, Error>) -> Void) { guard let baseURL = APIBaseURL else { completion(.failure(CredentialsError.incompleteCredentials)) return } // Add query string for getting JSON (probably should break this out as I will be doing it a lot) - guard var components = URLComponents(url: baseURL.appendingPathComponent(GoogleReaderEndpoints.subscriptionList.rawValue), resolvingAgainstBaseURL: false) else { + guard var components = URLComponents(url: baseURL.appendingPathComponent(ReaderAPIEndpoints.subscriptionList.rawValue), resolvingAgainstBaseURL: false) else { completion(.failure(TransportError.noURL)) return } @@ -301,7 +301,7 @@ final class GoogleReaderCompatibleAPICaller: NSObject { let conditionalGet = accountMetadata?.conditionalGetInfo[ConditionalGetKeys.subscriptions] let request = URLRequest(url: callURL, credentials: credentials, conditionalGet: conditionalGet) - transport.send(request: request, resultType: GoogleReaderCompatibleSubscriptionContainer.self) { result in + transport.send(request: request, resultType: ReaderAPISubscriptionContainer.self) { result in switch result { case .success(let (response, container)): @@ -315,7 +315,7 @@ final class GoogleReaderCompatibleAPICaller: NSObject { } - func createSubscription(url: String, completion: @escaping (Result) -> Void) { + func createSubscription(url: String, completion: @escaping (Result) -> Void) { guard let baseURL = APIBaseURL else { completion(.failure(CredentialsError.incompleteCredentials)) return @@ -324,7 +324,7 @@ final class GoogleReaderCompatibleAPICaller: NSObject { self.requestAuthorizationToken(endpoint: baseURL) { (result) in switch result { case .success(let token): - guard var components = URLComponents(url: baseURL.appendingPathComponent(GoogleReaderEndpoints.subscriptionAdd.rawValue), resolvingAgainstBaseURL: false) else { + guard var components = URLComponents(url: baseURL.appendingPathComponent(ReaderAPIEndpoints.subscriptionAdd.rawValue), resolvingAgainstBaseURL: false) else { completion(.failure(TransportError.noURL)) return } @@ -344,7 +344,7 @@ final class GoogleReaderCompatibleAPICaller: NSObject { let postData = "T=\(token)".data(using: String.Encoding.utf8) - self.transport.send(request: request, method: HTTPMethod.post, data: postData!, resultType: GoogleReaderCompatibleQuickAddResult.self, completion: { (result) in + self.transport.send(request: request, method: HTTPMethod.post, data: postData!, resultType: ReaderAPIQuickAddResult.self, completion: { (result) in switch result { case .success(let (_, subResult)): @@ -405,7 +405,7 @@ final class GoogleReaderCompatibleAPICaller: NSObject { self.requestAuthorizationToken(endpoint: baseURL) { (result) in switch result { case .success(let token): - var request = URLRequest(url: baseURL.appendingPathComponent(GoogleReaderEndpoints.subscriptionEdit.rawValue), credentials: self.credentials) + var request = URLRequest(url: baseURL.appendingPathComponent(ReaderAPIEndpoints.subscriptionEdit.rawValue), credentials: self.credentials) request.setValue("application/x-www-form-urlencoded", forHTTPHeaderField: "Content-Type") @@ -440,7 +440,7 @@ final class GoogleReaderCompatibleAPICaller: NSObject { self.requestAuthorizationToken(endpoint: baseURL) { (result) in switch result { case .success(let token): - var request = URLRequest(url: baseURL.appendingPathComponent(GoogleReaderEndpoints.subscriptionEdit.rawValue), credentials: self.credentials) + var request = URLRequest(url: baseURL.appendingPathComponent(ReaderAPIEndpoints.subscriptionEdit.rawValue), credentials: self.credentials) request.setValue("application/x-www-form-urlencoded", forHTTPHeaderField: "Content-Type") @@ -476,7 +476,7 @@ final class GoogleReaderCompatibleAPICaller: NSObject { self.requestAuthorizationToken(endpoint: baseURL) { (result) in switch result { case .success(let token): - var request = URLRequest(url: baseURL.appendingPathComponent(GoogleReaderEndpoints.subscriptionEdit.rawValue), credentials: self.credentials) + var request = URLRequest(url: baseURL.appendingPathComponent(ReaderAPIEndpoints.subscriptionEdit.rawValue), credentials: self.credentials) request.setValue("application/x-www-form-urlencoded", forHTTPHeaderField: "Content-Type") @@ -513,7 +513,7 @@ final class GoogleReaderCompatibleAPICaller: NSObject { self.requestAuthorizationToken(endpoint: baseURL) { (result) in switch result { case .success(let token): - var request = URLRequest(url: baseURL.appendingPathComponent(GoogleReaderEndpoints.subscriptionEdit.rawValue), credentials: self.credentials) + var request = URLRequest(url: baseURL.appendingPathComponent(ReaderAPIEndpoints.subscriptionEdit.rawValue), credentials: self.credentials) request.setValue("application/x-www-form-urlencoded", forHTTPHeaderField: "Content-Type") @@ -540,10 +540,10 @@ final class GoogleReaderCompatibleAPICaller: NSObject { } } - func retrieveEntries(articleIDs: [String], completion: @escaping (Result<([GoogleReaderCompatibleEntry]?), Error>) -> Void) { + func retrieveEntries(articleIDs: [String], completion: @escaping (Result<([ReaderAPIEntry]?), Error>) -> Void) { guard !articleIDs.isEmpty else { - completion(.success(([GoogleReaderCompatibleEntry]()))) + completion(.success(([ReaderAPIEntry]()))) return } @@ -556,7 +556,7 @@ final class GoogleReaderCompatibleAPICaller: NSObject { switch result { case .success(let token): // Do POST asking for data about all the new articles - var request = URLRequest(url: baseURL.appendingPathComponent(GoogleReaderEndpoints.contents.rawValue), credentials: self.credentials) + var request = URLRequest(url: baseURL.appendingPathComponent(ReaderAPIEndpoints.contents.rawValue), credentials: self.credentials) request.setValue("application/x-www-form-urlencoded", forHTTPHeaderField: "Content-Type") request.httpMethod = "POST" @@ -567,11 +567,11 @@ final class GoogleReaderCompatibleAPICaller: NSObject { let postData = "T=\(token)&output=json&\(idsToFetch)".data(using: String.Encoding.utf8) - self.transport.send(request: request, method: HTTPMethod.post, data: postData!, resultType: GoogleReaderCompatibleEntryWrapper.self, completion: { (result) in + self.transport.send(request: request, method: HTTPMethod.post, data: postData!, resultType: ReaderAPIEntryWrapper.self, completion: { (result) in switch result { case .success(let (_, entryWrapper)): guard let entryWrapper = entryWrapper else { - completion(.failure(GoogleReaderCompatibleAccountDelegateError.invalidResponse)) + completion(.failure(ReaderAPIAccountDelegateError.invalidResponse)) return } @@ -589,7 +589,7 @@ final class GoogleReaderCompatibleAPICaller: NSObject { } - func retrieveEntries(feedID: String, completion: @escaping (Result<([GoogleReaderCompatibleEntry]?, String?), Error>) -> Void) { + func retrieveEntries(feedID: String, completion: @escaping (Result<([ReaderAPIEntry]?, String?), Error>) -> Void) { let since = Calendar.current.date(byAdding: .month, value: -3, to: Date()) ?? Date() @@ -599,7 +599,7 @@ final class GoogleReaderCompatibleAPICaller: NSObject { } // Add query string for getting JSON (probably should break this out as I will be doing it a lot) - guard var components = URLComponents(url: baseURL.appendingPathComponent(GoogleReaderEndpoints.itemIds.rawValue), resolvingAgainstBaseURL: false) else { + guard var components = URLComponents(url: baseURL.appendingPathComponent(ReaderAPIEndpoints.itemIds.rawValue), resolvingAgainstBaseURL: false) else { completion(.failure(TransportError.noURL)) return } @@ -617,7 +617,7 @@ final class GoogleReaderCompatibleAPICaller: NSObject { let request = URLRequest(url: callURL, credentials: credentials, conditionalGet: nil) - transport.send(request: request, resultType: GoogleReaderCompatibleReferenceWrapper.self) { result in + transport.send(request: request, resultType: ReaderAPIReferenceWrapper.self) { result in switch result { case .success(let (_, unreadEntries)): @@ -650,7 +650,7 @@ final class GoogleReaderCompatibleAPICaller: NSObject { } - func retrieveEntries(completion: @escaping (Result<([GoogleReaderCompatibleEntry]?, String?, Int?), Error>) -> Void) { + func retrieveEntries(completion: @escaping (Result<([ReaderAPIEntry]?, String?, Int?), Error>) -> Void) { guard let baseURL = APIBaseURL else { completion(.failure(CredentialsError.incompleteCredentials)) @@ -668,7 +668,7 @@ final class GoogleReaderCompatibleAPICaller: NSObject { let sinceString = since.timeIntervalSince1970 // Add query string for getting JSON (probably should break this out as I will be doing it a lot) - guard var components = URLComponents(url: baseURL.appendingPathComponent(GoogleReaderEndpoints.itemIds.rawValue), resolvingAgainstBaseURL: false) else { + guard var components = URLComponents(url: baseURL.appendingPathComponent(ReaderAPIEndpoints.itemIds.rawValue), resolvingAgainstBaseURL: false) else { completion(.failure(TransportError.noURL)) return } @@ -677,8 +677,8 @@ final class GoogleReaderCompatibleAPICaller: NSObject { URLQueryItem(name: "o", value: String(sinceString)), URLQueryItem(name: "n", value: "10000"), URLQueryItem(name: "output", value: "json"), - URLQueryItem(name: "xt", value: GoogleReaderState.read.rawValue), - URLQueryItem(name: "s", value: GoogleReaderStreams.readingList.rawValue) + URLQueryItem(name: "xt", value: ReaderState.read.rawValue), + URLQueryItem(name: "s", value: ReaderStreams.readingList.rawValue) ] guard let callURL = components.url else { @@ -689,13 +689,13 @@ final class GoogleReaderCompatibleAPICaller: NSObject { let conditionalGet = accountMetadata?.conditionalGetInfo[ConditionalGetKeys.unreadEntries] let request = URLRequest(url: callURL, credentials: credentials, conditionalGet: conditionalGet) - self.transport.send(request: request, resultType: GoogleReaderCompatibleReferenceWrapper.self) { result in + self.transport.send(request: request, resultType: ReaderAPIReferenceWrapper.self) { result in switch result { case .success(let (_, entries)): guard let entries = entries else { - completion(.failure(GoogleReaderCompatibleAccountDelegateError.invalidResponse)) + completion(.failure(ReaderAPIAccountDelegateError.invalidResponse)) return } @@ -703,7 +703,7 @@ final class GoogleReaderCompatibleAPICaller: NSObject { switch result { case .success(let token): // Do POST asking for data about all the new articles - var request = URLRequest(url: baseURL.appendingPathComponent(GoogleReaderEndpoints.contents.rawValue), credentials: self.credentials) + var request = URLRequest(url: baseURL.appendingPathComponent(ReaderAPIEndpoints.contents.rawValue), credentials: self.credentials) request.setValue("application/x-www-form-urlencoded", forHTTPHeaderField: "Content-Type") request.httpMethod = "POST" @@ -716,11 +716,11 @@ final class GoogleReaderCompatibleAPICaller: NSObject { let postData = "T=\(token)&output=json&\(idsToFetch)".data(using: String.Encoding.utf8) - self.transport.send(request: request, method: HTTPMethod.post, data: postData!, resultType: GoogleReaderCompatibleEntryWrapper.self, completion: { (result) in + self.transport.send(request: request, method: HTTPMethod.post, data: postData!, resultType: ReaderAPIEntryWrapper.self, completion: { (result) in switch result { case .success(let (response, entryWrapper)): guard let entryWrapper = entryWrapper else { - completion(.failure(GoogleReaderCompatibleAccountDelegateError.invalidResponse)) + completion(.failure(ReaderAPIAccountDelegateError.invalidResponse)) return } @@ -748,7 +748,7 @@ final class GoogleReaderCompatibleAPICaller: NSObject { } } - func retrieveEntries(page: String, completion: @escaping (Result<([GoogleReaderCompatibleEntry]?, String?), Error>) -> Void) { + func retrieveEntries(page: String, completion: @escaping (Result<([ReaderAPIEntry]?, String?), Error>) -> Void) { guard let url = URL(string: page), var callComponents = URLComponents(url: url, resolvingAgainstBaseURL: false) else { completion(.success((nil, nil))) @@ -758,7 +758,7 @@ final class GoogleReaderCompatibleAPICaller: NSObject { callComponents.queryItems?.append(URLQueryItem(name: "mode", value: "extended")) let request = URLRequest(url: callComponents.url!, credentials: credentials) - transport.send(request: request, resultType: [GoogleReaderCompatibleEntry].self) { result in + transport.send(request: request, resultType: [ReaderAPIEntry].self) { result in switch result { case .success(let (response, entries)): @@ -783,15 +783,15 @@ final class GoogleReaderCompatibleAPICaller: NSObject { } // Add query string for getting JSON (probably should break this out as I will be doing it a lot) - guard var components = URLComponents(url: baseURL.appendingPathComponent(GoogleReaderEndpoints.itemIds.rawValue), resolvingAgainstBaseURL: false) else { + guard var components = URLComponents(url: baseURL.appendingPathComponent(ReaderAPIEndpoints.itemIds.rawValue), resolvingAgainstBaseURL: false) else { completion(.failure(TransportError.noURL)) return } components.queryItems = [ - URLQueryItem(name: "s", value: GoogleReaderStreams.readingList.rawValue), + URLQueryItem(name: "s", value: ReaderStreams.readingList.rawValue), URLQueryItem(name: "n", value: "10000"), - URLQueryItem(name: "xt", value: GoogleReaderState.read.rawValue), + URLQueryItem(name: "xt", value: ReaderState.read.rawValue), URLQueryItem(name: "output", value: "json") ] @@ -803,7 +803,7 @@ final class GoogleReaderCompatibleAPICaller: NSObject { let conditionalGet = accountMetadata?.conditionalGetInfo[ConditionalGetKeys.unreadEntries] let request = URLRequest(url: callURL, credentials: credentials, conditionalGet: conditionalGet) - transport.send(request: request, resultType: GoogleReaderCompatibleReferenceWrapper.self) { result in + transport.send(request: request, resultType: ReaderAPIReferenceWrapper.self) { result in switch result { case .success(let (response, unreadEntries)): @@ -825,7 +825,7 @@ final class GoogleReaderCompatibleAPICaller: NSObject { } - func updateStateToEntries(entries: [Int], state: GoogleReaderState, add: Bool, completion: @escaping (Result) -> Void) { + func updateStateToEntries(entries: [Int], state: ReaderState, add: Bool, completion: @escaping (Result) -> Void) { guard let baseURL = APIBaseURL else { completion(.failure(CredentialsError.incompleteCredentials)) return @@ -835,7 +835,7 @@ final class GoogleReaderCompatibleAPICaller: NSObject { switch result { case .success(let token): // Do POST asking for data about all the new articles - var request = URLRequest(url: baseURL.appendingPathComponent(GoogleReaderEndpoints.editTag.rawValue), credentials: self.credentials) + var request = URLRequest(url: baseURL.appendingPathComponent(ReaderAPIEndpoints.editTag.rawValue), credentials: self.credentials) request.setValue("application/x-www-form-urlencoded", forHTTPHeaderField: "Content-Type") request.httpMethod = "POST" @@ -889,7 +889,7 @@ final class GoogleReaderCompatibleAPICaller: NSObject { return } - guard var components = URLComponents(url: baseURL.appendingPathComponent(GoogleReaderEndpoints.itemIds.rawValue), resolvingAgainstBaseURL: false) else { + guard var components = URLComponents(url: baseURL.appendingPathComponent(ReaderAPIEndpoints.itemIds.rawValue), resolvingAgainstBaseURL: false) else { completion(.failure(TransportError.noURL)) return } @@ -908,7 +908,7 @@ final class GoogleReaderCompatibleAPICaller: NSObject { let conditionalGet = accountMetadata?.conditionalGetInfo[ConditionalGetKeys.starredEntries] let request = URLRequest(url: callURL, credentials: credentials, conditionalGet: conditionalGet) - transport.send(request: request, resultType: GoogleReaderCompatibleReferenceWrapper.self) { result in + transport.send(request: request, resultType: ReaderAPIReferenceWrapper.self) { result in switch result { case .success(let (response, unreadEntries)): @@ -936,7 +936,7 @@ final class GoogleReaderCompatibleAPICaller: NSObject { // MARK: Private -extension GoogleReaderCompatibleAPICaller { +extension ReaderAPICaller { func storeConditionalGet(key: String, headers: [AnyHashable : Any]) { if var conditionalGet = accountMetadata?.conditionalGetInfo { diff --git a/Frameworks/Account/GoogleReaderCompatible/GoogleReaderCompatibleEntry.swift b/Frameworks/Account/ReaderAPI/ReaderAPIEntry.swift similarity index 83% rename from Frameworks/Account/GoogleReaderCompatible/GoogleReaderCompatibleEntry.swift rename to Frameworks/Account/ReaderAPI/ReaderAPIEntry.swift index 34bf05c95..d8f85ca6f 100644 --- a/Frameworks/Account/GoogleReaderCompatible/GoogleReaderCompatibleEntry.swift +++ b/Frameworks/Account/ReaderAPI/ReaderAPIEntry.swift @@ -1,5 +1,5 @@ // -// GoogleReaderCompatibleArticle.swift +// ReaderAPIArticle.swift // Account // // Created by Jeremy Beker on 5/28/19. @@ -10,10 +10,10 @@ import Foundation import RSParser import RSCore -struct GoogleReaderCompatibleEntryWrapper: Codable { +struct ReaderAPIEntryWrapper: Codable { let id: String let updated: Int - let entries: [GoogleReaderCompatibleEntry] + let entries: [ReaderAPIEntry] enum CodingKeys: String, CodingKey { @@ -47,7 +47,7 @@ struct GoogleReaderCompatibleEntryWrapper: Codable { } } */ -struct GoogleReaderCompatibleEntry: Codable { +struct ReaderAPIEntry: Codable { let articleID: String let title: String? @@ -56,10 +56,10 @@ struct GoogleReaderCompatibleEntry: Codable { let crawledTimestamp: String? let timestampUsec: String? - let summary: GoogleReaderCompatibleArticleSummary - let alternates: [GoogleReaderCompatibleAlternateLocation] + let summary: ReaderAPIArticleSummary + let alternates: [ReaderAPIAlternateLocation] let categories: [String] - let origin: GoogleReaderCompatibleEntryOrigin + let origin: ReaderAPIEntryOrigin enum CodingKeys: String, CodingKey { case articleID = "id" @@ -99,7 +99,7 @@ struct GoogleReaderCompatibleEntry: Codable { } } -struct GoogleReaderCompatibleArticleSummary: Codable { +struct ReaderAPIArticleSummary: Codable { let content: String? enum CodingKeys: String, CodingKey { @@ -107,7 +107,7 @@ struct GoogleReaderCompatibleArticleSummary: Codable { } } -struct GoogleReaderCompatibleAlternateLocation: Codable { +struct ReaderAPIAlternateLocation: Codable { let url: String? enum CodingKeys: String, CodingKey { @@ -116,7 +116,7 @@ struct GoogleReaderCompatibleAlternateLocation: Codable { } -struct GoogleReaderCompatibleEntryOrigin: Codable { +struct ReaderAPIEntryOrigin: Codable { let streamId: String? let title: String? diff --git a/Frameworks/Account/GoogleReaderCompatible/GoogleReaderCompatibleSubscription.swift b/Frameworks/Account/ReaderAPI/ReaderAPISubscription.swift similarity index 71% rename from Frameworks/Account/GoogleReaderCompatible/GoogleReaderCompatibleSubscription.swift rename to Frameworks/Account/ReaderAPI/ReaderAPISubscription.swift index 6f5469225..3072656ec 100644 --- a/Frameworks/Account/GoogleReaderCompatible/GoogleReaderCompatibleSubscription.swift +++ b/Frameworks/Account/ReaderAPI/ReaderAPISubscription.swift @@ -1,5 +1,5 @@ // -// GoogleReaderCompatibleFeed.swift +// ReaderAPIFeed.swift // Account // // Created by Jeremy Beker on 5/28/19. @@ -19,7 +19,7 @@ import RSParser */ -struct GoogleReaderCompatibleQuickAddResult: Codable { +struct ReaderAPIQuickAddResult: Codable { let numResults: Int let error: String? let streamId: String? @@ -31,8 +31,8 @@ struct GoogleReaderCompatibleQuickAddResult: Codable { } } -struct GoogleReaderCompatibleSubscriptionContainer: Codable { - let subscriptions: [GoogleReaderCompatibleSubscription] +struct ReaderAPISubscriptionContainer: Codable { + let subscriptions: [ReaderAPISubscription] enum CodingKeys: String, CodingKey { case subscriptions = "subscriptions" @@ -55,10 +55,10 @@ struct GoogleReaderCompatibleSubscriptionContainer: Codable { } */ -struct GoogleReaderCompatibleSubscription: Codable { +struct ReaderAPISubscription: Codable { let feedID: String let name: String? - let categories: [GoogleReaderCompatibleCategory] + let categories: [ReaderAPICategory] let url: String let homePageURL: String? let iconURL: String? @@ -74,7 +74,7 @@ struct GoogleReaderCompatibleSubscription: Codable { } -struct GoogleReaderCompatibleCategory: Codable { +struct ReaderAPICategory: Codable { let categoryId: String let categoryLabel: String @@ -84,21 +84,14 @@ struct GoogleReaderCompatibleCategory: Codable { } } -struct GoogleReaderCompatibleCreateSubscription: Codable { +struct ReaderAPICreateSubscription: Codable { let feedURL: String enum CodingKeys: String, CodingKey { case feedURL = "feed_url" } } -struct GoogleReaderCompatibleUpdateSubscription: Codable { - let title: String - enum CodingKeys: String, CodingKey { - case title - } -} - -struct GoogleReaderCompatibleSubscriptionChoice: Codable { +struct ReaderAPISubscriptionChoice: Codable { let name: String? let url: String diff --git a/Frameworks/Account/GoogleReaderCompatible/GoogleReaderCompatibleTag.swift b/Frameworks/Account/ReaderAPI/ReaderAPITag.swift similarity index 66% rename from Frameworks/Account/GoogleReaderCompatible/GoogleReaderCompatibleTag.swift rename to Frameworks/Account/ReaderAPI/ReaderAPITag.swift index 538fdab2f..7f827e1a6 100644 --- a/Frameworks/Account/GoogleReaderCompatible/GoogleReaderCompatibleTag.swift +++ b/Frameworks/Account/ReaderAPI/ReaderAPITag.swift @@ -1,5 +1,5 @@ // -// GoogleReaderCompatibleTag.swift +// ReaderAPICompatibleTag.swift // Account // // Created by Jeremy Beker on 5/28/19. @@ -8,15 +8,15 @@ import Foundation -struct GoogleReaderCompatibleTagContainer: Codable { - let tags: [GoogleReaderCompatibleTag] +struct ReaderAPITagContainer: Codable { + let tags: [ReaderAPITag] enum CodingKeys: String, CodingKey { case tags = "tags" } } -struct GoogleReaderCompatibleTag: Codable { +struct ReaderAPITag: Codable { let tagID: String let type: String? diff --git a/Frameworks/Account/GoogleReaderCompatible/GoogleReaderCompatibleTagging.swift b/Frameworks/Account/ReaderAPI/ReaderAPITagging.swift similarity index 76% rename from Frameworks/Account/GoogleReaderCompatible/GoogleReaderCompatibleTagging.swift rename to Frameworks/Account/ReaderAPI/ReaderAPITagging.swift index e35ee0e3b..d907ca445 100644 --- a/Frameworks/Account/GoogleReaderCompatible/GoogleReaderCompatibleTagging.swift +++ b/Frameworks/Account/ReaderAPI/ReaderAPITagging.swift @@ -1,5 +1,5 @@ // -// GoogleReaderCompatibleTagging.swift +// ReaderAPICompatibleTagging.swift // Account // // Created by Jeremy Beker on 5/28/19. @@ -8,7 +8,7 @@ import Foundation -struct GoogleReaderCompatibleTagging: Codable { +struct ReaderAPITagging: Codable { let taggingID: Int let feedID: Int @@ -22,7 +22,7 @@ struct GoogleReaderCompatibleTagging: Codable { } -struct GoogleReaderCompatibleCreateTagging: Codable { +struct ReaderAPICreateTagging: Codable { let feedID: Int let name: String diff --git a/Frameworks/Account/GoogleReaderCompatible/GoogleReaderCompatibleUnreadEntry.swift b/Frameworks/Account/ReaderAPI/ReaderAPIUnreadEntry.swift similarity index 61% rename from Frameworks/Account/GoogleReaderCompatible/GoogleReaderCompatibleUnreadEntry.swift rename to Frameworks/Account/ReaderAPI/ReaderAPIUnreadEntry.swift index c4e42f8c0..a69909c21 100644 --- a/Frameworks/Account/GoogleReaderCompatible/GoogleReaderCompatibleUnreadEntry.swift +++ b/Frameworks/Account/ReaderAPI/ReaderAPIUnreadEntry.swift @@ -1,5 +1,5 @@ // -// GoogleReaderCompatibleUnreadEntry.swift +// ReaderAPIUnreadEntry.swift // Account // // Created by Jeremy Beker on 5/28/19. @@ -8,15 +8,15 @@ import Foundation -struct GoogleReaderCompatibleReferenceWrapper: Codable { - let itemRefs: [GoogleReaderCompatibleReference] +struct ReaderAPIReferenceWrapper: Codable { + let itemRefs: [ReaderAPIReference] enum CodingKeys: String, CodingKey { case itemRefs = "itemRefs" } } -struct GoogleReaderCompatibleReference: Codable { +struct ReaderAPIReference: Codable { let itemId: String diff --git a/Mac/Preferences/Accounts/AccountsAddViewController.swift b/Mac/Preferences/Accounts/AccountsAddViewController.swift index cf091fff1..64d94eafc 100644 --- a/Mac/Preferences/Accounts/AccountsAddViewController.swift +++ b/Mac/Preferences/Accounts/AccountsAddViewController.swift @@ -64,7 +64,7 @@ extension AccountsAddViewController: NSTableViewDelegate { cell.accountNameLabel?.stringValue = NSLocalizedString("Feedbin", comment: "Feedbin") cell.accountImageView?.image = AppAssets.accountFeedbin case 2: - cell.accountNameLabel?.stringValue = NSLocalizedString("Google Reader API", comment: "Google Reader API") + cell.accountNameLabel?.stringValue = NSLocalizedString("Reader", comment: "Reader") cell.accountImageView?.image = AppAssets.accountLocal default: break @@ -91,9 +91,9 @@ extension AccountsAddViewController: NSTableViewDelegate { accountsFeedbinWindowController.runSheetOnWindow(self.view.window!) accountsAddWindowController = accountsFeedbinWindowController case 2: - let accountsGoogleReaderCompatibleWindowController = AccountsGoogleReaderCompatibleWindowController() - accountsGoogleReaderCompatibleWindowController.runSheetOnWindow(self.view.window!) - accountsAddWindowController = accountsGoogleReaderCompatibleWindowController + let accountsReaderAPIWindowController = AccountsReaderAPIWindowController() + accountsReaderAPIWindowController.runSheetOnWindow(self.view.window!) + accountsAddWindowController = accountsReaderAPIWindowController default: break } diff --git a/Mac/Preferences/Accounts/AccountsPreferencesViewController.swift b/Mac/Preferences/Accounts/AccountsPreferencesViewController.swift index 9edd0539e..84673da8b 100644 --- a/Mac/Preferences/Accounts/AccountsPreferencesViewController.swift +++ b/Mac/Preferences/Accounts/AccountsPreferencesViewController.swift @@ -107,7 +107,7 @@ extension AccountsPreferencesViewController: NSTableViewDelegate { cell.imageView?.image = AppAssets.accountLocal case .feedbin: cell.imageView?.image = NSImage(named: "accountFeedbin") - case .googleReaderCompatible: + case .googleReaderAPI: cell.imageView?.image = AppAssets.accountLocal default: break diff --git a/Mac/Preferences/Accounts/AccountsGoogleReaderCompatible.xib b/Mac/Preferences/Accounts/AccountsReaderAPI.xib similarity index 97% rename from Mac/Preferences/Accounts/AccountsGoogleReaderCompatible.xib rename to Mac/Preferences/Accounts/AccountsReaderAPI.xib index 6e2f71ba7..1da180f56 100644 --- a/Mac/Preferences/Accounts/AccountsGoogleReaderCompatible.xib +++ b/Mac/Preferences/Accounts/AccountsReaderAPI.xib @@ -6,7 +6,7 @@ - + @@ -23,13 +23,13 @@ - - - + + + - + @@ -40,8 +40,8 @@ - - + + diff --git a/Mac/Preferences/Accounts/AccountsGoogleReaderCompatibleWindowController.swift b/Mac/Preferences/Accounts/AccountsReaderAPIWindowController.swift similarity index 92% rename from Mac/Preferences/Accounts/AccountsGoogleReaderCompatibleWindowController.swift rename to Mac/Preferences/Accounts/AccountsReaderAPIWindowController.swift index b70b481b1..ac74eef50 100644 --- a/Mac/Preferences/Accounts/AccountsGoogleReaderCompatibleWindowController.swift +++ b/Mac/Preferences/Accounts/AccountsReaderAPIWindowController.swift @@ -10,7 +10,7 @@ import AppKit import Account import RSWeb -class AccountsGoogleReaderCompatibleWindowController: NSWindowController { +class AccountsReaderAPIWindowController: NSWindowController { @IBOutlet weak var progressIndicator: NSProgressIndicator! @IBOutlet weak var usernameTextField: NSTextField! @@ -24,7 +24,7 @@ class AccountsGoogleReaderCompatibleWindowController: NSWindowController { private weak var hostWindow: NSWindow? convenience init() { - self.init(windowNibName: NSNib.Name("AccountsGoogleReaderCompatible")) + self.init(windowNibName: NSNib.Name("AccountsReaderAPI")) } override func windowDidLoad() { @@ -71,7 +71,7 @@ class AccountsGoogleReaderCompatibleWindowController: NSWindowController { } let credentials = Credentials.googleBasicLogin(username: usernameTextField.stringValue, password: passwordTextField.stringValue) - Account.validateCredentials(type: .googleReaderCompatible, credentials: credentials, endpoint: apiURL) { [weak self] result in + Account.validateCredentials(type: .googleReaderAPI, credentials: credentials, endpoint: apiURL) { [weak self] result in guard let self = self else { return } @@ -89,7 +89,7 @@ class AccountsGoogleReaderCompatibleWindowController: NSWindowController { var newAccount = false if self.account == nil { - self.account = AccountManager.shared.createAccount(type: .googleReaderCompatible) + self.account = AccountManager.shared.createAccount(type: .googleReaderAPI) newAccount = true } diff --git a/Mac/Scriptability/Account+Scriptability.swift b/Mac/Scriptability/Account+Scriptability.swift index 88cf8eb3a..445b7bc16 100644 --- a/Mac/Scriptability/Account+Scriptability.swift +++ b/Mac/Scriptability/Account+Scriptability.swift @@ -142,7 +142,7 @@ class ScriptableAccount: NSObject, UniqueIdScriptingObject, ScriptingObjectConta osType = "FWrg" case .newsBlur: osType = "NBlr" - case .googleReaderCompatible: + case .googleReaderAPI: osType = "Grdr" } return osType.fourCharCode() diff --git a/NetNewsWire.xcodeproj/project.pbxproj b/NetNewsWire.xcodeproj/project.pbxproj index bbd4ae6b3..52c120d44 100644 --- a/NetNewsWire.xcodeproj/project.pbxproj +++ b/NetNewsWire.xcodeproj/project.pbxproj @@ -155,9 +155,9 @@ 51F85BF92274AA7B00C787DC /* UIBarButtonItem-Extensions.swift in Sources */ = {isa = PBXBuildFile; fileRef = 51F85BF82274AA7B00C787DC /* UIBarButtonItem-Extensions.swift */; }; 51F85BFB2275D85000C787DC /* Array-Extensions.swift in Sources */ = {isa = PBXBuildFile; fileRef = 51F85BFA2275D85000C787DC /* Array-Extensions.swift */; }; 51F85BFD2275DCA800C787DC /* SingleLineUILabelSizer.swift in Sources */ = {isa = PBXBuildFile; fileRef = 51F85BFC2275DCA800C787DC /* SingleLineUILabelSizer.swift */; }; - 557EE1AE22B6F4E1004206FA /* SettingsGoogleReaderCompatibleAccountView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 557EE1A522B6F4E1004206FA /* SettingsGoogleReaderCompatibleAccountView.swift */; }; - 55E15BCB229D65A900D6602A /* AccountsGoogleReaderCompatible.xib in Resources */ = {isa = PBXBuildFile; fileRef = 55E15BC1229D65A900D6602A /* AccountsGoogleReaderCompatible.xib */; }; - 55E15BCC229D65A900D6602A /* AccountsGoogleReaderCompatibleWindowController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 55E15BCA229D65A900D6602A /* AccountsGoogleReaderCompatibleWindowController.swift */; }; + 557EE1AE22B6F4E1004206FA /* SettingsReaderAPIAccountView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 557EE1A522B6F4E1004206FA /* SettingsReaderAPIAccountView.swift */; }; + 55E15BCB229D65A900D6602A /* AccountsReaderAPI.xib in Resources */ = {isa = PBXBuildFile; fileRef = 55E15BC1229D65A900D6602A /* AccountsReaderAPI.xib */; }; + 55E15BCC229D65A900D6602A /* AccountsReaderAPIWindowController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 55E15BCA229D65A900D6602A /* AccountsReaderAPIWindowController.swift */; }; 6581C73820CED60100F4AD34 /* SafariExtensionHandler.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6581C73720CED60100F4AD34 /* SafariExtensionHandler.swift */; }; 6581C73A20CED60100F4AD34 /* SafariExtensionViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6581C73920CED60100F4AD34 /* SafariExtensionViewController.swift */; }; 6581C73D20CED60100F4AD34 /* SafariExtensionViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = 6581C73B20CED60100F4AD34 /* SafariExtensionViewController.xib */; }; @@ -753,9 +753,9 @@ 51F85BF82274AA7B00C787DC /* UIBarButtonItem-Extensions.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "UIBarButtonItem-Extensions.swift"; sourceTree = ""; }; 51F85BFA2275D85000C787DC /* Array-Extensions.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "Array-Extensions.swift"; sourceTree = ""; }; 51F85BFC2275DCA800C787DC /* SingleLineUILabelSizer.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SingleLineUILabelSizer.swift; sourceTree = ""; }; - 557EE1A522B6F4E1004206FA /* SettingsGoogleReaderCompatibleAccountView.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SettingsGoogleReaderCompatibleAccountView.swift; sourceTree = ""; }; - 55E15BC1229D65A900D6602A /* AccountsGoogleReaderCompatible.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = AccountsGoogleReaderCompatible.xib; sourceTree = ""; }; - 55E15BCA229D65A900D6602A /* AccountsGoogleReaderCompatibleWindowController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = AccountsGoogleReaderCompatibleWindowController.swift; sourceTree = ""; }; + 557EE1A522B6F4E1004206FA /* SettingsReaderAPIAccountView.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SettingsReaderAPIAccountView.swift; sourceTree = ""; }; + 55E15BC1229D65A900D6602A /* AccountsReaderAPI.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = AccountsReaderAPI.xib; sourceTree = ""; }; + 55E15BCA229D65A900D6602A /* AccountsReaderAPIWindowController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = AccountsReaderAPIWindowController.swift; sourceTree = ""; }; 6581C73320CED60000F4AD34 /* Subscribe to Feed.appex */ = {isa = PBXFileReference; explicitFileType = "wrapper.app-extension"; includeInIndex = 0; path = "Subscribe to Feed.appex"; sourceTree = BUILT_PRODUCTS_DIR; }; 6581C73420CED60100F4AD34 /* Cocoa.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Cocoa.framework; path = System/Library/Frameworks/Cocoa.framework; sourceTree = SDKROOT; }; 6581C73720CED60100F4AD34 /* SafariExtensionHandler.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SafariExtensionHandler.swift; sourceTree = ""; }; @@ -1066,7 +1066,7 @@ 5183CCEB227117C70010922C /* Settings */ = { isa = PBXGroup; children = ( - 557EE1A522B6F4E1004206FA /* SettingsGoogleReaderCompatibleAccountView.swift */, + 557EE1A522B6F4E1004206FA /* SettingsReaderAPIAccountView.swift */, 510D708122B041CC004E8F65 /* SettingsAccountLabelView.swift */, 510D707322B028E1004E8F65 /* SettingsAddAccountView.swift */, 51F772EC22B2789B0087D9D1 /* SettingsDetailAccountView.swift */, @@ -1669,8 +1669,8 @@ 84C9FC6F22629E1200D921D6 /* Accounts */ = { isa = PBXGroup; children = ( - 55E15BC1229D65A900D6602A /* AccountsGoogleReaderCompatible.xib */, - 55E15BCA229D65A900D6602A /* AccountsGoogleReaderCompatibleWindowController.swift */, + 55E15BC1229D65A900D6602A /* AccountsReaderAPI.xib */, + 55E15BCA229D65A900D6602A /* AccountsReaderAPIWindowController.swift */, 84C9FC7022629E1200D921D6 /* AccountsTableViewBackgroundView.swift */, 84C9FC7122629E1200D921D6 /* AccountsControlsBackgroundView.swift */, 84C9FC7222629E1200D921D6 /* AccountsPreferencesViewController.swift */, @@ -2265,7 +2265,7 @@ 5144EA52227B8E4500D19003 /* AccountsFeedbin.xib in Resources */, 8405DDA222168920008CE1BF /* TimelineTableView.xib in Resources */, 8483630E2262A3FE00DA1D35 /* MainWindow.storyboard in Resources */, - 55E15BCB229D65A900D6602A /* AccountsGoogleReaderCompatible.xib in Resources */, + 55E15BCB229D65A900D6602A /* AccountsReaderAPI.xib in Resources */, 84BAE64921CEDAF20046DB56 /* CrashReporterWindow.xib in Resources */, 84C9FC8E22629E8F00D921D6 /* Credits.rtf in Resources */, 84BBB12D20142A4700F054F5 /* Inspector.storyboard in Resources */, @@ -2390,7 +2390,7 @@ 51F85BF722749FA100C787DC /* UIFont-Extensions.swift in Sources */, 515436882291D75D005E1CDF /* AddLocalAccountViewController.swift in Sources */, 51C452AF2265108300C03939 /* ArticleArray.swift in Sources */, - 557EE1AE22B6F4E1004206FA /* SettingsGoogleReaderCompatibleAccountView.swift in Sources */, + 557EE1AE22B6F4E1004206FA /* SettingsReaderAPIAccountView.swift in Sources */, 51C4528E2265099C00C03939 /* SmartFeedsController.swift in Sources */, 51C4529C22650A1000C03939 /* SingleFaviconDownloader.swift in Sources */, 51E595A6228CC36500FCC42B /* ArticleStatusSyncTimer.swift in Sources */, @@ -2487,7 +2487,7 @@ 8477ACBE22238E9500DF7F37 /* SearchFeedDelegate.swift in Sources */, 51E3EB33229AB02C00645299 /* ErrorHandler.swift in Sources */, 8472058120142E8900AD578B /* FeedInspectorViewController.swift in Sources */, - 55E15BCC229D65A900D6602A /* AccountsGoogleReaderCompatibleWindowController.swift in Sources */, + 55E15BCC229D65A900D6602A /* AccountsReaderAPIWindowController.swift in Sources */, 5144EA382279FC6200D19003 /* AccountsAddLocalWindowController.swift in Sources */, 84AD1EAA2031617300BC20B7 /* PasteboardFolder.swift in Sources */, 5144EA51227B8E4500D19003 /* AccountsFeedbinWindowController.swift in Sources */, diff --git a/iOS/Settings/SettingsGoogleReaderCompatibleAccountView.swift b/iOS/Settings/SettingsReaderAPIAccountView.swift similarity index 88% rename from iOS/Settings/SettingsGoogleReaderCompatibleAccountView.swift rename to iOS/Settings/SettingsReaderAPIAccountView.swift index 6ecde08dd..c21dd7891 100644 --- a/iOS/Settings/SettingsGoogleReaderCompatibleAccountView.swift +++ b/iOS/Settings/SettingsReaderAPIAccountView.swift @@ -1,8 +1,8 @@ // -// SettingsGoogleReaderCompatibleAccountView.swift +// SettingsReaderAPIAccountView.swift // NetNewsWire-iOS // -// Created by Maurice Parker on 6/11/19. +// Created by Jeremy Beker on 5/28/2019. // Copyright © 2019 Ranchero Software. All rights reserved. // @@ -11,7 +11,7 @@ import Combine import Account import RSWeb -struct SettingsGoogleReaderCompatibleAccountView : View { +struct SettingsReaderAPIAccountView : View { @Environment(\.isPresented) private var isPresented @ObjectBinding var viewModel: ViewModel @State var busy: Bool = false @@ -83,7 +83,7 @@ struct SettingsGoogleReaderCompatibleAccountView : View { return } - Account.validateCredentials(type: .googleReaderCompatible, credentials: credentials, endpoint: apiURL) { result in + Account.validateCredentials(type: .googleReaderAPI, credentials: credentials, endpoint: apiURL) { result in self.busy = false @@ -95,7 +95,7 @@ struct SettingsGoogleReaderCompatibleAccountView : View { var newAccount = false let workAccount: Account if self.viewModel.account == nil { - workAccount = AccountManager.shared.createAccount(type: .googleReaderCompatible) + workAccount = AccountManager.shared.createAccount(type: .googleReaderAPI) newAccount = true } else { workAccount = self.viewModel.account! @@ -179,9 +179,9 @@ struct SettingsGoogleReaderCompatibleAccountView : View { } #if DEBUG -struct SettingsGoogleReaderCompatibleAccountView_Previews : PreviewProvider { +struct SettingsReaderAPIAccountView_Previews : PreviewProvider { static var previews: some View { - SettingsGoogleReaderCompatibleAccountView(viewModel: SettingsGoogleReaderCompatibleAccountView.ViewModel()) + SettingsReaderAPIAccountView(viewModel: SettingsReaderAPIAccountView.ViewModel()) } } #endif