From 7e0f88ad7ac8389e6036d1b401474e37db730c51 Mon Sep 17 00:00:00 2001 From: Qstick Date: Mon, 17 Jan 2022 22:47:53 -0600 Subject: [PATCH] New: (Cardigann) - Cardigann v4 Support for Genre, Year, and TraktID --- src/NzbDrone.Core/IndexerSearch/NewznabResults.cs | 2 ++ .../IndexerDefinitionUpdateService.cs | 2 +- .../Definitions/Cardigann/CardigannParser.cs | 15 +++++++++++++++ src/NzbDrone.Core/Parser/Model/ReleaseInfo.cs | 3 +++ 4 files changed, 21 insertions(+), 1 deletion(-) diff --git a/src/NzbDrone.Core/IndexerSearch/NewznabResults.cs b/src/NzbDrone.Core/IndexerSearch/NewznabResults.cs index ec3f6965b..d74bb2d78 100644 --- a/src/NzbDrone.Core/IndexerSearch/NewznabResults.cs +++ b/src/NzbDrone.Core/IndexerSearch/NewznabResults.cs @@ -91,10 +91,12 @@ namespace NzbDrone.Core.IndexerSearch r.IndexerFlags == null ? null : from f in r.IndexerFlags select GetNabElement("tag", f.Name, protocol), r.Languages == null ? null : from c in r.Languages select GetNabElement("language", c.Id, protocol), r.Subs == null ? null : from c in r.Subs select GetNabElement("subs", c.Id, protocol), + r.Genres == null ? null : GetNabElement("genre", string.Join(", ", r.Genres), protocol), GetNabElement("rageid", r.TvRageId, protocol), GetNabElement("tvdbid", r.TvdbId, protocol), GetNabElement("imdb", r.ImdbId.ToString("D7"), protocol), GetNabElement("tmdbid", r.TmdbId, protocol), + GetNabElement("traktid", r.TraktId, protocol), GetNabElement("seeders", t.Seeders, protocol), GetNabElement("files", r.Files, protocol), GetNabElement("grabs", r.Grabs, protocol), diff --git a/src/NzbDrone.Core/IndexerVersions/IndexerDefinitionUpdateService.cs b/src/NzbDrone.Core/IndexerVersions/IndexerDefinitionUpdateService.cs index 54cff7492..df55b502c 100644 --- a/src/NzbDrone.Core/IndexerVersions/IndexerDefinitionUpdateService.cs +++ b/src/NzbDrone.Core/IndexerVersions/IndexerDefinitionUpdateService.cs @@ -28,7 +28,7 @@ namespace NzbDrone.Core.IndexerVersions /* Update Service will fall back if version # does not exist for an indexer per Ta */ private const string DEFINITION_BRANCH = "master"; - private const int DEFINITION_VERSION = 3; + private const int DEFINITION_VERSION = 4; //Used when moving yml to C# private readonly List _defintionBlocklist = new List() diff --git a/src/NzbDrone.Core/Indexers/Definitions/Cardigann/CardigannParser.cs b/src/NzbDrone.Core/Indexers/Definitions/Cardigann/CardigannParser.cs index 1dd78fb48..ef24e39a7 100644 --- a/src/NzbDrone.Core/Indexers/Definitions/Cardigann/CardigannParser.cs +++ b/src/NzbDrone.Core/Indexers/Definitions/Cardigann/CardigannParser.cs @@ -561,6 +561,13 @@ namespace NzbDrone.Core.Indexers.Cardigann release.TvRageId = (int)ParseUtil.CoerceLong(rageID); value = release.TvRageId.ToString(); break; + case "traktid": + var traktIDRegEx = new Regex(@"(\d+)", RegexOptions.Compiled); + var traktIDMatch = traktIDRegEx.Match(value); + var traktID = traktIDMatch.Groups[1].Value; + release.TvRageId = (int)ParseUtil.CoerceLong(traktID); + value = release.TvRageId.ToString(); + break; case "tvdbid": var tvdbIdRegEx = new Regex(@"(\d+)", RegexOptions.Compiled); var tvdbIdMatch = tvdbIdRegEx.Match(value); @@ -577,6 +584,14 @@ namespace NzbDrone.Core.Indexers.Cardigann value = release.PosterUrl; break; + case "genre": + release.Genres = release.Genres.Union(value.Split(',')).ToList(); + value = release.Genres.ToString(); + break; + case "year": + release.Year = ParseUtil.CoerceInt(value); + value = release.Year.ToString(); + break; case "author": release.Author = value; break; diff --git a/src/NzbDrone.Core/Parser/Model/ReleaseInfo.cs b/src/NzbDrone.Core/Parser/Model/ReleaseInfo.cs index 5a67933d5..b8e77e328 100644 --- a/src/NzbDrone.Core/Parser/Model/ReleaseInfo.cs +++ b/src/NzbDrone.Core/Parser/Model/ReleaseInfo.cs @@ -32,6 +32,8 @@ namespace NzbDrone.Core.Parser.Model public int TvRageId { get; set; } public int ImdbId { get; set; } public int TmdbId { get; set; } + public int TraktId { get; set; } + public int Year { get; set; } public string Author { get; set; } public string BookTitle { get; set; } public string Artist { get; set; } @@ -45,6 +47,7 @@ namespace NzbDrone.Core.Parser.Model public string Container { get; set; } public string Codec { get; set; } public string Resolution { get; set; } + public ICollection Genres { get; set; } public ICollection Languages { get; set; } public ICollection Subs { get; set; } public ICollection Categories { get; set; }