diff options
| author | Fuwn <[email protected]> | 2025-06-12 05:52:18 -0700 |
|---|---|---|
| committer | Fuwn <[email protected]> | 2025-06-12 05:52:18 -0700 |
| commit | 357fa05aa465d46dbdb7aafa82908eae9ed442d7 (patch) | |
| tree | fdfb17a26898a392b71202b52f83d04e06188c2d | |
| parent | feat: Development commit (diff) | |
| download | sora-testing-357fa05aa465d46dbdb7aafa82908eae9ed442d7.tar.xz sora-testing-357fa05aa465d46dbdb7aafa82908eae9ed442d7.zip | |
feat: Development commit
| -rw-r--r-- | Sora/Data/Booru/BooruManager.swift | 15 | ||||
| -rw-r--r-- | Sora/Data/Booru/Provider/BooruProviderFlavor.swift | 10 |
2 files changed, 20 insertions, 5 deletions
diff --git a/Sora/Data/Booru/BooruManager.swift b/Sora/Data/Booru/BooruManager.swift index 2ae2277..1abc7b6 100644 --- a/Sora/Data/Booru/BooruManager.swift +++ b/Sora/Data/Booru/BooruManager.swift @@ -184,7 +184,7 @@ class BooruManager: ObservableObject { currentTask = Task { isNavigatingHistory = false } } - func fetchAllTags(limit: Int = 0) { + func fetchAllTags(limit: Int = 10_000) { guard let url = urlForTags(limit: limit) else { return } Task { @@ -197,7 +197,9 @@ class BooruManager: ObservableObject { saveTagsToCache() } catch { - if (error as? URLError)?.code != .cancelled { debugPrint("BooruManager.fetchAllTags: \(error)") } + if (error as? URLError)?.code != .cancelled { + debugPrint("BooruManager.fetchAllTags: \(error)") + } } } } @@ -239,13 +241,16 @@ class BooruManager: ObservableObject { } } - private func urlForTags(limit: Int) -> URL? { + private func urlForTags(limit: Int, order: String = "count") -> URL? { switch flavor { case .moebooru: - return URL(string: "https://\(domain)/tag.xml?limit=\(limit)") + return URL(string: "https://\(domain)/tag.xml?limit=\(limit)&order=\(order)") case .gelbooru: - return URL(string: "https://\(domain)/index.php?page=dapi&s=tag&q=index&limit=\(limit)") + return URL( + string: + "https://\(domain)/index.php?page=dapi&s=tag&q=index&limit=\(limit)&orderby=\(order)" + ) case .danbooru: return nil diff --git a/Sora/Data/Booru/Provider/BooruProviderFlavor.swift b/Sora/Data/Booru/Provider/BooruProviderFlavor.swift index aa67b4e..bf14ca8 100644 --- a/Sora/Data/Booru/Provider/BooruProviderFlavor.swift +++ b/Sora/Data/Booru/Provider/BooruProviderFlavor.swift @@ -7,6 +7,16 @@ enum BooruProviderFlavor: String, CaseIterable, Codable { self = Self.providerMap[provider] ?? .gelbooru } + static let supportedTagOrder: [Self: [String]] = { + let moebooruAndGelbooruOrder = ["date", "count", "name"] + + return [ + .danbooru: ["name", "date", "count", "similarity"], + .moebooru: moebooruAndGelbooruOrder, + .gelbooru: moebooruAndGelbooruOrder, + ] + }() + private static let providerMap: [BooruProvider: Self] = [ .danbooru: .danbooru, .yandere: .moebooru, |