diff options
Diffstat (limited to 'Sora/Data/Booru/BooruManager.swift')
| -rw-r--r-- | Sora/Data/Booru/BooruManager.swift | 40 |
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: |