From bc2a475936a9df524b3f53b411aacd4c13c72867 Mon Sep 17 00:00:00 2001 From: Maurice Parker Date: Sat, 24 Oct 2020 14:18:01 -0500 Subject: [PATCH] Add Inoreader, BazQux, and The Old Reader assets --- Account/Sources/Account/Account.swift | 32 ++++++++++++----- .../ReaderAPI/ReaderAPIAccountDelegate.swift | 10 ++++-- .../Account/ReaderAPI/ReaderAPICaller.swift | 1 + .../Account/ReaderAPI/ReaderAPIVariant.swift | 15 ++++++++ Mac/AppAssets.swift | 26 +++++++++++--- .../Accounts/AccountsAddViewController.swift | 34 +++++++++++++++--- .../AccountsReaderAPIWindowController.swift | 9 +++++ .../accountBazQux.imageset/Contents.json | 16 +++++++++ .../accountBazQux.imageset/bazqux-logo.png | Bin 0 -> 2461 bytes .../accountInoreader.imageset/Contents.json | 16 +++++++++ .../inoreader_logo.pdf | Bin 0 -> 4092 bytes .../Contents.json | 16 +++++++++ .../oldreader-icon.pdf | Bin 0 -> 4818 bytes Mac/Scriptability/Account+Scriptability.swift | 6 ++++ 14 files changed, 162 insertions(+), 19 deletions(-) create mode 100644 Account/Sources/Account/ReaderAPI/ReaderAPIVariant.swift create mode 100644 Mac/Resources/Assets.xcassets/accountBazQux.imageset/Contents.json create mode 100644 Mac/Resources/Assets.xcassets/accountBazQux.imageset/bazqux-logo.png create mode 100644 Mac/Resources/Assets.xcassets/accountInoreader.imageset/Contents.json create mode 100644 Mac/Resources/Assets.xcassets/accountInoreader.imageset/inoreader_logo.pdf create mode 100644 Mac/Resources/Assets.xcassets/accountTheOldReader.imageset/Contents.json create mode 100644 Mac/Resources/Assets.xcassets/accountTheOldReader.imageset/oldreader-icon.pdf diff --git a/Account/Sources/Account/Account.swift b/Account/Sources/Account/Account.swift index ba985cb01..e0bc64866 100644 --- a/Account/Sources/Account/Account.swift +++ b/Account/Sources/Account/Account.swift @@ -42,7 +42,9 @@ public enum AccountType: Int, Codable { case feedWrangler = 18 case newsBlur = 19 case freshRSS = 20 - // TODO: more + case inoreader = 21 + case bazQux = 22 + case theOldReader = 23 } public enum FetchType { @@ -258,14 +260,20 @@ public final class Account: DisplayNameProvider, UnreadCountProvider, Container, self.delegate = CloudKitAccountDelegate(dataFolder: dataFolder) case .feedbin: self.delegate = FeedbinAccountDelegate(dataFolder: dataFolder, transport: transport) - case .freshRSS: - self.delegate = ReaderAPIAccountDelegate(dataFolder: dataFolder, transport: transport) case .feedly: self.delegate = FeedlyAccountDelegate(dataFolder: dataFolder, transport: transport, api: FeedlyAccountDelegate.environment) case .feedWrangler: self.delegate = FeedWranglerAccountDelegate(dataFolder: dataFolder, transport: transport) case .newsBlur: self.delegate = NewsBlurAccountDelegate(dataFolder: dataFolder, transport: transport) + case .freshRSS: + self.delegate = ReaderAPIAccountDelegate(dataFolder: dataFolder, transport: transport, variant: .generic) + case .inoreader: + self.delegate = ReaderAPIAccountDelegate(dataFolder: dataFolder, transport: transport, variant: .inoreader) + case .bazQux: + self.delegate = ReaderAPIAccountDelegate(dataFolder: dataFolder, transport: transport, variant: .bazQux) + case .theOldReader: + self.delegate = ReaderAPIAccountDelegate(dataFolder: dataFolder, transport: transport, variant: .theOldReader) } self.delegate.accountMetadata = metadata @@ -282,17 +290,23 @@ public final class Account: DisplayNameProvider, UnreadCountProvider, Container, case .onMyMac: defaultName = Account.defaultLocalAccountName case .cloudKit: - defaultName = "iCloud" + defaultName = NSLocalizedString("iCloud", comment: "iCloud") case .feedly: - defaultName = "Feedly" + defaultName = NSLocalizedString("Feedly", comment: "Feedly") case .feedbin: - defaultName = "Feedbin" + defaultName = NSLocalizedString("Feedbin", comment: "Feedbin") case .feedWrangler: - defaultName = "FeedWrangler" + defaultName = NSLocalizedString("FeedWrangler", comment: "FeedWrangler") case .newsBlur: - defaultName = "NewsBlur" + defaultName = NSLocalizedString("NewsBlur", comment: "NewsBlur") case .freshRSS: - defaultName = "FreshRSS" + defaultName = NSLocalizedString("FreshRSS", comment: "FreshRSS") + case .inoreader: + defaultName = NSLocalizedString("Inoreader", comment: "Inoreader") + case .bazQux: + defaultName = NSLocalizedString("BazQux", comment: "BazQux") + case .theOldReader: + defaultName = NSLocalizedString("The Old Reader", comment: "The Old Reader") } NotificationCenter.default.addObserver(self, selector: #selector(downloadProgressDidChange(_:)), name: .DownloadProgressDidChange, object: nil) diff --git a/Account/Sources/Account/ReaderAPI/ReaderAPIAccountDelegate.swift b/Account/Sources/Account/ReaderAPI/ReaderAPIAccountDelegate.swift index 06f1eb5b5..773975de2 100644 --- a/Account/Sources/Account/ReaderAPI/ReaderAPIAccountDelegate.swift +++ b/Account/Sources/Account/ReaderAPI/ReaderAPIAccountDelegate.swift @@ -21,6 +21,12 @@ public enum ReaderAPIAccountDelegateError: String, Error { final class ReaderAPIAccountDelegate: AccountDelegate { + private var variant: ReaderAPIVariant { + didSet { + caller.variant = variant + } + } + private let database: SyncDatabase private let caller: ReaderAPICaller @@ -50,8 +56,7 @@ final class ReaderAPIAccountDelegate: AccountDelegate { var refreshProgress = DownloadProgress(numberOfTasks: 0) - init(dataFolder: String, transport: Transport?) { - + init(dataFolder: String, transport: Transport?, variant: ReaderAPIVariant) { let databaseFilePath = (dataFolder as NSString).appendingPathComponent("Sync.sqlite3") database = SyncDatabase(databaseFilePath: databaseFilePath) @@ -78,6 +83,7 @@ final class ReaderAPIAccountDelegate: AccountDelegate { } + self.variant = variant } func receiveRemoteNotification(for account: Account, userInfo: [AnyHashable : Any], completion: @escaping () -> Void) { diff --git a/Account/Sources/Account/ReaderAPI/ReaderAPICaller.swift b/Account/Sources/Account/ReaderAPI/ReaderAPICaller.swift index 30e9094ee..505b60933 100644 --- a/Account/Sources/Account/ReaderAPI/ReaderAPICaller.swift +++ b/Account/Sources/Account/ReaderAPI/ReaderAPICaller.swift @@ -49,6 +49,7 @@ final class ReaderAPICaller: NSObject { private var transport: Transport! + var variant: ReaderAPIVariant = .generic var credentials: Credentials? private var accessToken: String? diff --git a/Account/Sources/Account/ReaderAPI/ReaderAPIVariant.swift b/Account/Sources/Account/ReaderAPI/ReaderAPIVariant.swift new file mode 100644 index 000000000..61bb03980 --- /dev/null +++ b/Account/Sources/Account/ReaderAPI/ReaderAPIVariant.swift @@ -0,0 +1,15 @@ +// +// ReaderAPIVariant.swift +// +// +// Created by Maurice Parker on 10/23/20. +// + +import Foundation + +enum ReaderAPIVariant { + case generic + case inoreader + case bazQux + case theOldReader +} diff --git a/Mac/AppAssets.swift b/Mac/AppAssets.swift index 731880985..a688b29b0 100644 --- a/Mac/AppAssets.swift +++ b/Mac/AppAssets.swift @@ -12,12 +12,12 @@ import Account struct AppAssets { - static var accountCloudKit: RSImage! = { - return RSImage(named: "accountCloudKit") + static var accountBazQux: RSImage! = { + return RSImage(named: "accountBazQux") }() - static var accountLocal: RSImage! = { - return RSImage(named: "accountLocal") + static var accountCloudKit: RSImage! = { + return RSImage(named: "accountCloudKit") }() static var accountFeedbin: RSImage! = { @@ -36,10 +36,22 @@ struct AppAssets { return RSImage(named: "accountFreshRSS") }() + static var accountInoreader: RSImage! = { + return RSImage(named: "accountInoreader") + }() + + static var accountLocal: RSImage! = { + return RSImage(named: "accountLocal") + }() + static var accountNewsBlur: RSImage! = { return RSImage(named: "accountNewsBlur") }() + static var accountTheOldReader: RSImage! = { + return RSImage(named: "accountTheOldReader") + }() + @available(macOS 11.0, *) static var addNewSidebarItemImage: RSImage = { return NSImage(systemSymbolName: "plus", accessibilityDescription: nil)! @@ -293,6 +305,8 @@ struct AppAssets { return AppAssets.accountLocal case .cloudKit: return AppAssets.accountCloudKit + case .bazQux: + return AppAssets.accountBazQux case .feedbin: return AppAssets.accountFeedbin case .feedly: @@ -301,8 +315,12 @@ struct AppAssets { return AppAssets.accountFeedWrangler case .freshRSS: return AppAssets.accountFreshRSS + case .inoreader: + return AppAssets.accountInoreader case .newsBlur: return AppAssets.accountNewsBlur + case .theOldReader: + return AppAssets.accountTheOldReader } } diff --git a/Mac/Preferences/Accounts/AccountsAddViewController.swift b/Mac/Preferences/Accounts/AccountsAddViewController.swift index 60c52ed01..42afd0bef 100644 --- a/Mac/Preferences/Accounts/AccountsAddViewController.swift +++ b/Mac/Preferences/Accounts/AccountsAddViewController.swift @@ -17,9 +17,9 @@ class AccountsAddViewController: NSViewController { private var accountsAddWindowController: NSWindowController? #if DEBUG - private var addableAccountTypes: [AccountType] = [.onMyMac, .feedbin, .feedly, .feedWrangler, .freshRSS, .cloudKit, .newsBlur] + private var addableAccountTypes: [AccountType] = [.onMyMac, .cloudKit, .feedbin, .feedly, .inoreader, .newsBlur, .feedWrangler, .bazQux, .theOldReader, .freshRSS] #else - private var addableAccountTypes: [AccountType] = [.onMyMac, .feedbin, .feedly, .cloudKit, .newsBlur] + private var addableAccountTypes: [AccountType] = [.onMyMac, .cloudKit, .feedbin, .feedly, .inoreader, .newsBlur, .feedWrangler, .bazQux, .theOldReader, .freshRSS] #endif init() { @@ -87,6 +87,15 @@ extension AccountsAddViewController: NSTableViewDelegate { case .newsBlur: cell.accountNameLabel?.stringValue = NSLocalizedString("NewsBlur", comment: "NewsBlur") cell.accountImageView?.image = AppAssets.accountNewsBlur + case .inoreader: + cell.accountNameLabel?.stringValue = NSLocalizedString("Inoreader", comment: "Inoreader") + cell.accountImageView?.image = AppAssets.accountInoreader + case .bazQux: + cell.accountNameLabel?.stringValue = NSLocalizedString("Bazqux", comment: "Bazqux") + cell.accountImageView?.image = AppAssets.accountBazQux + case .theOldReader: + cell.accountNameLabel?.stringValue = NSLocalizedString("The Old Reader", comment: "The Old Reader") + cell.accountImageView?.image = AppAssets.accountTheOldReader } return cell } @@ -137,15 +146,32 @@ extension AccountsAddViewController: AccountsAddTableCellViewDelegate { let addAccount = OAuthAccountAuthorizationOperation(accountType: .feedly) addAccount.delegate = self addAccount.presentationAnchor = self.view.window! - runAwaitingFeedlyLoginAlertModal(forLifetimeOf: addAccount) - MainThreadOperationQueue.shared.add(addAccount) case .newsBlur: let accountsNewsBlurWindowController = AccountsNewsBlurWindowController() accountsNewsBlurWindowController.runSheetOnWindow(self.view.window!) accountsAddWindowController = accountsNewsBlurWindowController + + case .inoreader: + let accountsReaderAPIWindowController = AccountsReaderAPIWindowController() + accountsReaderAPIWindowController.accountType = .inoreader + accountsReaderAPIWindowController.runSheetOnWindow(self.view.window!) + accountsAddWindowController = accountsReaderAPIWindowController + + case .bazQux: + let accountsReaderAPIWindowController = AccountsReaderAPIWindowController() + accountsReaderAPIWindowController.accountType = .bazQux + accountsReaderAPIWindowController.runSheetOnWindow(self.view.window!) + accountsAddWindowController = accountsReaderAPIWindowController + + case .theOldReader: + let accountsReaderAPIWindowController = AccountsReaderAPIWindowController() + accountsReaderAPIWindowController.accountType = .theOldReader + accountsReaderAPIWindowController.runSheetOnWindow(self.view.window!) + accountsAddWindowController = accountsReaderAPIWindowController + } } diff --git a/Mac/Preferences/Accounts/AccountsReaderAPIWindowController.swift b/Mac/Preferences/Accounts/AccountsReaderAPIWindowController.swift index 948902a21..2eeeff8c7 100644 --- a/Mac/Preferences/Accounts/AccountsReaderAPIWindowController.swift +++ b/Mac/Preferences/Accounts/AccountsReaderAPIWindowController.swift @@ -38,6 +38,15 @@ class AccountsReaderAPIWindowController: NSWindowController { case .freshRSS: titleImageView.image = AppAssets.accountFreshRSS titleLabel.stringValue = NSLocalizedString("FreshRSS", comment: "FreshRSS") + case .inoreader: + titleImageView.image = AppAssets.accountInoreader + titleLabel.stringValue = NSLocalizedString("InoReader", comment: "InoReader") + case .bazQux: + titleImageView.image = AppAssets.accountBazQux + titleLabel.stringValue = NSLocalizedString("BazQux", comment: "BazQux") + case .theOldReader: + titleImageView.image = AppAssets.accountTheOldReader + titleLabel.stringValue = NSLocalizedString("The Old Reader", comment: "The Old Reader") default: break } diff --git a/Mac/Resources/Assets.xcassets/accountBazQux.imageset/Contents.json b/Mac/Resources/Assets.xcassets/accountBazQux.imageset/Contents.json new file mode 100644 index 000000000..5dc93b35e --- /dev/null +++ b/Mac/Resources/Assets.xcassets/accountBazQux.imageset/Contents.json @@ -0,0 +1,16 @@ +{ + "images" : [ + { + "filename" : "bazqux-logo.png", + "idiom" : "universal" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + }, + "properties" : { + "preserves-vector-representation" : true, + "template-rendering-intent" : "template" + } +} diff --git a/Mac/Resources/Assets.xcassets/accountBazQux.imageset/bazqux-logo.png b/Mac/Resources/Assets.xcassets/accountBazQux.imageset/bazqux-logo.png new file mode 100644 index 0000000000000000000000000000000000000000..a73b4eb8c444c2ce4a6efb01239e1ffd77c17e87 GIT binary patch literal 2461 zcmZ`*2{@E%8~(Fsc(_dLh0`|xDT|px(PwGl4I@80{{gz zi9mqlD`0t2T!u51Pj#@z9%M6-UOsGZ8Zwy4k+1+Iz0VT19y%LpuJ zOWY`3_%ej=kJqI-IKeI0TpCy~8j02=K;dvWj_c!#rI4(?(7_d6m(J&NuqaeeP!KZ6 z7|G`Pp^VJT%ur|y3WGs_2m~*L#rFzEuy}f(gM5ucqVW!L85}-?&4NqfdU>-0`FLGj zNuqDhmpYl8Z;4pEFI|ECp@O|QC?g~q^-m-|!}oi6|HYE*e5NgT^*I?1JQ}P87aSCu z>&#{c5dP2TaHyYw-wR%j;lTD`_=b?Y_%woK$_OJg0%Pp_b;_UVKVW`fOX|Y9Q)oPP zK%nGU2&Nbu>VKR+6D-(F4wuH`NeElM;D7Y}jHmunf*+k<2so5vDnCr=^A%Y3f_H!b z1zY)gp9s+SPd!QiASZ7_B0AG$dy+hIuN~C7pXi0wh_u>yOU=wD<3gvkfICQ0GV|QX zjU1t9W)pd9Z8XpA+vvv9!YDFco>~`$QDfXsdTo^HJ9R~Hcz&_=9p0ZXRdD;s{NopM z0lV;%_^_#^qf0sOi-K~x#tkEeww23;Lyw(0)*zbboKN@WJLSX<9x9hP*HC4d!_!G% zAK3Fye(QpgOHDUzMdek+&4!~vs`fUfQKTlhv<$zM8|NXVFLHnG6~$A2z2)0f>wXbieNg>Nr!srS z&qAp){Wp>1iwRUMk~0`yKchAq%rdxhey+mlN;d+V;{?0*Ai-bh(EC;Nk`uE@ z%C(v4;>Z8Wj%_y|3=)kqx*mlKu)ov-QI4EiyqK}E+cL@{T>x>^ilx5qW@MPTsUKdV zpUk;L|xc5vww0|r@{BjWp^?5c$ zD~E=L`Ldm~wMX3vl_Pa}aT~HD^zB)8H3jw02m73YEBfTpZb7t+FB>0+B4w`Lqr~$e1mFFf0GsRN$ zyCVgG4@jApLxlL|p}Jh#>T|~@M~K@dl1Iz4#=7@qU0`H1vLo0HPX^A5eK*=0^)C#0 z=1w;@Jf70=na?O?QLCcOb!fZLM>bW}dK$?+t-h(_m!B|9X0|b8_BnqrJ>FhYi^MbD zo-j3kZ?o#?`7Z(?4p{KVz9>>=|)5B3bfyzyRp{KGV1?4G4nuqd4PQVd^k>W&J%>bU-e zHIBG0M7}6aa96oq5n=KOKm5VfzjVv-j~;rqg{01d-HNFmN7UZ+pv5V}WGfHpD>#L_ zCGG_QIXmQ@dMfA(%SwYz6tSgeYf6YwQrUVq^(!$?|(BBwmN2paWU?Gt!m7}V9}c!`}fnT4+BHEg;*ae-(&3W7SneEO{i%slbaXVp67S(4OXzqRFgKx6bq{epy ziWI_R+fI)g-k(cuh#yzf%A~a7?Gp`)Jrw$LJ*>Rb;kz}mVomP^_x;-TrzJL4&5uh=OZ1eDZO~AOT76078q$FM%#I1Tg>9XNX&Mdu03*ak dNy8x>JGOH+WIOL~YLxtU*jPG}ZtOe|@i)U%1s?za literal 0 HcmV?d00001 diff --git a/Mac/Resources/Assets.xcassets/accountInoreader.imageset/Contents.json b/Mac/Resources/Assets.xcassets/accountInoreader.imageset/Contents.json new file mode 100644 index 000000000..979b7673c --- /dev/null +++ b/Mac/Resources/Assets.xcassets/accountInoreader.imageset/Contents.json @@ -0,0 +1,16 @@ +{ + "images" : [ + { + "filename" : "inoreader_logo.pdf", + "idiom" : "universal" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + }, + "properties" : { + "preserves-vector-representation" : true, + "template-rendering-intent" : "template" + } +} diff --git a/Mac/Resources/Assets.xcassets/accountInoreader.imageset/inoreader_logo.pdf b/Mac/Resources/Assets.xcassets/accountInoreader.imageset/inoreader_logo.pdf new file mode 100644 index 0000000000000000000000000000000000000000..6ae613d529c625fb435896015bb38b9a9a843faf GIT binary patch literal 4092 zcmai%c|6o@_s1<$7=_AGNZ(}5HfBSz?~y&(na#d6#*&gHOSbIULiQv}k+rd}DU*a$ zNDQ(jLWbKjy6>L5=eeKX>vz4b*Y|t9&UMbYzTfM7{&*ijLv>9FX-ODZu#^0ayjZgS z;B{v=7zRK9PqYj8;zdA8)7g!H!&BdGC<0C$hw;SX04Y73haFS!E@NEMJnO<8gJCd0f)$(>Hfz{hiel%vg1D>rPmg5_1}EWk0)d$dJ;-L9%r7@*YKKu zbyw=eeM_VS^Eqi_-8b2S106aEko;-nym8&6M#xIYy88v!%?I(yuXZ*+XbZr6xN1M& zrH9`Y8_I1s_a@skX>>p$l(QN=U*+;>;iC+vrep&j%B5=&a_Bf6V(Y>XpTG-+hPnkS z5zE$m`S(orfXY2v>PswpqSAho|fp=TzZWuy-ZcwZMWFt{+)Umm17gHpT6rtqVzH_xomY~1PD zCJr$W_vvd{KI?&T9@xK%OkEu)L;5#`m|pjyO2QE3`16U!c@O|7b=w$_GRAp(`rt7* zZvg(MLCw>HK;8ES4isj5pq;<+9qj*7oFU#5V}c_9R@9{Gnt%-;rRM48i8t{=VQ|2K zB-Om70mNSke#?RUEr&k!1SypR<$6$M3rMNse4Q~kV=dKxYZr=?hW>AL|E}oldw!-S zW1NvBq73o%aehE>gFAo;cq6aP0Wylx2{xpQ2ov&EKcvZiOw*FW-JGbagveB}b)3#1IIDoXa)#={u5*0Es9%^@2Z>~rNW1BvRw-^d}kL(8}^2?|R z9Hs$l3?nbz65=A$rI=KAor3OzUTma_LL;Q1oOw+7kNKxNE8R9rX2qKN($j=y^0+Mq zPCbX`#5NgDWC~6d#Demy(*-{{7TjdO5lwY6X~=&%9_v;DMuwX$70fL z>9G`%lV(%EGV648bLthE8u!D>pTZOt<zB zZ5J<^w;=(qLHeOcufx`$tF1@9n2!W&DT5>0bRo18A zI{J>LHh8Q`o|jRpz5kQCKgWFruGSAzm+CncS?b!krg*;6h=<#?Co?MdGSUxfnltjO zsjDWK3(y`r>zc@4NLQ+nnZQ!W(-5bfcx{IMaAY1T{Um4isp&|I*eSFbY6N`=GMtV{ zH`C*qMLMv-LVko6p@*Lon+rcy@?}CE%ZiieG_#Mlx2j5eLjMl6B+tvz(|YPNuh*^m zlh#lVLqjm-R1^c{32ItqRJGos5#@Oe^5Qr&TbQspmIZv>0Z za;pv%U4K(wbGhcid)#}-X)T#T%24u`u8lME#0@5#AkK;`LgpoNldE4CA8v=(Z^MjF z6~!jUHpRxT!)F^v)1(i`N@v^s=c1`U&U>7{naZE)kV=~x|48qO=P>(l_9OR425%uQ zLM|wmF&E0PWLX@kgyfe)%C>{=&+JAnR5eBg)bF@_?^sY+NaoJuZstD4eT6#>-i5!Zh zR}Y-9Ns_dZQK_@8Gx1Y3(3LWmva2*&%~LeWEzd1%(Q2^@deQnCcyAx0lGXMwFFLOU zm4hmn!kl}QST=aRz_LKTTNYD$EqYCH+DfP@DqAN>C$8_Z$-B1`ruL1b8qyKhStlWQ z8KS8tzv`of#beEp2XY-3dv6w8&-x+8tPo=!lg&BKX(zrcZX&TLe#S!7;*hy}%|g{q z$NSDqR~t-VPlU@frh1@weD+y+sl=pj%W|N6rcKp2XOn&tX_IA>pCUw&W>ARqk0i2e zy(9RFG=&8YA6uNCsvlU3on{ceA^c=Wr(`nQVnB4@=s*GU5w5RXZzWFR2d_=l^WqaF zv68WN{$6=+uY5?Iwp`qKd3iK$&bQOObNrpc*j_zFj8&I4Q7fh=r6hTdo5XB;C#~{o z;?>H!q%HKS%W8?@1;r@EIK>mqzRhKUQroCKx;@{W@%7QKb33CH1CT7}G1EM_5Tpq* zV^Cy$f#1R{g9q*Hp;_$~pOV{hK_}}vP z14*DY)YUqhwBvi<^lHV#aq4pVY4&M#X$)&!*0`aOrlFf=E^bjhqZw-%3luAGp5fuR zA>fNI-Fh>w8#%r789cor3A4Uez4RXcj9l7Jsz|VFv$%GikLS$kNw)o{6YZsBy^0OH z20t=rG`T5~k~G&XHW#;MvyIzL1f_*N4I5NX>$Hi&=v3%%=uFcYs66}R^VIHJ$V_QU zLP~)staPySm2+6lcFmBgAS${_%m$_)OqA+?7eLe+UpNo1Tse`iJea5_;%(v3lz#UQ zz3kM&!(+$>U;BIygT5oJ@&Ow`zl`(G*c) zz>3AK%Z zGiQklH|mzN-}ihNZJBfr8lsJ(?_yBoW9NMy)VpQqTCU>Wh59)4xP!EqztGs?7-Scu zzO22LNYV<|D(Y#E_ZgOdJ1X-~CI#6Zm(=}a`dW|Y-ly+sH%^p&F@zN~Y=dOa%B_9w z**>$HbL8UK_2|GyUxfE^H)~&8MqB2Md>o0YEkrus(7Q4DC3q9QU*2a{X?7Q|%64i;3cjyl|DE*jO|3CcC1lVxm7Jt1BZIp3@#?X*ypRY;Zp3ky82I@b;)fDRE=z z!Kgi{`i^6KM7^5Se(H}(gN{R_Qj(Zvjpl+@xfUt*N9=gOlZ~#g{jq67)8Q?mf7EWJ z4wmKK@}m$P(S4m?T?ZF4lrBv?Y?j*@*>s=7&d&__Ijv+0uZNt~1t~%E<>bPR;fk3(Nc?p&E*S za`SZj6V$!`BJ{rjT=usBDu82sFw~|`#2tk(FagYPcyDJ<4?r3sDUAfIMO1y9-LL=@ zqJn_QAsnqm0V5w2o)7>~Y5gbQ`x8W|kWTFh3DhWcDu07T)Gt6GP>3`H3Wq>oFc{Pl z0uiQ8s^4W#?12mLf4ltsk^Xp`0~i9xfg%4M01|s4sJbu|=a3rU}AR-`A6hR`=TMD7~8bXn-bWB3%O?r_kpdd&mf+Es;6O?A?MMQ~6 z6A_T!JJQh`-txVE^WHmm=gc`f|9$p3XZAVspWiN*u8NuvR9FPa)iJj{w^Fe4@>53_ zPy_@4xuP9_GBO~rn!S@J)}8otLV03UuozcsEC{THb+Prd13{sZ;vhLWpogbB7Uc}| zCDl&Vd@?RUt-4?tAx77IG`d}PCteTyoirA>`B_2tnBwT0X2WORl~JC$j1Hl}#U5Nnpj1rQoO_^F=0RZ}fouHwiPtRl`j!i_ni)?e>*eSNX`pYf?x3 zWylGnLHCw-@8c)kuZpWU1m)93jVkV}t|C;+$B*`A-u-aUe#ljm&vqEN$~-ytlkHdm z$6Lns29dy!dam||MxS|JS-gj5%d{a=jc|#|y{>3=%g?~neOx^g&m+y11U3Yn;IU3d z{kv*W$uM0hjA_z-tCTCc8LpjKP;9>+uhVMQ|o=&Usw+4ehOLTL|j(*C8m6}3{ zRebiuU~yZ5Rp02>B4b{GS@u$XHIpggK!!A5*fFTD9F4 zlqyx(-93Ylv}MfPzC~oOUZnhKhbJs|S4LPXKEYwapeQ3&3;6a?#PQd`#+rEz2p3JC zeK{D@`7sDEl;Ou&{xOTjC~^^7%Ri5Y@Z1^@Kov)MHB8+9Se0>YhY#(ta`a%*uJB6^ zK(Ny3Ci(Qm=Nd`r7fbl9wmanLb8pc3ZF15Ui+&Wmm-wh94wug&-ttW;`yS$=BQP9y zJ>RlRVaRT^PCh;ViLE~4#eK{E+;y3F!`iK91#A%s9xDUAS-z->psG|m@XQ3fsDS=! zL9#5(597uO)5_S)a_Q7^R-YpnAhOL(fHNXd=x4>6u>5n5~Y# z*0$iUGi~w%Tl_lKp5Sy^{p3gKNSoBYTbuPuC*cg{5;>d`-==?~lagIDs{; zoc(o>KBIXs?_ftE`+I-oV)re2Lhn_H3nGRzT9yErgiQl5r?$M&;cUc%*23pTR;TS| z;IP%9VX+-3SUKH7DpEs#>)foJX!F6z^?(#wpdQ)#?%BXS-C6Gv^C?4m(cD0JLJXg^ z6?whKa+N_ncVTM>)G}$hDx^Gq(_Gs^60?*1h02U`3yWMla-)=u7Pm}@6|3o}WFMlB zTBCY>Mfy$e$(!+vM9bZt@DA7^qBv`_{SL0OoL+lK0i~+n01cBar-uCC2=LW90F3Q% zHw5E?#~b8(_nYN<)_H^~nhAFf^EHjh=a@&+j`g0o7zoAhn}2C4!cI(U@9O>JlmAH$ zj~93c#JX7jpH=@nyqHO=TyJKBEK``R5J_xLj^>Foa$6!4`@IM7* zR~Jv>xCiLWHTBQz@UMJlI`|v&tS& zkmz3te#;^DTaH`AH-Ht-+}MR^#UQW>*4rL~)ki4($B$uRP}u+O*uR@}MyijY!6?&1 z0$v>diJk+*waem91^O(l&Ir(pLWby)MTT>GtDI9~xWsqc+OUNb@sI|}{b|Y}4fkgKt4AACjOd0~uGGqN3F2m+BTF`@?z{^71$e)k!Uv0l!kDtCvP(H;Ix3v@3g!hGd!FLBXR}yL`mVl( zzldqnok-`J%83DFnLp+FZkuzT0*g09rjyL=^9~FgJl7(DFr-<1Sm4fbih`*!TwRaa zCL^It?vQ-zPV@Ls((VO`Z@%qpG$0Cz&c8JB)P8R9oz2l!wZS18Dv;c+J@v>}i?CZm z{RF}sQsJ7aO3G#8oMxA>R>r!vW->f)ci22Sc|FMBRQ8?!vC$UyD&d7<%nOrAr`1w0 zo{40S)ASizbyJEFNsaS)g}JFxoedDl_BoQ8iRU}lBb_W0JEp05E<9dcb@Cw1bQBg? z6hF=kbA8_&DY>84yMBCII-glS^d^!~1gkoiUy!e<^5FwD4US-ax=;6OrbW{JV^6!_ z^UN0Jt%yYgbW5-L36VE#WBj@U1lN4rdEDRLOh?@`BDyK`j=Ud@>d zcWNc0kEif_3516VL&ya0UStgsaU-7qk%Wh+(~+l=3#*gaD*#?8%6%aLDnh@IdOvV* zBN+_!{{*-dCgyhD9B`-QqT2=P5QG9SvQ-m8IuUA58MaBsn5|eG&y-7>rZh}<&6Ltl zSy5MlfxJ^WDxNM;;qVi8;T8S|#aYU_vb#4uSsExU9vr=-_ymHVKP3$ezx0%B0Cn*T z$(xYTN@-R~L|gB76<@~Z6wEDSQyO(lax}GV%v0AkNdzOT+L9<0-cgeGs~J;X+fq@A zH|8Y0bi*-$BbTg5H9ejt_ga0ddcwU~^79X~P*1NgbzPl#Xc9ApzKt42Ye0scVxHdC zVxAYXp%V!`49i0gRplG=l*)TkiCuaYE7WoOZrok7N?aBB7u2dWD@}LH)oE6@pt>vO zFc;BsKrQV^Ok>DO`^72lE#J5N6AT++w5=YS==(RCfWfT6*C*rHyPA38sZ0TmVYD|= zL7YyUhIA~H3zVnfm)hWZp@ll09FcT>9p-4hswZC*-y&JLZzVAxBRQG%Ir-9RLJg4) z92VTN-1r+wJyO;P_bVm}mOAB}nIJ1J+C+KXWL|Ct9Sv4hrO{iG8ubc(3VzCY`WFjb z291lKHe{IU;8g-O0>OwR5!?=Lrl%~aB*8Id1sA}jlRSd+!C47s@>tyn*7%u!Qb(rO zs?cf>np1f@OKqyAO*R6lnx374euPd(N1-1~i+1X9y-f^Ftfki}Qdp||%$0Y8MQI?< z?{i&^c8%0m>{kdILOl0)AZe*{mwgexONHgan$7XfvCgr~RlnCi-v+sRAfkUYFD5Cb zF(z&YK3`9mA&iMt*jxU3%a?M<@4|mSg(Jl#g)}9uSj)(Dh+!zB*tu9|5aPh?fN~gh zI35x%i6s;ed|nVTtl+<9PaZB;HbnW?9Xb4HUzS}?Vo7IdV!6s<#Dar&iC#^2N$*LY zOJ9I@*Vvg}cnvU}GhKLX2}wy?|6pjtRsC2ptE_yjK&W3Xcf3Tl3{zNbY@2hdy6>_@ zqOh5`Vy$_tfsc}oCfFEkRiU?$C8w8JmYLg(Xf_Le-|`9c_3mTEXRU=<(OJ!?7pR;m z%+2D2l79Xi(;Vq83Cx>&(OYseX55ug8OTIrY>&3Vm%$0cyA6aI0=4739XGs0w6Qz8 z@|%fCsoL;M$#$7{_jCN79SU5KeQf+VgK3<}N^nikKxjpf-GtBNoUwDwa^+F`*N${Y z3rt{lq{9rRx-Wlx{&iWA(4=?sTA*~gMddhCDT zee{OIMuD7^T$Eg_+~p?krjkJL0qT_O)ca_BXJm8XXyjN2AOR?)S_I|-)Bv|BWqAYe0=~yXjK*E zjz;ykcc0%O9>+3iGWn?WAUait5ZbB%syJ0moUx!u^{iTqX$&Y|mWlluV*sbOd(r;q zam|M_tJA=lbzu?n)auo*?yu*HdI{z6R;?!Y_^)4MXPcz^6?M6-Xilqq*Q(xU4lt6` z`0zM!p-W&PcFW=bdy)Xag}(~#SHX2yL}8HSNJiugnU3P??_RI0wnJx&lH-$e_(Y2O zi$2WO?x5c6bg%x#7M2(7Ms(Y=!;=EnW{3o5rV4ero+tkKugA z^}yspwZp3kTLd=qz21jQ^SiU@vo5`CJv%+eL83OIK3=v>-ajKxT1D3#Y04so%gx8? zZ~0iXHcb6!T8VQ8IjfIu_Nw*9Vy{iQL{ALrz0|90x@%XxG2f+BucSAH7wR*kaq4tp zbXps?sV;LE!*N*l|3LRnM^Ec;eM?-KGzq+OIR0TTd<~zsmv`**-J8sY4f+===&RoYHi$zE<~whgulR#{WuN+2L2 z5P98gab82xgCpXF;>ludv58$(Gxxe(Prv_A4!B&hq$`qBe*loUA-Of(eZao)f?8(O zFFLSziRUzP@69LEXw$6WZ^KbeWev;roVLIyI}`q+fzpZ&VO8?%>|Uj5!ylaSEI z`23kS+dY3%Uz#uuqpt3mcluQ#0WOK#PtsWW9yn$86-99bNLC-xcw=brq^xJLf?{L#8_ zQ@}6FZ?a2)6Q}(YMYNXkAN(aw?M^YPGub>q9sU=^@@1z(2O~B`_}$f)BXy*L2QVuJ0+RqV+2m)#~YRiZ+1R>@yX57DOw{x>M1~)Jh(aiVr&3;OMNoJ7GG2Ry4 z)3NE;zmg`eF;Ungc{IG|ykNaJJK$r#kzWu!QPL#87kZj?jM?o@SX$LN&`HURmG`+% zb+YZt?QAnYxgWlB{BKr1L)A03CGsp%Sy>6?fwcymv8q1E;&1#t8D2|5r+7lqbr`)%H(R z_xOv^|3Pqx-zE?d+}aC6Jj&p8MqzXeK)12(9`>#-ASgr_Dh4v=Rr0cTvIfB*ilQQt zqPFIIAU!XXyQe>h$m@R~zON@A5z~nW9iGHlDntSY@~TL|ATS6N0)s=KFc=(e3W4wt zFJhdwtMyq3=>HD+=OcaHu{J;mND>J7PXmdGii(JWY(Rf$P?#ifInNr%|b$E5%GU%aH#0NG$qd1k+jBO#4+M1qG$t? d1OERZfBqF7p2PzEv3hX01RTi4rK+O_{2wlWsz(3- literal 0 HcmV?d00001 diff --git a/Mac/Scriptability/Account+Scriptability.swift b/Mac/Scriptability/Account+Scriptability.swift index 8e3b00edc..7e97dd88b 100644 --- a/Mac/Scriptability/Account+Scriptability.swift +++ b/Mac/Scriptability/Account+Scriptability.swift @@ -170,6 +170,12 @@ class ScriptableAccount: NSObject, UniqueIdScriptingObject, ScriptingObjectConta osType = "NBlr" case .freshRSS: osType = "Frsh" + case .inoreader: + osType = "Inrd" + case .bazQux: + osType = "Bzqx" + case .theOldReader: + osType = "Tord" } return osType.fourCharCode }