summaryrefslogtreecommitdiff
path: root/Sora/Data/Booru/BooruManager.swift
diff options
context:
space:
mode:
authorFuwn <[email protected]>2026-03-22 13:55:55 +0000
committerFuwn <[email protected]>2026-03-22 14:02:13 +0000
commit9a19ff4b3caa8d650a009636e4234f5c677b1438 (patch)
treeef6b2dcab091e2558d06e7c992755fdb53c110b3 /Sora/Data/Booru/BooruManager.swift
parentfix: repair moebooru tag suggestions (diff)
downloadsora-testing-9a19ff4b3caa8d650a009636e4234f5c677b1438.tar.xz
sora-testing-9a19ff4b3caa8d650a009636e4234f5c677b1438.zip
fix: restore danbooru tag suggestions
Diffstat (limited to 'Sora/Data/Booru/BooruManager.swift')
-rw-r--r--Sora/Data/Booru/BooruManager.swift19
1 files changed, 17 insertions, 2 deletions
diff --git a/Sora/Data/Booru/BooruManager.swift b/Sora/Data/Booru/BooruManager.swift
index 7d11158..8f055af 100644
--- a/Sora/Data/Booru/BooruManager.swift
+++ b/Sora/Data/Booru/BooruManager.swift
@@ -308,7 +308,12 @@ class BooruManager: ObservableObject { // swiftlint:disable:this type_body_leng
guard !Task.isCancelled else { return [] }
- return BooruTagXMLParser(data: data).parse().sorted { $0.count > $1.count }
+ let parsedTags =
+ flavor == .danbooru
+ ? DanbooruTagParser(data: data).parse()
+ : BooruTagXMLParser(data: data).parse()
+
+ return parsedTags.sorted { $0.count > $1.count }
} catch {
if (error as? URLError)?.code != .cancelled {
debugPrint("BooruManager.searchTags: \(error)")
@@ -516,7 +521,17 @@ class BooruManager: ObservableObject { // swiftlint:disable:this type_body_leng
return components.url
case .danbooru:
- return nil
+ var components = URLComponents()
+
+ components.scheme = "https"
+ components.host = domain
+ components.path = "/tags.json"
+ components.queryItems = [
+ URLQueryItem(name: "search[name_matches]", value: "\(name)*"),
+ URLQueryItem(name: "limit", value: "50"),
+ ]
+
+ return components.url
}
}