From 510ccf4bcef1ef2ca4a1556720f1cc6d6bbd1aa6 Mon Sep 17 00:00:00 2001 From: Qstick Date: Thu, 25 Nov 2021 09:10:16 -0600 Subject: [PATCH] New: Set GUID in IndexerBase if Indexer doesn't set it explicitly --- src/NzbDrone.Core/Indexers/IndexerBase.cs | 21 +++++++++++++++++++-- 1 file changed, 19 insertions(+), 2 deletions(-) diff --git a/src/NzbDrone.Core/Indexers/IndexerBase.cs b/src/NzbDrone.Core/Indexers/IndexerBase.cs index 2e9f3058a..75717c1b5 100644 --- a/src/NzbDrone.Core/Indexers/IndexerBase.cs +++ b/src/NzbDrone.Core/Indexers/IndexerBase.cs @@ -105,10 +105,27 @@ namespace NzbDrone.Core.Indexers protected virtual IList CleanupReleases(IEnumerable releases) { - var result = releases.DistinctBy(v => v.Guid).ToList(); + var result = releases.ToList(); result.ForEach(c => { + //Set GUID if not set + if (c.Guid.IsNullOrWhiteSpace()) + { + if (c.DownloadUrl.IsNotNullOrWhiteSpace()) + { + c.Guid = c.DownloadUrl; + } + else if (Protocol == DownloadProtocol.Torrent && ((TorrentInfo)c).MagnetUrl.IsNotNullOrWhiteSpace()) + { + c.Guid = ((TorrentInfo)c).MagnetUrl; + } + else if (c.InfoUrl.IsNotNullOrWhiteSpace()) + { + c.Guid = c.InfoUrl; + } + } + //Set common props c.IndexerId = Definition.Id; c.Indexer = Definition.Name; @@ -122,7 +139,7 @@ namespace NzbDrone.Core.Indexers } }); - return result; + return result.DistinctBy(v => v.Guid).ToList(); } protected TSettings GetDefaultBaseUrl(TSettings settings)