diff --git a/Frameworks/Account/FeedProvider/Reddit/RedditFeedProvider.swift b/Frameworks/Account/FeedProvider/Reddit/RedditFeedProvider.swift index 18f0b1934..b293e69f8 100644 --- a/Frameworks/Account/FeedProvider/Reddit/RedditFeedProvider.swift +++ b/Frameworks/Account/FeedProvider/Reddit/RedditFeedProvider.swift @@ -192,8 +192,12 @@ public final class RedditFeedProvider: FeedProvider { fetch(api: api, parameters: [:], resultType: RedditLinkListing.self) { result in switch result { case .success(let linkListing): - let parsedItems = self.makeParsedItems(webFeed.url, identifySubreddit, linkListing) - completion(.success(parsedItems)) + DispatchQueue.global(qos: .background).async { + let parsedItems = self.makeParsedItems(webFeed.url, identifySubreddit, linkListing) + DispatchQueue.main.async { + completion(.success(parsedItems)) + } + } case .failure(let error): completion(.failure(error)) } @@ -324,11 +328,6 @@ private extension RedditFeedProvider { switch result { case .success(let response): -// let jsonString = String(data: response.data, encoding: .utf8) -// let url = FileManager.default.urls(for: .documentDirectory, in: .userDomainMask).first!.appendingPathComponent("reddit.json") -// print("******** writing to: \(url.path)") -// try? jsonString?.write(toFile: url.path, atomically: true, encoding: .utf8) - if let remaining = response.response.value(forHTTPHeaderField: "X-Ratelimit-Remaining") { self.rateLimitRemaining = Int(remaining) } else { diff --git a/Frameworks/Account/FeedProvider/Twitter/TwitterFeedProvider.swift b/Frameworks/Account/FeedProvider/Twitter/TwitterFeedProvider.swift index abce8d951..9fbfa2429 100644 --- a/Frameworks/Account/FeedProvider/Twitter/TwitterFeedProvider.swift +++ b/Frameworks/Account/FeedProvider/Twitter/TwitterFeedProvider.swift @@ -227,8 +227,12 @@ public final class TwitterFeedProvider: FeedProvider { if let sinceID = statuses.first?.idStr { webFeed.sinceToken = sinceID } - let parsedItems = self.makeParsedItems(webFeed.url, statuses) - completion(.success(parsedItems)) + DispatchQueue.global(qos: .background).async { + let parsedItems = self.makeParsedItems(webFeed.url, statuses) + DispatchQueue.main.async { + completion(.success(parsedItems)) + } + } case .failure(let error): completion(.failure(error)) }