summaryrefslogtreecommitdiff
path: root/Sora/Data/Booru/BooruManager.swift
diff options
context:
space:
mode:
authorFuwn <[email protected]>2026-03-22 13:40:57 +0000
committerFuwn <[email protected]>2026-03-22 14:02:13 +0000
commit92a34a801f423e7fafa9432bc2f48080855a5a53 (patch)
tree757f725d3b890fea93f2d3798ce0e9cff6e6c237 /Sora/Data/Booru/BooruManager.swift
parentbuild: wire xcodegen team id through just (diff)
downloadsora-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.swift40
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