From 61c1e934a521c7503dd85baebceb7a17b80ea161 Mon Sep 17 00:00:00 2001 From: Qstick Date: Sat, 19 Jun 2021 17:21:24 -0400 Subject: [PATCH] New: Handle Freeleech flag at IndexerBase This sets freeleech flag automatically for torrent releases with DownloadVolumeFactor = 0 --- .../Indexers/Definitions/FileList/FileListParser.cs | 5 ----- .../Indexers/Definitions/HDBits/HDBitsParser.cs | 7 ++----- .../Definitions/PassThePopcorn/PassThePopcornParser.cs | 5 ----- src/NzbDrone.Core/Indexers/IndexerBase.cs | 6 ++++++ 4 files changed, 8 insertions(+), 15 deletions(-) diff --git a/src/NzbDrone.Core/Indexers/Definitions/FileList/FileListParser.cs b/src/NzbDrone.Core/Indexers/Definitions/FileList/FileListParser.cs index bd42de057..2367cc01f 100644 --- a/src/NzbDrone.Core/Indexers/Definitions/FileList/FileListParser.cs +++ b/src/NzbDrone.Core/Indexers/Definitions/FileList/FileListParser.cs @@ -40,11 +40,6 @@ namespace NzbDrone.Core.Indexers.FileList var flags = new List(); - if (result.FreeLeech) - { - flags.Add(IndexerFlag.FreeLeech); - } - var imdbId = 0; if (result.ImdbId != null && result.ImdbId.Length > 2) { diff --git a/src/NzbDrone.Core/Indexers/Definitions/HDBits/HDBitsParser.cs b/src/NzbDrone.Core/Indexers/Definitions/HDBits/HDBitsParser.cs index 9dd24cf6e..dbf70def2 100644 --- a/src/NzbDrone.Core/Indexers/Definitions/HDBits/HDBitsParser.cs +++ b/src/NzbDrone.Core/Indexers/Definitions/HDBits/HDBitsParser.cs @@ -57,11 +57,6 @@ namespace NzbDrone.Core.Indexers.HDBits var flags = new List(); - if (result.FreeLeech == "yes") - { - flags.Add(IndexerFlag.FreeLeech); - } - if (internalRelease) { flags.Add(IndexerFlag.Internal); @@ -83,6 +78,8 @@ namespace NzbDrone.Core.Indexers.HDBits Internal = internalRelease, ImdbId = result.ImdbInfo?.Id ?? 0, TvdbId = result.TvdbInfo?.Id ?? 0, + DownloadVolumeFactor = result.FreeLeech == "yes" ? 0 : 1, + UploadVolumeFactor = 1, IndexerFlags = flags }); } diff --git a/src/NzbDrone.Core/Indexers/Definitions/PassThePopcorn/PassThePopcornParser.cs b/src/NzbDrone.Core/Indexers/Definitions/PassThePopcorn/PassThePopcornParser.cs index 16882518f..d0a95914c 100644 --- a/src/NzbDrone.Core/Indexers/Definitions/PassThePopcorn/PassThePopcornParser.cs +++ b/src/NzbDrone.Core/Indexers/Definitions/PassThePopcorn/PassThePopcornParser.cs @@ -78,11 +78,6 @@ namespace NzbDrone.Core.Indexers.PassThePopcorn flags.Add(PassThePopcornFlag.Approved); //title = $"{title} ✔"; } - if (torrent.FreeleechType == "Freeleech") - { - flags.Add(IndexerFlag.FreeLeech); - } - if (torrent.Scene) { flags.Add(IndexerFlag.Scene); diff --git a/src/NzbDrone.Core/Indexers/IndexerBase.cs b/src/NzbDrone.Core/Indexers/IndexerBase.cs index 1ef3badea..f2f0b6ca7 100644 --- a/src/NzbDrone.Core/Indexers/IndexerBase.cs +++ b/src/NzbDrone.Core/Indexers/IndexerBase.cs @@ -91,6 +91,12 @@ namespace NzbDrone.Core.Indexers c.Indexer = Definition.Name; c.DownloadProtocol = Protocol; c.IndexerPriority = ((IndexerDefinition)Definition).Priority; + + //Add common flags + if (Protocol == DownloadProtocol.Torrent && ((TorrentInfo)c).DownloadVolumeFactor == 0) + { + c.IndexerFlags.Add(IndexerFlag.FreeLeech); + } }); return result;