summaryrefslogtreecommitdiff
path: root/Sora/Data/Booru/BooruManager.swift
diff options
context:
space:
mode:
Diffstat (limited to 'Sora/Data/Booru/BooruManager.swift')
-rw-r--r--Sora/Data/Booru/BooruManager.swift40
1 files changed, 21 insertions, 19 deletions
diff --git a/Sora/Data/Booru/BooruManager.swift b/Sora/Data/Booru/BooruManager.swift
index 8f055af..0909885 100644
--- a/Sora/Data/Booru/BooruManager.swift
+++ b/Sora/Data/Booru/BooruManager.swift
@@ -309,9 +309,13 @@ class BooruManager: ObservableObject { // swiftlint:disable:this type_body_leng
guard !Task.isCancelled else { return [] }
let parsedTags =
- flavor == .danbooru
- ? DanbooruTagParser(data: data).parse()
- : BooruTagXMLParser(data: data).parse()
+ if flavor == .danbooru {
+ DanbooruTagParser(data: data).parse()
+ } else if flavor == .gelbooru, provider != .safebooru {
+ GelbooruAutocompleteTagParser(data: data).parse()
+ } else {
+ BooruTagXMLParser(data: data).parse()
+ }
return parsedTags.sorted { $0.count > $1.count }
} catch {
@@ -500,24 +504,22 @@ class BooruManager: ObservableObject { // swiftlint:disable:this type_body_leng
components.host = domain
components.path = "/index.php"
- var queryItems = [
- URLQueryItem(name: "page", value: "dapi"),
- URLQueryItem(name: "s", value: "tag"),
- URLQueryItem(name: "q", value: "index"),
- URLQueryItem(name: "name_pattern", value: "%\(name)%"),
- URLQueryItem(name: "orderby", value: "count"),
- ]
-
- if let validCredentials = credentials,
- !validCredentials.apiKey.isEmpty,
- validCredentials.userID != 0
- {
- queryItems.append(URLQueryItem(name: "api_key", value: validCredentials.apiKey))
- queryItems.append(URLQueryItem(name: "user_id", value: String(validCredentials.userID)))
+ if provider == .safebooru {
+ components.queryItems = [
+ URLQueryItem(name: "page", value: "dapi"),
+ URLQueryItem(name: "s", value: "tag"),
+ URLQueryItem(name: "q", value: "index"),
+ URLQueryItem(name: "name_pattern", value: "%\(name)%"),
+ URLQueryItem(name: "orderby", value: "count"),
+ ]
+ } else {
+ components.queryItems = [
+ URLQueryItem(name: "page", value: "autocomplete2"),
+ URLQueryItem(name: "type", value: "tag_query"),
+ URLQueryItem(name: "term", value: name),
+ ]
}
- components.queryItems = queryItems
-
return components.url
case .danbooru: