From 2d2de7f76b351b6f4984ab439fcd1a2fa5115e16 Mon Sep 17 00:00:00 2001 From: Bogdan Date: Wed, 23 Oct 2024 13:53:14 +0300 Subject: [PATCH] Parse "tmdbid" and "imdb" attributes in Newznab and Torznab parsers --- .../Indexers/Newznab/NewznabRssParser.cs | 14 +++++++++ .../Indexers/Torznab/TorznabRssParser.cs | 31 ++++++++++++++----- 2 files changed, 37 insertions(+), 8 deletions(-) diff --git a/src/NzbDrone.Core/Indexers/Newznab/NewznabRssParser.cs b/src/NzbDrone.Core/Indexers/Newznab/NewznabRssParser.cs index 76f138e4db..a95f9840b4 100644 --- a/src/NzbDrone.Core/Indexers/Newznab/NewznabRssParser.cs +++ b/src/NzbDrone.Core/Indexers/Newznab/NewznabRssParser.cs @@ -91,6 +91,8 @@ namespace NzbDrone.Core.Indexers.Newznab protected override ReleaseInfo ProcessItem(XElement item, ReleaseInfo releaseInfo) { releaseInfo = base.ProcessItem(item, releaseInfo); + + releaseInfo.TmdbId = GetTmdbId(item); releaseInfo.ImdbId = GetImdbId(item); releaseInfo.IndexerFlags = GetFlags(item); @@ -173,6 +175,18 @@ namespace NzbDrone.Core.Indexers.Newznab return url; } + protected virtual int GetTmdbId(XElement item) + { + var tmdbIdString = TryGetNewznabAttribute(item, "tmdbid"); + + if (!tmdbIdString.IsNullOrWhiteSpace() && int.TryParse(tmdbIdString, out var tmdbId)) + { + return tmdbId; + } + + return 0; + } + protected virtual int GetImdbId(XElement item) { var imdbIdString = TryGetNewznabAttribute(item, "imdb"); diff --git a/src/NzbDrone.Core/Indexers/Torznab/TorznabRssParser.cs b/src/NzbDrone.Core/Indexers/Torznab/TorznabRssParser.cs index 556fa76ae6..0e873447d6 100644 --- a/src/NzbDrone.Core/Indexers/Torznab/TorznabRssParser.cs +++ b/src/NzbDrone.Core/Indexers/Torznab/TorznabRssParser.cs @@ -62,11 +62,8 @@ namespace NzbDrone.Core.Indexers.Torznab if (torrentInfo != null) { - if (GetImdbId(item) != null) - { - torrentInfo.ImdbId = int.Parse(GetImdbId(item).Substring(2)); - } - + torrentInfo.TmdbId = GetTmdbId(item); + torrentInfo.ImdbId = GetImdbId(item); torrentInfo.IndexerFlags = GetFlags(item); } @@ -156,10 +153,28 @@ namespace NzbDrone.Core.Indexers.Torznab return url; } - protected virtual string GetImdbId(XElement item) + protected virtual int GetTmdbId(XElement item) { - var imdbIdString = TryGetTorznabAttribute(item, "imdbid"); - return !imdbIdString.IsNullOrWhiteSpace() ? imdbIdString.Substring(2) : null; + var tmdbIdString = TryGetTorznabAttribute(item, "tmdbid"); + + if (!tmdbIdString.IsNullOrWhiteSpace() && int.TryParse(tmdbIdString, out var tmdbId)) + { + return tmdbId; + } + + return 0; + } + + protected virtual int GetImdbId(XElement item) + { + var imdbIdString = TryGetTorznabAttribute(item, "imdb"); + + if (!imdbIdString.IsNullOrWhiteSpace() && int.TryParse(imdbIdString, out var imdbId)) + { + return imdbId; + } + + return 0; } protected override string GetInfoHash(XElement item)