summaryrefslogtreecommitdiff
path: root/Sora/Data/Booru/BooruManager.swift
diff options
context:
space:
mode:
authorFuwn <[email protected]>2025-06-16 09:37:27 -0700
committerFuwn <[email protected]>2025-06-16 09:37:27 -0700
commitd292e582910c990cae8481c966366b34dc7041b3 (patch)
treefe11aa49917d793e363094644d6c1662886ece88 /Sora/Data/Booru/BooruManager.swift
parentfeat: Development commit (diff)
downloadsora-testing-d292e582910c990cae8481c966366b34dc7041b3.tar.xz
sora-testing-d292e582910c990cae8481c966366b34dc7041b3.zip
feat: Development commit
Diffstat (limited to 'Sora/Data/Booru/BooruManager.swift')
-rw-r--r--Sora/Data/Booru/BooruManager.swift17
1 files changed, 14 insertions, 3 deletions
diff --git a/Sora/Data/Booru/BooruManager.swift b/Sora/Data/Booru/BooruManager.swift
index 12d96f0..ce61644 100644
--- a/Sora/Data/Booru/BooruManager.swift
+++ b/Sora/Data/Booru/BooruManager.swift
@@ -28,6 +28,7 @@ class BooruManager: ObservableObject {
.appendingPathComponent("\(BooruProvider.safebooru.asFileNameComponent)_tags.json")
private let pageCache = NSCache<NSString, BooruPageCacheEntry>() // swiftlint:disable:this legacy_objc_type
private let cacheDuration: TimeInterval = 300
+ private let credentials: BooruProviderCredentials?
// MARK: - Computed Properties
var tags: [String] {
@@ -42,10 +43,11 @@ class BooruManager: ObservableObject {
var canGoForwardInHistory: Bool { historyIndex < searchHistory.count - 1 }
// MARK: - Initialisation
- init(_ provider: BooruProvider) {
+ init(_ provider: BooruProvider, credentials: BooruProviderCredentials? = nil) {
self.provider = provider
self.flavor = BooruProviderFlavor(provider: provider)
self.domain = provider.domain
+ self.credentials = credentials
pageCache.countLimit = 50
pageCache.totalCostLimit = 50 * 1_024 * 1_024
@@ -226,9 +228,18 @@ class BooruManager: ObservableObject {
return URL(string: "https://\(domain)/post.xml?page=\(page)&limit=\(limit)&tags=\(tagString)")
case .gelbooru:
+ var urlString =
+ "https://\(domain)/index.php?page=dapi&s=post&q=index&pid=\(page)&limit=\(limit)&tags=\(tagString)"
+
+ if let validCredentials = credentials,
+ !validCredentials.apiKey.isEmpty,
+ validCredentials.userID != 0
+ {
+ urlString += "&api_key=\(validCredentials.apiKey)&user_id=\(validCredentials.userID)"
+ }
+
return URL(
- string:
- "https://\(domain)/index.php?page=dapi&s=post&q=index&pid=\(page)&limit=\(limit)&tags=\(tagString)"
+ string: urlString
)
}
}