diff options
Diffstat (limited to 'Sora')
| -rw-r--r-- | Sora/Data/Booru/Booru.swift | 4 | ||||
| -rw-r--r-- | Sora/Data/Booru/BooruManager.swift | 16 | ||||
| -rw-r--r-- | Sora/Data/Booru/BooruProvider.swift | 4 | ||||
| -rw-r--r-- | Sora/Data/Settings/Settings.swift | 2 | ||||
| -rw-r--r-- | Sora/Views/BookmarksView.swift | 2 | ||||
| -rw-r--r-- | Sora/Views/MainView.swift | 10 | ||||
| -rw-r--r-- | Sora/Views/Settings/SettingsSourceView.swift | 2 |
7 files changed, 20 insertions, 20 deletions
diff --git a/Sora/Data/Booru/Booru.swift b/Sora/Data/Booru/Booru.swift deleted file mode 100644 index 8dce279..0000000 --- a/Sora/Data/Booru/Booru.swift +++ /dev/null @@ -1,4 +0,0 @@ -enum Booru: String, CaseIterable { - case yandere - case safebooru -} diff --git a/Sora/Data/Booru/BooruManager.swift b/Sora/Data/Booru/BooruManager.swift index 5eb6f70..1beb795 100644 --- a/Sora/Data/Booru/BooruManager.swift +++ b/Sora/Data/Booru/BooruManager.swift @@ -12,7 +12,7 @@ class BooruManager: ObservableObject { @Published var selectedPost: BooruPost? #endif private var currentTask: Task<Void, Never>? - private let booru: Booru? + private let booruProvider: BooruProvider? var tags: [String] { if searchText.isEmpty { return [] @@ -24,15 +24,15 @@ class BooruManager: ObservableObject { .filter { !$0.isEmpty } } - init(booru: Booru? = nil) { - self.booru = booru + init(_ provider: BooruProvider? = nil) { + self.booruProvider = provider fetchAllTags() } func fetchPosts(page: Int = 1, limit: Int = 100, tags: [String] = [], replace: Bool = false) async { guard !isLoading else { return } - guard booru != nil else { return } + guard booruProvider != nil else { return } currentTask?.cancel() @@ -46,7 +46,7 @@ class BooruManager: ObservableObject { self.currentPage = 1 } - guard let url = urlForPosts(page: self.booru == .safebooru ? page - 1 : page, limit: limit, tags: tags) else { + guard let url = urlForPosts(page: self.booruProvider == .safebooru ? page - 1 : page, limit: limit, tags: tags) else { return } @@ -93,7 +93,7 @@ class BooruManager: ObservableObject { } func fetchAllTags(limit: Int = 100_000) { - guard booru != nil else { return } + guard booruProvider != nil else { return } Task { guard let url = urlForTags(limit: limit) else { return } @@ -119,7 +119,7 @@ class BooruManager: ObservableObject { private func urlForPosts(page: Int, limit: Int, tags: [String]) -> URL? { let tagString = tags.joined(separator: "+") - switch booru { + switch booruProvider { case .yandere: return URL(string: "https://yande.re/post.xml?page=\(page)&limit=\(limit)&tags=\(tagString)") case .safebooru: @@ -130,7 +130,7 @@ class BooruManager: ObservableObject { } private func urlForTags(limit: Int) -> URL? { - switch booru { + switch booruProvider { case .yandere: return URL(string: "https://yande.re/tag.xml?limit=\(limit)") case .safebooru: diff --git a/Sora/Data/Booru/BooruProvider.swift b/Sora/Data/Booru/BooruProvider.swift new file mode 100644 index 0000000..18cfd64 --- /dev/null +++ b/Sora/Data/Booru/BooruProvider.swift @@ -0,0 +1,4 @@ +enum BooruProvider: String, CaseIterable { + case yandere + case safebooru +} diff --git a/Sora/Data/Settings/Settings.swift b/Sora/Data/Settings/Settings.swift index 2d76e9a..e8d1510 100644 --- a/Sora/Data/Settings/Settings.swift +++ b/Sora/Data/Settings/Settings.swift @@ -12,7 +12,7 @@ class Settings: ObservableObject { @AppStorage("blurNSFWThumbnails") var blurNSFWThumbnails: Bool = true @AppStorage("showNSFWPosts") var showNSFWPosts: Bool = false @AppStorage("bookmarks") private var bookmarksData: Data = .init() - @AppStorage("preferredBooru") var preferredBooru: Booru = .yandere + @AppStorage("preferredBooru") var preferredBooru: BooruProvider = .yandere var bookmarks: [Bookmark] { get { diff --git a/Sora/Views/BookmarksView.swift b/Sora/Views/BookmarksView.swift index cafb431..d1c5776 100644 --- a/Sora/Views/BookmarksView.swift +++ b/Sora/Views/BookmarksView.swift @@ -59,5 +59,5 @@ struct BookmarksView: View { #Preview { BookmarksView(selectedTab: .constant(1)) .environmentObject(Settings()) - .environmentObject(MoebooruManager()) + .environmentObject(BooruManager(.yandere)) } diff --git a/Sora/Views/MainView.swift b/Sora/Views/MainView.swift index af56e06..949e024 100644 --- a/Sora/Views/MainView.swift +++ b/Sora/Views/MainView.swift @@ -3,7 +3,7 @@ import SwiftUI struct MainView: View { @EnvironmentObject var settings: Settings @State private var selectedTab: Int = 0 - @State private var manager = BooruManager(booru: .yandere) + @State private var manager = BooruManager(.yandere) var body: some View { #if os(macOS) @@ -11,14 +11,14 @@ struct MainView: View { .environmentObject(settings) .environmentObject(manager) .onChange(of: settings.preferredBooru) { _, newState in - self.manager = BooruManager(booru: newState) + self.manager = BooruManager(newState) Task { await self.manager.fetchPosts() } } .onAppear { - self.manager = BooruManager(booru: self.settings.preferredBooru) + self.manager = BooruManager(self.settings.preferredBooru) Task { if manager.posts.isEmpty { @@ -54,14 +54,14 @@ struct MainView: View { } .environmentObject(settings) .onChange(of: settings.preferredBooru) { _, newState in - self.manager = BooruManager(booru: newState) + self.manager = BooruManager(newState) Task { await self.manager.fetchPosts() } } .onAppear { - self.manager = BooruManager(booru: self.settings.preferredBooru) + self.manager = BooruManager(self.settings.preferredBooru) Task { if manager.posts.isEmpty { diff --git a/Sora/Views/Settings/SettingsSourceView.swift b/Sora/Views/Settings/SettingsSourceView.swift index 8663290..d1f8f30 100644 --- a/Sora/Views/Settings/SettingsSourceView.swift +++ b/Sora/Views/Settings/SettingsSourceView.swift @@ -5,7 +5,7 @@ struct SettingsSourceView: View { var body: some View { Picker("Booru", selection: $settings.preferredBooru) { - ForEach(Booru.allCases, id: \.self) { type in + ForEach(BooruProvider.allCases, id: \.self) { type in Text(type.rawValue.capitalized).tag(type) } } |