From b60ddf62e8ee92b6d3fd11912dd7a1fcf11fcfd8 Mon Sep 17 00:00:00 2001 From: Leonardo Galli Date: Sun, 27 May 2018 11:05:23 +0200 Subject: [PATCH] Added: AHD_Internal and G_Scene indexer flags. Also linked a wiki page with more information about indexer flags. Fixes #203 Fixes #1519 --- .../.idea.NzbDrone/.idea/contentModel.xml | 34 +++++++++++-------- .../Indexers/AwesomeHD/AwesomeHDRssParser.cs | 19 ++++++++++- .../Indexers/AwesomeHD/AwesomeHDSettings.cs | 4 +-- .../Indexers/HDBits/HDBitsSettings.cs | 4 +-- .../Indexers/IPTorrents/IPTorrentsSettings.cs | 4 +-- .../Indexers/Nyaa/NyaaSettings.cs | 6 ++-- .../PassThePopcorn/PassThePopcornParser.cs | 7 +++- .../PassThePopcorn/PassThePopcornSettings.cs | 4 +-- .../Indexers/Rarbg/RarbgSettings.cs | 8 ++--- .../TorrentRss/TorrentRssIndexerSettings.cs | 6 ++-- .../Indexers/Torznab/TorznabSettings.cs | 6 ++-- src/NzbDrone.Core/Parser/Model/ReleaseInfo.cs | 8 +++-- src/UI/Cells/IndexerFlagsCell.js | 28 +++++++++++---- .../Options/IndexerOptionsViewTemplate.hbs | 1 + 14 files changed, 93 insertions(+), 46 deletions(-) diff --git a/src/.idea/.idea.NzbDrone/.idea/contentModel.xml b/src/.idea/.idea.NzbDrone/.idea/contentModel.xml index cba07cbb4..f6783621b 100644 --- a/src/.idea/.idea.NzbDrone/.idea/contentModel.xml +++ b/src/.idea/.idea.NzbDrone/.idea/contentModel.xml @@ -1,21 +1,24 @@ - + - - - + + + - - - - + + + + + + + - + @@ -67,10 +70,10 @@ - - - - + + + + @@ -1333,6 +1336,7 @@ + @@ -3292,7 +3296,7 @@ - + @@ -3304,7 +3308,7 @@ - + diff --git a/src/NzbDrone.Core/Indexers/AwesomeHD/AwesomeHDRssParser.cs b/src/NzbDrone.Core/Indexers/AwesomeHD/AwesomeHDRssParser.cs index adb94af27..7d300bddd 100644 --- a/src/NzbDrone.Core/Indexers/AwesomeHD/AwesomeHDRssParser.cs +++ b/src/NzbDrone.Core/Indexers/AwesomeHD/AwesomeHDRssParser.cs @@ -62,6 +62,8 @@ namespace NzbDrone.Core.Indexers.AwesomeHD Subtitles = x.Element("subtitles").Value, EncodeStatus = x.Element("encodestatus").Value, Freeleech = x.Element("freeleech").Value, + Internal = x.Element("internal").Value == "1", + UserRelease = x.Element("userrelease").Value == "1", ImdbId = x.Element("imdb").Value }).ToList(); @@ -71,16 +73,31 @@ namespace NzbDrone.Core.Indexers.AwesomeHD var title = $"{torrent.Name}.{torrent.Year}.{torrent.Resolution}.{torrent.Media}.{torrent.Encoding}.{torrent.AudioFormat}-{torrent.ReleaseGroup}"; IndexerFlags flags = 0; - if (torrent.Freeleech == "0.00" || torrent.Freeleech == "0.25") + if (torrent.Freeleech == "0.00") { flags |= IndexerFlags.G_Freeleech; } + if (torrent.Freeleech == "0.25") + { + flags |= IndexerFlags.G_Freeleech75; + } + + if (torrent.Freeleech == "0.75") + { + flags |= IndexerFlags.G_Freeleech25; + } + if (torrent.Freeleech == "0.50") { flags |= IndexerFlags.G_Halfleech; } + if (torrent.Internal) + { + flags |= IndexerFlags.AHD_Internal; + } + torrentInfos.Add(new TorrentInfo() { Guid = string.Format("AwesomeHD-{0}", id), diff --git a/src/NzbDrone.Core/Indexers/AwesomeHD/AwesomeHDSettings.cs b/src/NzbDrone.Core/Indexers/AwesomeHD/AwesomeHDSettings.cs index 070af66f3..b90cac77a 100644 --- a/src/NzbDrone.Core/Indexers/AwesomeHD/AwesomeHDSettings.cs +++ b/src/NzbDrone.Core/Indexers/AwesomeHD/AwesomeHDSettings.cs @@ -34,8 +34,8 @@ namespace NzbDrone.Core.Indexers.AwesomeHD [FieldDefinition(2, Type = FieldType.Textbox, Label = "Minimum Seeders", HelpText = "Minimum number of seeders required.", Advanced = true)] public int MinimumSeeders { get; set; } - - [FieldDefinition(3, Type = FieldType.Tag, SelectOptions = typeof(IndexerFlags), Label = "Required Flags", HelpText = "What indexer flags are required?", Advanced = true)] + + [FieldDefinition(3, Type = FieldType.Tag, SelectOptions = typeof(IndexerFlags), Label = "Required Flags", HelpText = "What indexer flags are required?", HelpLink = "https://github.com/Radarr/Radarr/wiki/Indexer-Flags#1-required-flags", Advanced = true)] public IEnumerable RequiredFlags { get; set; } public NzbDroneValidationResult Validate() diff --git a/src/NzbDrone.Core/Indexers/HDBits/HDBitsSettings.cs b/src/NzbDrone.Core/Indexers/HDBits/HDBitsSettings.cs index 67dfd0286..2ecfe90d1 100644 --- a/src/NzbDrone.Core/Indexers/HDBits/HDBitsSettings.cs +++ b/src/NzbDrone.Core/Indexers/HDBits/HDBitsSettings.cs @@ -53,8 +53,8 @@ namespace NzbDrone.Core.Indexers.HDBits [FieldDefinition(6, Type = FieldType.Textbox, Label = "Minimum Seeders", HelpText = "Minimum number of seeders required.", Advanced = true)] public int MinimumSeeders { get; set; } - - [FieldDefinition(7, Type = FieldType.Tag, SelectOptions = typeof(IndexerFlags), Label = "Required Flags", HelpText = "What indexer flags are required?", Advanced = true)] + + [FieldDefinition(7, Type = FieldType.Tag, SelectOptions = typeof(IndexerFlags), Label = "Required Flags", HelpText = "What indexer flags are required?", HelpLink = "https://github.com/Radarr/Radarr/wiki/Indexer-Flags#1-required-flags", Advanced = true)] public IEnumerable RequiredFlags { get; set; } public NzbDroneValidationResult Validate() diff --git a/src/NzbDrone.Core/Indexers/IPTorrents/IPTorrentsSettings.cs b/src/NzbDrone.Core/Indexers/IPTorrents/IPTorrentsSettings.cs index 6fcd14103..221f07f49 100644 --- a/src/NzbDrone.Core/Indexers/IPTorrents/IPTorrentsSettings.cs +++ b/src/NzbDrone.Core/Indexers/IPTorrents/IPTorrentsSettings.cs @@ -38,8 +38,8 @@ namespace NzbDrone.Core.Indexers.IPTorrents [FieldDefinition(1, Type = FieldType.Textbox, Label = "Minimum Seeders", HelpText = "Minimum number of seeders required.", Advanced = true)] public int MinimumSeeders { get; set; } - - [FieldDefinition(2, Type = FieldType.Tag, SelectOptions = typeof(IndexerFlags), Label = "Required Flags", HelpText = "What indexer flags are required?", Advanced = true)] + + [FieldDefinition(2, Type = FieldType.Tag, SelectOptions = typeof(IndexerFlags), Label = "Required Flags", HelpText = "What indexer flags are required?", HelpLink = "https://github.com/Radarr/Radarr/wiki/Indexer-Flags#1-required-flags", Advanced = true)] public IEnumerable RequiredFlags { get; set; } public NzbDroneValidationResult Validate() diff --git a/src/NzbDrone.Core/Indexers/Nyaa/NyaaSettings.cs b/src/NzbDrone.Core/Indexers/Nyaa/NyaaSettings.cs index 235e0f137..6f715d078 100644 --- a/src/NzbDrone.Core/Indexers/Nyaa/NyaaSettings.cs +++ b/src/NzbDrone.Core/Indexers/Nyaa/NyaaSettings.cs @@ -35,8 +35,8 @@ namespace NzbDrone.Core.Indexers.Nyaa [FieldDefinition(2, Type = FieldType.Textbox, Label = "Minimum Seeders", HelpText = "Minimum number of seeders required.", Advanced = true)] public int MinimumSeeders { get; set; } - - [FieldDefinition(3, Type = FieldType.Tag, SelectOptions = typeof(IndexerFlags), Label = "Required Flags", HelpText = "What indexer flags are required?", Advanced = true)] + + [FieldDefinition(3, Type = FieldType.Tag, SelectOptions = typeof(IndexerFlags), Label = "Required Flags", HelpText = "What indexer flags are required?", HelpLink = "https://github.com/Radarr/Radarr/wiki/Indexer-Flags#1-required-flags", Advanced = true)] public IEnumerable RequiredFlags { get; set; } public NzbDroneValidationResult Validate() @@ -44,4 +44,4 @@ namespace NzbDrone.Core.Indexers.Nyaa return new NzbDroneValidationResult(Validator.Validate(this)); } } -} \ No newline at end of file +} diff --git a/src/NzbDrone.Core/Indexers/PassThePopcorn/PassThePopcornParser.cs b/src/NzbDrone.Core/Indexers/PassThePopcorn/PassThePopcornParser.cs index 493d50659..8f831b1c7 100644 --- a/src/NzbDrone.Core/Indexers/PassThePopcorn/PassThePopcornParser.cs +++ b/src/NzbDrone.Core/Indexers/PassThePopcorn/PassThePopcornParser.cs @@ -81,6 +81,11 @@ namespace NzbDrone.Core.Indexers.PassThePopcorn flags |= IndexerFlags.G_Freeleech; } + if (torrent.Scene) + { + flags |= IndexerFlags.G_Scene; + } + // Only add approved torrents try { @@ -113,7 +118,7 @@ namespace NzbDrone.Core.Indexers.PassThePopcorn "}. Please immediately report this info on https://github.com/Radarr/Radarr/issues/1584."); throw; } - + } } diff --git a/src/NzbDrone.Core/Indexers/PassThePopcorn/PassThePopcornSettings.cs b/src/NzbDrone.Core/Indexers/PassThePopcorn/PassThePopcornSettings.cs index a44ae9f7e..f4e4104e1 100644 --- a/src/NzbDrone.Core/Indexers/PassThePopcorn/PassThePopcornSettings.cs +++ b/src/NzbDrone.Core/Indexers/PassThePopcorn/PassThePopcornSettings.cs @@ -43,8 +43,8 @@ namespace NzbDrone.Core.Indexers.PassThePopcorn [FieldDefinition(4, Type = FieldType.Textbox, Label = "Minimum Seeders", HelpText = "Minimum number of seeders required.", Advanced = true)] public int MinimumSeeders { get; set; } - - [FieldDefinition(5, Type = FieldType.Tag, SelectOptions = typeof(IndexerFlags), Label = "Required Flags", HelpText = "What indexer flags are required?", Advanced = true)] + + [FieldDefinition(5, Type = FieldType.Tag, SelectOptions = typeof(IndexerFlags), Label = "Required Flags", HelpText = "What indexer flags are required?", HelpLink = "https://github.com/Radarr/Radarr/wiki/Indexer-Flags#1-required-flags", Advanced = true)] public IEnumerable RequiredFlags { get; set; } public NzbDroneValidationResult Validate() diff --git a/src/NzbDrone.Core/Indexers/Rarbg/RarbgSettings.cs b/src/NzbDrone.Core/Indexers/Rarbg/RarbgSettings.cs index c9d7836bf..8c88c3dfd 100644 --- a/src/NzbDrone.Core/Indexers/Rarbg/RarbgSettings.cs +++ b/src/NzbDrone.Core/Indexers/Rarbg/RarbgSettings.cs @@ -30,14 +30,14 @@ namespace NzbDrone.Core.Indexers.Rarbg [FieldDefinition(1, Type = FieldType.Checkbox, Label = "Ranked Only", HelpText = "Only include ranked results.")] public bool RankedOnly { get; set; } - + [FieldDefinition(2, Type = FieldType.Captcha, Label = "CAPTCHA Token", HelpText = "CAPTCHA Clearance token used to handle CloudFlare Anti-DDOS measures on shared-ip VPNs.")] public string CaptchaToken { get; set; } [FieldDefinition(3, Type = FieldType.Textbox, Label = "Minimum Seeders", HelpText = "Minimum number of seeders required.", Advanced = true)] public int MinimumSeeders { get; set; } - - [FieldDefinition(4, Type = FieldType.Tag, SelectOptions = typeof(IndexerFlags), Label = "Required Flags", HelpText = "What indexer flags are required?", Advanced = true)] + + [FieldDefinition(4, Type = FieldType.Tag, SelectOptions = typeof(IndexerFlags), Label = "Required Flags", HelpText = "What indexer flags are required?", HelpLink = "https://github.com/Radarr/Radarr/wiki/Indexer-Flags#1-required-flags", Advanced = true)] public IEnumerable RequiredFlags { get; set; } public NzbDroneValidationResult Validate() @@ -45,4 +45,4 @@ namespace NzbDrone.Core.Indexers.Rarbg return new NzbDroneValidationResult(Validator.Validate(this)); } } -} \ No newline at end of file +} diff --git a/src/NzbDrone.Core/Indexers/TorrentRss/TorrentRssIndexerSettings.cs b/src/NzbDrone.Core/Indexers/TorrentRss/TorrentRssIndexerSettings.cs index e1aba3d6c..f5dacf4bc 100644 --- a/src/NzbDrone.Core/Indexers/TorrentRss/TorrentRssIndexerSettings.cs +++ b/src/NzbDrone.Core/Indexers/TorrentRss/TorrentRssIndexerSettings.cs @@ -36,8 +36,8 @@ namespace NzbDrone.Core.Indexers.TorrentRss [FieldDefinition(3, Type = FieldType.Textbox, Label = "Minimum Seeders", HelpText = "Minimum number of seeders required.", Advanced = true)] public int MinimumSeeders { get; set; } - - [FieldDefinition(4, Type = FieldType.Tag, SelectOptions = typeof(IndexerFlags), Label = "Required Flags", HelpText = "What indexer flags are required?", Advanced = true)] + + [FieldDefinition(4, Type = FieldType.Tag, SelectOptions = typeof(IndexerFlags), Label = "Required Flags", HelpText = "What indexer flags are required?", HelpLink = "https://github.com/Radarr/Radarr/wiki/Indexer-Flags#1-required-flags", Advanced = true)] public IEnumerable RequiredFlags { get; set; } public NzbDroneValidationResult Validate() @@ -45,4 +45,4 @@ namespace NzbDrone.Core.Indexers.TorrentRss return new NzbDroneValidationResult(validator.Validate(this)); } } -} \ No newline at end of file +} diff --git a/src/NzbDrone.Core/Indexers/Torznab/TorznabSettings.cs b/src/NzbDrone.Core/Indexers/Torznab/TorznabSettings.cs index 12b35f189..c4a6b9e7f 100644 --- a/src/NzbDrone.Core/Indexers/Torznab/TorznabSettings.cs +++ b/src/NzbDrone.Core/Indexers/Torznab/TorznabSettings.cs @@ -60,8 +60,8 @@ namespace NzbDrone.Core.Indexers.Torznab [FieldDefinition(7, Type = FieldType.Textbox, Label = "Minimum Seeders", HelpText = "Minimum number of seeders required.", Advanced = true)] public int MinimumSeeders { get; set; } - - [FieldDefinition(8, Type = FieldType.Tag, SelectOptions = typeof(IndexerFlags), Label = "Required Flags", HelpText = "What indexer flags are required?", Advanced = true)] + + [FieldDefinition(8, Type = FieldType.Tag, SelectOptions = typeof(IndexerFlags), Label = "Required Flags", HelpText = "What indexer flags are required?", HelpLink = "https://github.com/Radarr/Radarr/wiki/Indexer-Flags#1-required-flags", Advanced = true)] public IEnumerable RequiredFlags { get; set; } public override NzbDroneValidationResult Validate() @@ -69,4 +69,4 @@ namespace NzbDrone.Core.Indexers.Torznab return new NzbDroneValidationResult(Validator.Validate(this)); } } -} \ No newline at end of file +} diff --git a/src/NzbDrone.Core/Parser/Model/ReleaseInfo.cs b/src/NzbDrone.Core/Parser/Model/ReleaseInfo.cs index d058f3667..6d0d61464 100644 --- a/src/NzbDrone.Core/Parser/Model/ReleaseInfo.cs +++ b/src/NzbDrone.Core/Parser/Model/ReleaseInfo.cs @@ -102,6 +102,10 @@ namespace NzbDrone.Core.Parser.Model G_DoubleUpload = 4, //General PTP_Golden = 8, //PTP PTP_Approved = 16, //PTP - HDB_Internal = 32 //HDBits + HDB_Internal = 32, //HDBits, internal + AHD_Internal = 64, // AHD, internal + G_Scene = 128, //General, the torrent comes from the "scene" + G_Freeleech75 = 256, //Currently only used for AHD, signifies a torrent counts towards 75 percent of your download quota. + G_Freeleech25 = 512 //Currently only used for AHD, signifies a torrent counts towards 25 percent of your download quota. } -} \ No newline at end of file +} diff --git a/src/UI/Cells/IndexerFlagsCell.js b/src/UI/Cells/IndexerFlagsCell.js index 23d176c26..df0802e73 100644 --- a/src/UI/Cells/IndexerFlagsCell.js +++ b/src/UI/Cells/IndexerFlagsCell.js @@ -22,11 +22,11 @@ module.exports = Backgrid.Cell.extend({ switch (flag) { case "G_Freeleech": - addon = "⬇"; - title = "Freeleech"; + addon = "⬇⬇"; + title = "100% Freeleech"; break; case "G_Halfleech": - addon = "⇩"; + addon = "⇩⇩"; title = "50% Freeleech"; break; case "G_DoubleUpload": @@ -34,7 +34,7 @@ module.exports = Backgrid.Cell.extend({ title = "Double upload"; break; case "PTP_Golden": - addon = "🍿"; + addon = "🌟"; title = "Golden"; break; case "PTP_Approved": @@ -42,12 +42,28 @@ module.exports = Backgrid.Cell.extend({ title = "Approved by PTP"; break; case "HDB_Internal": - addon = "⭐️"; + addon = "🚪"; title = "HDBits Internal"; break; + case "G_Scene": + addon = "☠"; + title = "Scene Release"; + break; + case "AHD_Internal": + addon = "🚪"; + title = "AHD Internal"; + break; + case "G_Freeleech75": + addon = "⇩⬇"; + title = "75% Freeleech"; + break; + case "G_Freeleech25": + addon = "⇩"; + title = "25% Freeleech"; + break; } if (addon !== "") { - html += "{1} ".format(title, addon); + html += "{1}".format(title, addon); } }); } diff --git a/src/UI/Settings/Indexers/Options/IndexerOptionsViewTemplate.hbs b/src/UI/Settings/Indexers/Options/IndexerOptionsViewTemplate.hbs index 0bfbd4a0b..8e47ad85d 100644 --- a/src/UI/Settings/Indexers/Options/IndexerOptionsViewTemplate.hbs +++ b/src/UI/Settings/Indexers/Options/IndexerOptionsViewTemplate.hbs @@ -41,6 +41,7 @@
+