Fixed: Don't add series from import list with no matched TVDB ID

This commit is contained in:
Mark McDowall 2024-03-21 21:21:04 -07:00 committed by GitHub
parent 40bac23698
commit dec3fc6889
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
2 changed files with 39 additions and 1 deletions

View File

@ -120,6 +120,17 @@ namespace NzbDrone.Core.Test.ImportListTests
private void WithImdbId() private void WithImdbId()
{ {
_list1Series.First().ImdbId = "tt0496424"; _list1Series.First().ImdbId = "tt0496424";
Mocker.GetMock<ISearchForNewSeries>()
.Setup(s => s.SearchForNewSeriesByImdbId(_list1Series.First().ImdbId))
.Returns(
Builder<Series>
.CreateListOfSize(1)
.All()
.With(s => s.Title = "Breaking Bad")
.With(s => s.TvdbId = 81189)
.Build()
.ToList());
} }
private void WithExistingSeries() private void WithExistingSeries()
@ -342,6 +353,7 @@ namespace NzbDrone.Core.Test.ImportListTests
public void should_add_new_series_from_single_list_to_library() public void should_add_new_series_from_single_list_to_library()
{ {
_importListFetch.Series.ForEach(m => m.ImportListId = 1); _importListFetch.Series.ForEach(m => m.ImportListId = 1);
WithTvdbId();
WithList(1, true); WithList(1, true);
WithCleanLevel(ListSyncLevelType.Disabled); WithCleanLevel(ListSyncLevelType.Disabled);
@ -358,6 +370,7 @@ namespace NzbDrone.Core.Test.ImportListTests
_importListFetch.Series.ForEach(m => m.ImportListId = 1); _importListFetch.Series.ForEach(m => m.ImportListId = 1);
_importListFetch.Series.AddRange(_list2Series); _importListFetch.Series.AddRange(_list2Series);
WithTvdbId();
WithList(1, true); WithList(1, true);
WithList(2, true); WithList(2, true);
@ -376,6 +389,7 @@ namespace NzbDrone.Core.Test.ImportListTests
_importListFetch.Series.ForEach(m => m.ImportListId = 1); _importListFetch.Series.ForEach(m => m.ImportListId = 1);
_importListFetch.Series.AddRange(_list2Series); _importListFetch.Series.AddRange(_list2Series);
WithTvdbId();
WithList(1, true); WithList(1, true);
WithList(2, false); WithList(2, false);
@ -422,12 +436,17 @@ namespace NzbDrone.Core.Test.ImportListTests
public void should_search_by_imdb_if_series_title_and_series_imdb() public void should_search_by_imdb_if_series_title_and_series_imdb()
{ {
_importListFetch.Series.ForEach(m => m.ImportListId = 1); _importListFetch.Series.ForEach(m => m.ImportListId = 1);
WithList(1, true); WithList(1, true);
WithImdbId(); WithImdbId();
Subject.Execute(_commandAll); Subject.Execute(_commandAll);
Mocker.GetMock<ISearchForNewSeries>() Mocker.GetMock<ISearchForNewSeries>()
.Verify(v => v.SearchForNewSeriesByImdbId(It.IsAny<string>()), Times.Once()); .Verify(v => v.SearchForNewSeriesByImdbId(It.IsAny<string>()), Times.Once());
Mocker.GetMock<IAddSeriesService>()
.Verify(v => v.AddSeries(It.Is<List<Series>>(t => t.Count == 1), It.IsAny<bool>()));
} }
[Test] [Test]
@ -498,5 +517,18 @@ namespace NzbDrone.Core.Test.ImportListTests
Mocker.GetMock<IImportListExclusionService>() Mocker.GetMock<IImportListExclusionService>()
.Verify(v => v.All(), Times.Never); .Verify(v => v.All(), Times.Never);
} }
[Test]
public void should_not_add_if_tvdbid_is_0()
{
_importListFetch.Series.ForEach(m => m.ImportListId = 1);
WithList(1, true);
WithExcludedSeries();
Subject.Execute(_commandAll);
Mocker.GetMock<IAddSeriesService>()
.Verify(v => v.AddSeries(It.Is<List<Series>>(t => t.Count == 0), It.IsAny<bool>()));
}
} }
} }

View File

@ -190,6 +190,12 @@ namespace NzbDrone.Core.ImportLists
item.Title = mappedSeries.Title; item.Title = mappedSeries.Title;
} }
if (item.TvdbId == 0)
{
_logger.Debug("[{0}] Rejected, unable to find TVDB ID", item.Title);
continue;
}
// Check to see if series excluded // Check to see if series excluded
var excludedSeries = listExclusions.Where(s => s.TvdbId == item.TvdbId).SingleOrDefault(); var excludedSeries = listExclusions.Where(s => s.TvdbId == item.TvdbId).SingleOrDefault();
@ -202,7 +208,7 @@ namespace NzbDrone.Core.ImportLists
// Break if Series Exists in DB // Break if Series Exists in DB
if (existingTvdbIds.Any(x => x == item.TvdbId)) if (existingTvdbIds.Any(x => x == item.TvdbId))
{ {
_logger.Debug("{0} [{1}] Rejected, Series Exists in DB", item.TvdbId, item.Title); _logger.Debug("{0} [{1}] Rejected, series exists in database", item.TvdbId, item.Title);
continue; continue;
} }