mirror of
https://github.com/Ranchero-Software/NetNewsWire.git
synced 2025-02-09 08:39:00 +01:00
Fix build errors triggered by moving code to LocalAccount module.
This commit is contained in:
parent
6b364f3fd3
commit
1a7c2251a3
@ -16,6 +16,7 @@ import Secrets
|
|||||||
import Core
|
import Core
|
||||||
import CommonErrors
|
import CommonErrors
|
||||||
import FeedFinder
|
import FeedFinder
|
||||||
|
import LocalAccount
|
||||||
|
|
||||||
public enum LocalAccountDelegateError: String, Error {
|
public enum LocalAccountDelegateError: String, Error {
|
||||||
case invalidParameter = "An invalid parameter was used."
|
case invalidParameter = "An invalid parameter was used."
|
||||||
|
@ -20,6 +20,7 @@ import Core
|
|||||||
import CloudKitExtras
|
import CloudKitExtras
|
||||||
import CommonErrors
|
import CommonErrors
|
||||||
import FeedFinder
|
import FeedFinder
|
||||||
|
import LocalAccount
|
||||||
|
|
||||||
enum CloudKitAccountDelegateError: LocalizedError {
|
enum CloudKitAccountDelegateError: LocalizedError {
|
||||||
case invalidParameter
|
case invalidParameter
|
||||||
@ -836,59 +837,61 @@ private extension CloudKitAccountDelegate {
|
|||||||
}
|
}
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
if account.hasFeed(withURL: bestFeedSpecifier.urlString) {
|
if account.hasFeed(withURL: bestFeedSpecifier.urlString) {
|
||||||
self.refreshProgress.completeTasks(4)
|
self.refreshProgress.completeTasks(4)
|
||||||
completion(.failure(AccountError.createErrorAlreadySubscribed))
|
completion(.failure(AccountError.createErrorAlreadySubscribed))
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
let feed = account.createFeed(with: nil, url: url.absoluteString, feedID: url.absoluteString, homePageURL: nil)
|
let feed = account.createFeed(with: nil, url: url.absoluteString, feedID: url.absoluteString, homePageURL: nil)
|
||||||
feed.editedName = editedName
|
feed.editedName = editedName
|
||||||
container.addFeed(feed)
|
container.addFeed(feed)
|
||||||
|
|
||||||
InitialFeedDownloader.download(url) { parsedFeed in
|
InitialFeedDownloader.download(url) { parsedFeed in
|
||||||
self.refreshProgress.completeTask()
|
MainActor.assumeIsolated {
|
||||||
|
self.refreshProgress.completeTask()
|
||||||
if let parsedFeed {
|
|
||||||
|
if let parsedFeed {
|
||||||
Task { @MainActor in
|
|
||||||
|
Task { @MainActor in
|
||||||
do {
|
|
||||||
try await account.update(feed: feed, with: parsedFeed)
|
do {
|
||||||
|
try await account.update(feed: feed, with: parsedFeed)
|
||||||
self.accountZone.createFeed(url: bestFeedSpecifier.urlString,
|
|
||||||
name: parsedFeed.title,
|
self.accountZone.createFeed(url: bestFeedSpecifier.urlString,
|
||||||
editedName: editedName,
|
name: parsedFeed.title,
|
||||||
homePageURL: parsedFeed.homePageURL,
|
editedName: editedName,
|
||||||
container: container) { result in
|
homePageURL: parsedFeed.homePageURL,
|
||||||
|
container: container) { result in
|
||||||
self.refreshProgress.completeTask()
|
|
||||||
switch result {
|
self.refreshProgress.completeTask()
|
||||||
case .success(let externalID):
|
switch result {
|
||||||
feed.externalID = externalID
|
case .success(let externalID):
|
||||||
self.sendNewArticlesToTheCloud(account, feed)
|
feed.externalID = externalID
|
||||||
completion(.success(feed))
|
self.sendNewArticlesToTheCloud(account, feed)
|
||||||
case .failure(let error):
|
completion(.success(feed))
|
||||||
container.removeFeed(feed)
|
case .failure(let error):
|
||||||
self.refreshProgress.completeTasks(2)
|
container.removeFeed(feed)
|
||||||
completion(.failure(error))
|
self.refreshProgress.completeTasks(2)
|
||||||
|
completion(.failure(error))
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
} catch {
|
||||||
|
container.removeFeed(feed)
|
||||||
|
self.refreshProgress.completeTasks(3)
|
||||||
|
completion(.failure(error))
|
||||||
}
|
}
|
||||||
} catch {
|
|
||||||
container.removeFeed(feed)
|
|
||||||
self.refreshProgress.completeTasks(3)
|
|
||||||
completion(.failure(error))
|
|
||||||
}
|
}
|
||||||
|
} else {
|
||||||
|
self.refreshProgress.completeTasks(3)
|
||||||
|
container.removeFeed(feed)
|
||||||
|
completion(.failure(AccountError.createErrorNotFound))
|
||||||
}
|
}
|
||||||
} else {
|
}
|
||||||
self.refreshProgress.completeTasks(3)
|
|
||||||
container.removeFeed(feed)
|
|
||||||
completion(.failure(AccountError.createErrorNotFound))
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
case .failure:
|
case .failure:
|
||||||
self.refreshProgress.completeTasks(3)
|
self.refreshProgress.completeTasks(3)
|
||||||
if validateFeed {
|
if validateFeed {
|
||||||
|
@ -21,7 +21,7 @@ public struct InitialFeedDownloader {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@MainActor static func download(_ url: URL,_ completion: @escaping @Sendable (_ parsedFeed: ParsedFeed?) -> Void) {
|
@MainActor public static func download(_ url: URL,_ completion: @escaping @Sendable (_ parsedFeed: ParsedFeed?) -> Void) {
|
||||||
|
|
||||||
downloadUsingCache(url) { (data, response, error) in
|
downloadUsingCache(url) { (data, response, error) in
|
||||||
guard let data = data else {
|
guard let data = data else {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user