From 9d62371c08a8345d4dd029d914603e462f292668 Mon Sep 17 00:00:00 2001 From: kingbri <8082010+kingbri1@users.noreply.github.com> Date: Fri, 28 Nov 2025 01:08:25 -0500 Subject: [PATCH] Debrid: Always use percent encoded queries For URL encoded bodies, always send the percent encoded query since invalid parameter errors will result. Signed-off-by: kingbri <8082010+kingbri1@users.noreply.github.com> --- Ferrite/API/AllDebridWrapper.swift | 2 +- Ferrite/API/PremiumizeWrapper.swift | 6 +++--- Ferrite/API/RealDebridWrapper.swift | 8 ++++---- 3 files changed, 8 insertions(+), 8 deletions(-) diff --git a/Ferrite/API/AllDebridWrapper.swift b/Ferrite/API/AllDebridWrapper.swift index e5b283e..e2a438c 100644 --- a/Ferrite/API/AllDebridWrapper.swift +++ b/Ferrite/API/AllDebridWrapper.swift @@ -283,7 +283,7 @@ class AllDebrid: PollingDebridSource, ObservableObject { URLQueryItem(name: "magnets[]", value: magnetLink) ] - request.httpBody = bodyComponents.query?.data(using: .utf8) + request.httpBody = bodyComponents.percentEncodedQuery?.data(using: .utf8) let data = try await performRequest(request: &request, requestName: #function) let rawResponse = try jsonDecoder.decode(ADResponse.self, from: data).data diff --git a/Ferrite/API/PremiumizeWrapper.swift b/Ferrite/API/PremiumizeWrapper.swift index c83ee0c..31ab07f 100644 --- a/Ferrite/API/PremiumizeWrapper.swift +++ b/Ferrite/API/PremiumizeWrapper.swift @@ -209,7 +209,7 @@ class Premiumize: OAuthDebridSource, ObservableObject { var bodyComponents = URLComponents() bodyComponents.queryItems = [URLQueryItem(name: "src", value: magnet.link)] - request.httpBody = bodyComponents.query?.data(using: .utf8) + request.httpBody = bodyComponents.percentEncodedQuery?.data(using: .utf8) let data = try await performRequest(request: &request, requestName: #function) let rawResponse = try jsonDecoder.decode(DDLResponse.self, from: data) @@ -318,7 +318,7 @@ class Premiumize: OAuthDebridSource, ObservableObject { var bodyComponents = URLComponents() bodyComponents.queryItems = [URLQueryItem(name: "src", value: magnetLink)] - request.httpBody = bodyComponents.query?.data(using: .utf8) + request.httpBody = bodyComponents.percentEncodedQuery?.data(using: .utf8) try await performRequest(request: &request, requestName: #function) } @@ -369,7 +369,7 @@ class Premiumize: OAuthDebridSource, ObservableObject { var bodyComponents = URLComponents() bodyComponents.queryItems = [URLQueryItem(name: "id", value: downloadId)] - request.httpBody = bodyComponents.query?.data(using: .utf8) + request.httpBody = bodyComponents.percentEncodedQuery?.data(using: .utf8) try await performRequest(request: &request, requestName: #function) } diff --git a/Ferrite/API/RealDebridWrapper.swift b/Ferrite/API/RealDebridWrapper.swift index e0294a2..58a288f 100644 --- a/Ferrite/API/RealDebridWrapper.swift +++ b/Ferrite/API/RealDebridWrapper.swift @@ -167,7 +167,7 @@ class RealDebrid: PollingDebridSource, ObservableObject { URLQueryItem(name: "grant_type", value: "http://oauth.net/grant_type/device/1.0") ] - request.httpBody = bodyComponents.query?.data(using: .utf8) + request.httpBody = bodyComponents.percentEncodedQuery?.data(using: .utf8) let (data, _) = try await URLSession.shared.data(for: request) @@ -357,7 +357,7 @@ class RealDebrid: PollingDebridSource, ObservableObject { var bodyComponents = URLComponents() bodyComponents.queryItems = [URLQueryItem(name: "magnet", value: magnetLink)] - request.httpBody = bodyComponents.query?.data(using: .utf8) + request.httpBody = bodyComponents.percentEncodedQuery?.data(using: .utf8) let data = try await performRequest(request: &request, requestName: #function) let rawResponse = try jsonDecoder.decode(AddMagnetResponse.self, from: data) @@ -380,7 +380,7 @@ class RealDebrid: PollingDebridSource, ObservableObject { bodyComponents.queryItems = [URLQueryItem(name: "files", value: joinedIds)] } - request.httpBody = bodyComponents.query?.data(using: .utf8) + request.httpBody = bodyComponents.percentEncodedQuery?.data(using: .utf8) try await performRequest(request: &request, requestName: #function) } @@ -412,7 +412,7 @@ class RealDebrid: PollingDebridSource, ObservableObject { var bodyComponents = URLComponents() bodyComponents.queryItems = [URLQueryItem(name: "link", value: restrictedFile.streamUrlString)] - request.httpBody = bodyComponents.query?.data(using: .utf8) + request.httpBody = bodyComponents.percentEncodedQuery?.data(using: .utf8) let data = try await performRequest(request: &request, requestName: #function) let rawResponse = try jsonDecoder.decode(UnrestrictLinkResponse.self, from: data)