diff options
| author | Fuwn <[email protected]> | 2025-02-25 21:14:13 -0800 |
|---|---|---|
| committer | Fuwn <[email protected]> | 2025-02-25 21:14:13 -0800 |
| commit | 5c9d5f5f9e39fb669921889b453fbb4e46b48bec (patch) | |
| tree | 0be7551f15774000ce1efda52efe94b58f38985c /Sora/Data | |
| parent | feat: Development commit (diff) | |
| download | sora-testing-5c9d5f5f9e39fb669921889b453fbb4e46b48bec.tar.xz sora-testing-5c9d5f5f9e39fb669921889b453fbb4e46b48bec.zip | |
feat: Development commit
Diffstat (limited to 'Sora/Data')
| -rw-r--r-- | Sora/Data/Booru/BooruManager.swift | 37 | ||||
| -rw-r--r-- | Sora/Data/Booru/BooruProviderFlavor.swift | 14 |
2 files changed, 38 insertions, 13 deletions
diff --git a/Sora/Data/Booru/BooruManager.swift b/Sora/Data/Booru/BooruManager.swift index 7e27730..c64d7e5 100644 --- a/Sora/Data/Booru/BooruManager.swift +++ b/Sora/Data/Booru/BooruManager.swift @@ -10,6 +10,8 @@ class BooruManager: ObservableObject { @Published var endOfData = false @Published var cacheSize: String? @Published var selectedPost: BooruPost? + @Published var flavor: BooruProviderFlavor + @Published var domain: String private var currentTask: Task<Void, Never>? let provider: BooruProvider var tags: [String] { @@ -36,6 +38,24 @@ class BooruManager: ObservableObject { init(_ provider: BooruProvider) { self.provider = provider + self.flavor = BooruProviderFlavor(provider: provider) + + switch provider { + case .yandere: + domain = "yande.re" + + case .konachan: + domain = "konachan.com" + + case .sakugabooru: + domain = "sakugabooru.com" + + case .safebooru: + domain = "safebooru.org" + + case .gelbooru: + domain = "gelbooru.com" + } } func initializeTags() { @@ -153,21 +173,12 @@ class BooruManager: ObservableObject { private func urlForPosts(page: Int, limit: Int, tags: [String]) -> URL? { let tagString = tags.joined(separator: "+") - switch provider { - case .yandere: - return moebooruURL(domain: "yande.re", page: page, limit: limit, tagString: tagString) - - case .konachan: - return moebooruURL(domain: "konachan.com", page: page, limit: limit, tagString: tagString) - - case .sakugabooru: - return moebooruURL(domain: "sakugabooru.com", page: page, limit: limit, tagString: tagString) - - case .safebooru: - return gelbooruURL(domain: "safebooru.org", page: page, limit: limit, tagString: tagString) + switch flavor { + case .moebooru: + return moebooruURL(domain: domain, page: page, limit: limit, tagString: tagString) case .gelbooru: - return gelbooruURL(domain: "gelbooru.com", page: page, limit: limit, tagString: tagString) + return gelbooruURL(domain: domain, page: page, limit: limit, tagString: tagString) } } diff --git a/Sora/Data/Booru/BooruProviderFlavor.swift b/Sora/Data/Booru/BooruProviderFlavor.swift new file mode 100644 index 0000000..69e3d1c --- /dev/null +++ b/Sora/Data/Booru/BooruProviderFlavor.swift @@ -0,0 +1,14 @@ +enum BooruProviderFlavor: String, CaseIterable, Decodable, Encodable { + case gelbooru = "Gelbooru" + case moebooru = "Moebooru" + + init(provider: BooruProvider) { + switch provider { + case .yandere, .konachan, .sakugabooru: + self = .moebooru + + case .safebooru, .gelbooru: + self = .gelbooru + } + } +} |