diff options
| author | Fuwn <[email protected]> | 2025-06-16 09:37:27 -0700 |
|---|---|---|
| committer | Fuwn <[email protected]> | 2025-06-16 09:37:27 -0700 |
| commit | d292e582910c990cae8481c966366b34dc7041b3 (patch) | |
| tree | fe11aa49917d793e363094644d6c1662886ece88 /Sora/Data/Booru/BooruManager.swift | |
| parent | feat: Development commit (diff) | |
| download | sora-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.swift | 17 |
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 ) } } |