summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFuwn <[email protected]>2025-06-12 05:52:18 -0700
committerFuwn <[email protected]>2025-06-12 05:52:18 -0700
commit357fa05aa465d46dbdb7aafa82908eae9ed442d7 (patch)
treefdfb17a26898a392b71202b52f83d04e06188c2d
parentfeat: Development commit (diff)
downloadsora-testing-357fa05aa465d46dbdb7aafa82908eae9ed442d7.tar.xz
sora-testing-357fa05aa465d46dbdb7aafa82908eae9ed442d7.zip
feat: Development commit
-rw-r--r--Sora/Data/Booru/BooruManager.swift15
-rw-r--r--Sora/Data/Booru/Provider/BooruProviderFlavor.swift10
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,