From 563b5ef01726b86f640d3adc680a2df8be8211ee Mon Sep 17 00:00:00 2001 From: Mark McDowall Date: Mon, 22 May 2017 21:39:13 -0700 Subject: [PATCH] Fixed: Don't use invalid scene mappings. Fixes #1627 --- .../SceneNumbering/XemServiceFixture.cs | 16 +++++++++++++++- .../DataAugmentation/Xem/XemService.cs | 10 +++++++++- 2 files changed, 24 insertions(+), 2 deletions(-) diff --git a/src/NzbDrone.Core.Test/DataAugmentation/SceneNumbering/XemServiceFixture.cs b/src/NzbDrone.Core.Test/DataAugmentation/SceneNumbering/XemServiceFixture.cs index 3f263c6dd..5ad5e40e8 100644 --- a/src/NzbDrone.Core.Test/DataAugmentation/SceneNumbering/XemServiceFixture.cs +++ b/src/NzbDrone.Core.Test/DataAugmentation/SceneNumbering/XemServiceFixture.cs @@ -5,6 +5,7 @@ using FizzWare.NBuilder; using FluentAssertions; using Moq; using NUnit.Framework; +using NzbDrone.Common.Extensions; using NzbDrone.Core.DataAugmentation.Xem; using NzbDrone.Core.DataAugmentation.Xem.Model; using NzbDrone.Core.Test.Framework; @@ -98,7 +99,6 @@ namespace NzbDrone.Core.Test.DataAugmentation.SceneNumbering }); } - [Test] public void should_not_fetch_scenenumbering_if_not_listed() { @@ -308,5 +308,19 @@ namespace NzbDrone.Core.Test.DataAugmentation.SceneNumbering episode.SceneSeasonNumber.Should().NotHaveValue(); episode.SceneEpisodeNumber.Should().NotHaveValue(); } + + [Test] + public void should_skip_mapping_when_scene_information_is_all_zero() + { + GivenTvdbMappings(); + + AddTvdbMapping(0, 0, 0, 8, 3, 1); // 3x01 -> 3x01 + AddTvdbMapping(0, 0, 0, 9, 3, 2); // 3x02 -> 3x02 + + Subject.Handle(new SeriesUpdatedEvent(_series)); + + Mocker.GetMock() + .Verify(v => v.UpdateEpisodes(It.Is>(e => e.Any(c => c.SceneAbsoluteEpisodeNumber == 0 && c.SceneSeasonNumber == 0 && c.SceneEpisodeNumber == 0))), Times.Never()); + } } } diff --git a/src/NzbDrone.Core/DataAugmentation/Xem/XemService.cs b/src/NzbDrone.Core/DataAugmentation/Xem/XemService.cs index c80cd8c92..efd30cf5b 100644 --- a/src/NzbDrone.Core/DataAugmentation/Xem/XemService.cs +++ b/src/NzbDrone.Core/DataAugmentation/Xem/XemService.cs @@ -61,7 +61,15 @@ namespace NzbDrone.Core.DataAugmentation.Xem if (episode == null) { - _logger.Debug("Information hasn't been added to TheTVDB yet, skipping."); + _logger.Debug("Information hasn't been added to TheTVDB yet, skipping"); + continue; + } + + if (mapping.Scene.Absolute == 0 && + mapping.Scene.Season == 0 && + mapping.Scene.Episode == 0) + { + _logger.Debug("Mapping for {0} S{1:00}E{2:00} is invalid, skipping", series, mapping.Tvdb.Season, mapping.Tvdb.Episode); continue; }