diff options
| author | Fuwn <[email protected]> | 2026-03-22 13:40:57 +0000 |
|---|---|---|
| committer | Fuwn <[email protected]> | 2026-03-22 14:02:13 +0000 |
| commit | 92a34a801f423e7fafa9432bc2f48080855a5a53 (patch) | |
| tree | 757f725d3b890fea93f2d3798ce0e9cff6e6c237 /Sora/Data/Booru/BooruManager.swift | |
| parent | build: wire xcodegen team id through just (diff) | |
| download | sora-testing-92a34a801f423e7fafa9432bc2f48080855a5a53.tar.xz sora-testing-92a34a801f423e7fafa9432bc2f48080855a5a53.zip | |
fix: send booru headers for image requests
Diffstat (limited to 'Sora/Data/Booru/BooruManager.swift')
| -rw-r--r-- | Sora/Data/Booru/BooruManager.swift | 40 |
1 files changed, 8 insertions, 32 deletions
diff --git a/Sora/Data/Booru/BooruManager.swift b/Sora/Data/Booru/BooruManager.swift index f5fcf89..6333453 100644 --- a/Sora/Data/Booru/BooruManager.swift +++ b/Sora/Data/Booru/BooruManager.swift @@ -62,8 +62,8 @@ class BooruManager: ObservableObject { // swiftlint:disable:this type_body_leng pageCache.countLimit = 50 pageCache.totalCostLimit = 50 * 1_024 * 1_024 - self.referer = Self.baseReferer(for: provider.domain) - self.userAgent = Self.resolvedUserAgent( + self.referer = BooruRequestConfiguration.baseReferer(for: provider.domain) + self.userAgent = BooruRequestConfiguration.resolvedUserAgent( sendUserAgent: sendUserAgent, customUserAgent: customUserAgent ) @@ -202,30 +202,6 @@ class BooruManager: ObservableObject { // swiftlint:disable:this type_body_leng return components.url } - private static func resolvedUserAgent( - sendUserAgent: Bool, - customUserAgent: String - ) -> String? { - guard sendUserAgent else { return nil } - - let trimmedCustomUserAgent = customUserAgent.trimmingCharacters( - in: .whitespacesAndNewlines - ) - - guard trimmedCustomUserAgent.isEmpty else { - return trimmedCustomUserAgent - } - - let version = Bundle.main.infoDictionary?["CFBundleShortVersionString"] as? String ?? "1.0" - let buildNumber = Bundle.main.infoDictionary?["CFBundleVersion"] as? String ?? "1" - - return "Sora/\(version) (Build \(buildNumber))" - } - - private static func baseReferer(for domain: String) -> String { - "https://\(domain)/" - } - func clearCachedPages() { pageCache.removeAllObjects() urlCache.removeAll() @@ -599,13 +575,13 @@ class BooruManager: ObservableObject { // swiftlint:disable:this type_body_leng } func requestURL(_ url: URL) async throws -> Data { - var headers = HTTPHeaders([HTTPHeader(name: "Referer", value: referer)]) - - if let userAgent { - headers.add(name: "User-Agent", value: userAgent) - } + let request = BooruRequestConfiguration.request( + url: url, + referer: referer, + userAgent: userAgent + ) - return try await AF.request(url, headers: headers) + return try await AF.request(request) .validate(statusCode: 200..<300) .serializingData() .value |