diff --git a/src/Jackett/Indexers/IPTorrents.cs b/src/Jackett/Indexers/IPTorrents.cs index a595907ee..4c59fd8ac 100644 --- a/src/Jackett/Indexers/IPTorrents.cs +++ b/src/Jackett/Indexers/IPTorrents.cs @@ -56,7 +56,7 @@ namespace Jackett.Indexers return (ConfigurationData)config; } - public async Task ApplyConfiguration(Newtonsoft.Json.Linq.JToken configJson) + public async Task ApplyConfiguration(JToken configJson) { var config = new ConfigurationDataBasicLogin(); diff --git a/src/Jackett/Jackett.csproj b/src/Jackett/Jackett.csproj index 56eae05e6..98b968a8c 100644 --- a/src/Jackett/Jackett.csproj +++ b/src/Jackett/Jackett.csproj @@ -79,6 +79,7 @@ + diff --git a/src/Jackett/Server.cs b/src/Jackett/Server.cs index f460be0f3..77fcf00e9 100644 --- a/src/Jackett/Server.cs +++ b/src/Jackett/Server.cs @@ -109,7 +109,8 @@ namespace Jackett if (context.Request.Url.Segments.Length > 4 && context.Request.Url.Segments[3] == "download/") { - var downloadLink = Encoding.UTF8.GetString(Convert.FromBase64String((context.Request.Url.Segments[4].TrimEnd('/')))); + var downloadSegment = HttpServerUtility.UrlTokenDecode(context.Request.Url.Segments[4].TrimEnd('/')); + var downloadLink = Encoding.UTF8.GetString(downloadSegment); var downloadBytes = await indexer.Download(new Uri(downloadLink)); await context.Response.OutputStream.WriteAsync(downloadBytes, 0, downloadBytes.Length); return; @@ -138,7 +139,7 @@ namespace Jackett foreach (var release in releases) { var originalLink = release.Link; - var encodedLink = Convert.ToBase64String(Encoding.UTF8.GetBytes(originalLink.ToString())) + "/download.torrent"; + var encodedLink = HttpServerUtility.UrlTokenEncode(Encoding.UTF8.GetBytes(originalLink.ToString())) + "/download.torrent"; var proxyLink = string.Format("{0}api/{1}/download/{2}", severUrl, indexerId, encodedLink); release.Link = new Uri(proxyLink); }