From c109133fcca68b739c608365c83f0e0cbff39a48 Mon Sep 17 00:00:00 2001 From: kaso17 Date: Fri, 15 Jun 2018 17:14:56 +0200 Subject: [PATCH] Redacted: fix download without FL tokens --- .../Indexers/Abstract/GazelleTracker.cs | 23 +++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/src/Jackett.Common/Indexers/Abstract/GazelleTracker.cs b/src/Jackett.Common/Indexers/Abstract/GazelleTracker.cs index 64ed10be4..cfad185c4 100644 --- a/src/Jackett.Common/Indexers/Abstract/GazelleTracker.cs +++ b/src/Jackett.Common/Indexers/Abstract/GazelleTracker.cs @@ -283,5 +283,28 @@ namespace Jackett.Common.Indexers.Abstract release.UploadVolumeFactor = 0; } } + + public override async Task Download(Uri link) + { + var content = await base.Download(link); + + // Check if we're out of FL tokens + // most gazelle trackers will simply return the torrent anyway but e.g. redacted will return an error + var requestLink = link.ToString(); + if (content.Length >= 1 + && content[0] != 'd' // simple test for torrent vs HTML content + && requestLink.Contains("usetoken=1")) + { + var html = Encoding.UTF8.GetString(content); + if (html.Contains("You do not have any freeleech tokens left.")) + { + // download again with usetoken=0 + var requestLinkNew = requestLink.Replace("usetoken=1", "usetoken=0"); + content = await base.Download(new Uri(requestLinkNew)); + } + } + + return content; + } } }