From 018597aeefd20a4dd6d7ec57dfa9306856169418 Mon Sep 17 00:00:00 2001 From: Maurice Parker Date: Sun, 3 May 2020 14:35:12 -0500 Subject: [PATCH] Specify correct NNW user agent on Feed Provider requests --- .../Account/FeedProvider/Reddit/RedditFeedProvider.swift | 4 +++- .../Account/FeedProvider/Twitter/TwitterFeedProvider.swift | 6 ++++-- 2 files changed, 7 insertions(+), 3 deletions(-) diff --git a/Frameworks/Account/FeedProvider/Reddit/RedditFeedProvider.swift b/Frameworks/Account/FeedProvider/Reddit/RedditFeedProvider.swift index e29356715..77225d220 100644 --- a/Frameworks/Account/FeedProvider/Reddit/RedditFeedProvider.swift +++ b/Frameworks/Account/FeedProvider/Reddit/RedditFeedProvider.swift @@ -10,6 +10,7 @@ import Foundation import OAuthSwift import Secrets import RSParser +import RSWeb public enum RedditFeedProviderError: LocalizedError { case unknown @@ -26,6 +27,7 @@ public struct RedditFeedProvider: FeedProvider { private static let server = "www.reddit.com" private static let apiBase = "https://oauth.reddit.com" + private static let userAgentHeaders = UserAgent.headers() as! [String: String] private static let userPaths = ["/home", "/notifications"] private static let reservedPaths = ["/search", "/explore", "/messages", "/i", "/compose"] @@ -177,7 +179,7 @@ private extension RedditFeedProvider { return } - client.request(Self.apiBase + "/api/v1/me", method: .GET) { result in + client.request(Self.apiBase + "/api/v1/me", method: .GET, headers: Self.userAgentHeaders) { result in switch result { case .success(let response): if let redditUser = try? JSONDecoder().decode(RedditUser.self, from: response.data), let username = redditUser.name { diff --git a/Frameworks/Account/FeedProvider/Twitter/TwitterFeedProvider.swift b/Frameworks/Account/FeedProvider/Twitter/TwitterFeedProvider.swift index 1d27cb8d0..63fa5a176 100644 --- a/Frameworks/Account/FeedProvider/Twitter/TwitterFeedProvider.swift +++ b/Frameworks/Account/FeedProvider/Twitter/TwitterFeedProvider.swift @@ -10,6 +10,7 @@ import Foundation import Secrets import OAuthSwift import RSParser +import RSWeb public enum TwitterFeedProviderError: LocalizedError { case screenNameNotFound @@ -36,6 +37,7 @@ public struct TwitterFeedProvider: FeedProvider { private static let server = "api.twitter.com" private static let apiBase = "https://api.twitter.com/1.1/" + private static let userAgentHeaders = UserAgent.headers() as! [String: String] private static let dateFormat = "EEE MMM dd HH:mm:ss Z yyyy" private static let userPaths = ["/home", "/notifications"] @@ -306,7 +308,7 @@ private extension TwitterFeedProvider { let url = "\(Self.apiBase)users/show.json" let parameters = ["screen_name": screenName] - client.get(url, parameters: parameters) { result in + client.get(url, parameters: parameters, headers: Self.userAgentHeaders) { result in switch result { case .success(let response): let decoder = JSONDecoder() @@ -327,7 +329,7 @@ private extension TwitterFeedProvider { var expandedParameters = parameters expandedParameters["tweet_mode"] = "extended" - client.get(url, parameters: expandedParameters) { result in + client.get(url, parameters: expandedParameters, headers: Self.userAgentHeaders) { result in switch result { case .success(let response):