mirror of
https://github.com/Prowlarr/Prowlarr.git
synced 2025-09-17 17:14:18 +02:00
Fixed: (Gazelle) Don't use usetoken=0
when UseFreeleechToken is not enabled
Fixes #1668
This commit is contained in:
@@ -46,7 +46,7 @@ namespace NzbDrone.Core.Test.IndexerTests.RedactedTests
|
|||||||
|
|
||||||
torrentInfo.Title.Should().Be("Red Hot Chili Peppers - Californication [1999] [Album] [US / Reissue 2020] [FLAC 24bit Lossless] [Vinyl]");
|
torrentInfo.Title.Should().Be("Red Hot Chili Peppers - Californication [1999] [Album] [US / Reissue 2020] [FLAC 24bit Lossless] [Vinyl]");
|
||||||
torrentInfo.DownloadProtocol.Should().Be(DownloadProtocol.Torrent);
|
torrentInfo.DownloadProtocol.Should().Be(DownloadProtocol.Torrent);
|
||||||
torrentInfo.DownloadUrl.Should().Be("https://redacted.ch/ajax.php?action=download&id=3892313&usetoken=0");
|
torrentInfo.DownloadUrl.Should().Be("https://redacted.ch/ajax.php?action=download&id=3892313");
|
||||||
torrentInfo.InfoUrl.Should().Be("https://redacted.ch/torrents.php?id=16720&torrentid=3892313");
|
torrentInfo.InfoUrl.Should().Be("https://redacted.ch/torrents.php?id=16720&torrentid=3892313");
|
||||||
torrentInfo.CommentUrl.Should().BeNullOrEmpty();
|
torrentInfo.CommentUrl.Should().BeNullOrEmpty();
|
||||||
torrentInfo.Indexer.Should().Be(Subject.Definition.Name);
|
torrentInfo.Indexer.Should().Be(Subject.Definition.Name);
|
||||||
|
@@ -21,7 +21,7 @@ namespace NzbDrone.Core.Test.IndexerTests.SecretCinemaTests
|
|||||||
[SetUp]
|
[SetUp]
|
||||||
public void Setup()
|
public void Setup()
|
||||||
{
|
{
|
||||||
Subject.Definition = new IndexerDefinition()
|
Subject.Definition = new IndexerDefinition
|
||||||
{
|
{
|
||||||
Name = "SecretCinema",
|
Name = "SecretCinema",
|
||||||
Settings = new GazelleSettings { Username = "somekey", Password = "somekey" }
|
Settings = new GazelleSettings { Username = "somekey", Password = "somekey" }
|
||||||
@@ -46,7 +46,7 @@ namespace NzbDrone.Core.Test.IndexerTests.SecretCinemaTests
|
|||||||
|
|
||||||
torrentInfo.Title.Should().Be("Singin' in the Rain (1952) 2160p");
|
torrentInfo.Title.Should().Be("Singin' in the Rain (1952) 2160p");
|
||||||
torrentInfo.DownloadProtocol.Should().Be(DownloadProtocol.Torrent);
|
torrentInfo.DownloadProtocol.Should().Be(DownloadProtocol.Torrent);
|
||||||
torrentInfo.DownloadUrl.Should().Be("https://secret-cinema.pw/torrents.php?action=download&useToken=0&id=45068");
|
torrentInfo.DownloadUrl.Should().Be("https://secret-cinema.pw/torrents.php?action=download&id=45068");
|
||||||
torrentInfo.InfoUrl.Should().Be("https://secret-cinema.pw/torrents.php?id=2497&torrentid=45068");
|
torrentInfo.InfoUrl.Should().Be("https://secret-cinema.pw/torrents.php?id=2497&torrentid=45068");
|
||||||
torrentInfo.CommentUrl.Should().BeNullOrEmpty();
|
torrentInfo.CommentUrl.Should().BeNullOrEmpty();
|
||||||
torrentInfo.Indexer.Should().Be(Subject.Definition.Name);
|
torrentInfo.Indexer.Should().Be(Subject.Definition.Name);
|
||||||
|
@@ -97,8 +97,8 @@ public abstract class GazelleBase<TSettings> : TorrentIndexerBase<TSettings>
|
|||||||
|| html.Contains("This torrent is too large.")
|
|| html.Contains("This torrent is too large.")
|
||||||
|| html.Contains("You cannot use tokens here"))
|
|| html.Contains("You cannot use tokens here"))
|
||||||
{
|
{
|
||||||
// download again with usetoken=0
|
// download again without usetoken=1
|
||||||
var requestLinkNew = link.ToString().Replace("usetoken=1", "usetoken=0");
|
var requestLinkNew = link.ToString().Replace("&usetoken=1", "");
|
||||||
|
|
||||||
response = await base.Download(new Uri(requestLinkNew));
|
response = await base.Download(new Uri(requestLinkNew));
|
||||||
}
|
}
|
||||||
|
@@ -151,9 +151,13 @@ public class GazelleParser : IParseIndexerResponse
|
|||||||
var url = new HttpUri(Settings.BaseUrl)
|
var url = new HttpUri(Settings.BaseUrl)
|
||||||
.CombinePath("/torrents.php")
|
.CombinePath("/torrents.php")
|
||||||
.AddQueryParam("action", "download")
|
.AddQueryParam("action", "download")
|
||||||
.AddQueryParam("usetoken", Settings.UseFreeleechToken ? "1" : "0")
|
|
||||||
.AddQueryParam("id", torrentId);
|
.AddQueryParam("id", torrentId);
|
||||||
|
|
||||||
|
if (Settings.UseFreeleechToken)
|
||||||
|
{
|
||||||
|
url = url.AddQueryParam("usetoken", "1");
|
||||||
|
}
|
||||||
|
|
||||||
return url.FullUri;
|
return url.FullUri;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -215,9 +215,13 @@ public class GreatPosterWallParser : GazelleParser
|
|||||||
var url = new HttpUri(_settings.BaseUrl)
|
var url = new HttpUri(_settings.BaseUrl)
|
||||||
.CombinePath("/torrents.php")
|
.CombinePath("/torrents.php")
|
||||||
.AddQueryParam("action", "download")
|
.AddQueryParam("action", "download")
|
||||||
.AddQueryParam("usetoken", _settings.UseFreeleechToken && canUseToken ? "1" : "0")
|
|
||||||
.AddQueryParam("id", torrentId);
|
.AddQueryParam("id", torrentId);
|
||||||
|
|
||||||
|
if (_settings.UseFreeleechToken && canUseToken)
|
||||||
|
{
|
||||||
|
url = url.AddQueryParam("usetoken", "1");
|
||||||
|
}
|
||||||
|
|
||||||
return url.FullUri;
|
return url.FullUri;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -370,8 +370,6 @@ namespace NzbDrone.Core.Indexers.Definitions
|
|||||||
|
|
||||||
private string GetDownloadUrl(int torrentId, bool canUseToken)
|
private string GetDownloadUrl(int torrentId, bool canUseToken)
|
||||||
{
|
{
|
||||||
// AuthKey is required but not checked, just pass in a dummy variable
|
|
||||||
// to avoid having to track authkey, which is randomly cycled
|
|
||||||
var url = new HttpUri(_settings.BaseUrl)
|
var url = new HttpUri(_settings.BaseUrl)
|
||||||
.CombinePath("/ajax.php")
|
.CombinePath("/ajax.php")
|
||||||
.AddQueryParam("action", "download")
|
.AddQueryParam("action", "download")
|
||||||
|
@@ -336,13 +336,15 @@ namespace NzbDrone.Core.Indexers.Definitions
|
|||||||
|
|
||||||
private string GetDownloadUrl(int torrentId, bool canUseToken)
|
private string GetDownloadUrl(int torrentId, bool canUseToken)
|
||||||
{
|
{
|
||||||
// AuthKey is required but not checked, just pass in a dummy variable
|
|
||||||
// to avoid having to track authkey, which is randomly cycled
|
|
||||||
var url = new HttpUri(_settings.BaseUrl)
|
var url = new HttpUri(_settings.BaseUrl)
|
||||||
.CombinePath("/ajax.php")
|
.CombinePath("/ajax.php")
|
||||||
.AddQueryParam("action", "download")
|
.AddQueryParam("action", "download")
|
||||||
.AddQueryParam("id", torrentId)
|
.AddQueryParam("id", torrentId);
|
||||||
.AddQueryParam("usetoken", (_settings.UseFreeleechToken && canUseToken) ? 1 : 0);
|
|
||||||
|
if (_settings.UseFreeleechToken && canUseToken)
|
||||||
|
{
|
||||||
|
url = url.AddQueryParam("usetoken", "1");
|
||||||
|
}
|
||||||
|
|
||||||
return url.FullUri;
|
return url.FullUri;
|
||||||
}
|
}
|
||||||
|
@@ -213,14 +213,18 @@ public class SecretCinemaParser : IParseIndexerResponse
|
|||||||
return category.Contains(NewznabStandardCategory.Movies) || NewznabStandardCategory.Movies.SubCategories.Any(subCat => category.Contains(subCat));
|
return category.Contains(NewznabStandardCategory.Movies) || NewznabStandardCategory.Movies.SubCategories.Any(subCat => category.Contains(subCat));
|
||||||
}
|
}
|
||||||
|
|
||||||
protected virtual string GetDownloadUrl(int torrentId)
|
private string GetDownloadUrl(int torrentId)
|
||||||
{
|
{
|
||||||
var url = new HttpUri(_settings.BaseUrl)
|
var url = new HttpUri(_settings.BaseUrl)
|
||||||
.CombinePath("/torrents.php")
|
.CombinePath("/torrents.php")
|
||||||
.AddQueryParam("action", "download")
|
.AddQueryParam("action", "download")
|
||||||
.AddQueryParam("useToken", _settings.UseFreeleechToken ? "1" : "0")
|
|
||||||
.AddQueryParam("id", torrentId);
|
.AddQueryParam("id", torrentId);
|
||||||
|
|
||||||
|
if (_settings.UseFreeleechToken)
|
||||||
|
{
|
||||||
|
url = url.AddQueryParam("useToken", "1");
|
||||||
|
}
|
||||||
|
|
||||||
return url.FullUri;
|
return url.FullUri;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user