diff --git a/src/.idea/.idea.NzbDrone/.idea/contentModel.xml b/src/.idea/.idea.NzbDrone/.idea/contentModel.xml index 50671a366..9eec0f91a 100644 --- a/src/.idea/.idea.NzbDrone/.idea/contentModel.xml +++ b/src/.idea/.idea.NzbDrone/.idea/contentModel.xml @@ -1035,6 +1035,7 @@ + @@ -1330,6 +1331,8 @@ + + @@ -1656,6 +1659,7 @@ + @@ -1678,6 +1682,7 @@ + @@ -2597,6 +2602,7 @@ + @@ -2650,6 +2656,21 @@ + + + + + + + + + + + + + + + @@ -2895,16 +2916,6 @@ - - - - - - - - - - diff --git a/src/NzbDrone.Core/Indexers/PassThePopcorn/PassThePopcorn.cs b/src/NzbDrone.Core/Indexers/PassThePopcorn/PassThePopcorn.cs index 2b9158678..21768d0ff 100644 --- a/src/NzbDrone.Core/Indexers/PassThePopcorn/PassThePopcorn.cs +++ b/src/NzbDrone.Core/Indexers/PassThePopcorn/PassThePopcorn.cs @@ -40,7 +40,7 @@ public override IIndexerRequestGenerator GetRequestGenerator() public override IParseIndexerResponse GetParser() { - return new PassThePopcornParser(Settings); + return new PassThePopcornParser(Settings, _logger); } /*protected override IndexerResponse FetchIndexerResponse(IndexerRequest request) diff --git a/src/NzbDrone.Core/Indexers/PassThePopcorn/PassThePopcornParser.cs b/src/NzbDrone.Core/Indexers/PassThePopcorn/PassThePopcornParser.cs index 5eada1d7b..493d50659 100644 --- a/src/NzbDrone.Core/Indexers/PassThePopcorn/PassThePopcornParser.cs +++ b/src/NzbDrone.Core/Indexers/PassThePopcorn/PassThePopcornParser.cs @@ -6,6 +6,7 @@ using NzbDrone.Core.Indexers.Exceptions; using NzbDrone.Core.Parser.Model; using System.Linq; +using NLog; using NzbDrone.Common.Cache; using NzbDrone.Common.Extensions; @@ -14,9 +15,11 @@ namespace NzbDrone.Core.Indexers.PassThePopcorn public class PassThePopcornParser : IParseIndexerResponse { private readonly PassThePopcornSettings _settings; - public PassThePopcornParser(PassThePopcornSettings settings) + private readonly Logger _logger; + public PassThePopcornParser(PassThePopcornSettings settings, Logger logger) { _settings = settings; + _logger = logger; } public IList ParseResponse(IndexerResponse indexerResponse) @@ -79,23 +82,39 @@ public IList ParseResponse(IndexerResponse indexerResponse) } // Only add approved torrents + try + { + torrentInfos.Add(new PassThePopcornInfo() + { + Guid = string.Format("PassThePopcorn-{0}", id), + Title = title, + Size = long.Parse(torrent.Size), + DownloadUrl = GetDownloadUrl(id, jsonResponse.AuthKey, jsonResponse.PassKey), + InfoUrl = GetInfoUrl(result.GroupId, id), + Seeders = int.Parse(torrent.Seeders), + Peers = int.Parse(torrent.Leechers) + int.Parse(torrent.Seeders), + PublishDate = torrent.UploadTime.ToUniversalTime(), + Golden = torrent.GoldenPopcorn, + Scene = torrent.Scene, + Approved = torrent.Checked, + ImdbId = (result.ImdbId.IsNotNullOrWhiteSpace() ? int.Parse(result.ImdbId) : 0), + IndexerFlags = flags + }); + } + catch (Exception e) + { + _logger.Error(e, "Encountered exception parsing PTP torrent: {" + + $"Size: {torrent.Size}" + + $"UploadTime: {torrent.UploadTime}" + + $"Seeders: {torrent.Seeders}" + + $"Leechers: {torrent.Leechers}" + + $"ReleaseName: {torrent.ReleaseName}" + + $"ID: {torrent.Id}" + + "}. Please immediately report this info on https://github.com/Radarr/Radarr/issues/1584."); + throw; + } - torrentInfos.Add(new PassThePopcornInfo() - { - Guid = string.Format("PassThePopcorn-{0}", id), - Title = title, - Size = long.Parse(torrent.Size), - DownloadUrl = GetDownloadUrl(id, jsonResponse.AuthKey, jsonResponse.PassKey), - InfoUrl = GetInfoUrl(result.GroupId, id), - Seeders = int.Parse(torrent.Seeders), - Peers = int.Parse(torrent.Leechers) + int.Parse(torrent.Seeders), - PublishDate = torrent.UploadTime.ToUniversalTime(), - Golden = torrent.GoldenPopcorn, - Scene = torrent.Scene, - Approved = torrent.Checked, - ImdbId = (result.ImdbId.IsNotNullOrWhiteSpace() ? int.Parse(result.ImdbId) : 0), - IndexerFlags = flags - }); + } } return