Fixed: TheXEM mappings not used properly when parsing season packs

This commit is contained in:
Taloth Saldono 2021-05-07 20:16:09 +02:00
parent a8a9399469
commit 87f10bf7bb
3 changed files with 22 additions and 1 deletions

View File

@ -207,7 +207,14 @@ namespace NzbDrone.Core.Parser
{
if (parsedEpisodeInfo.FullSeason)
{
return _episodeService.GetEpisodesBySeason(series.Id, mappedSeasonNumber);
if (series.UseSceneNumbering && sceneSource)
{
return _episodeService.GetEpisodesBySceneSeason(series.Id, mappedSeasonNumber);
}
else
{
return _episodeService.GetEpisodesBySeason(series.Id, mappedSeasonNumber);
}
}
if (parsedEpisodeInfo.IsDaily)

View File

@ -19,6 +19,7 @@ namespace NzbDrone.Core.Tv
List<Episode> Find(int seriesId, string date);
List<Episode> GetEpisodes(int seriesId);
List<Episode> GetEpisodes(int seriesId, int seasonNumber);
List<Episode> GetEpisodesBySceneSeason(int seriesId, int sceneSeasonNumber);
List<Episode> GetEpisodeByFileId(int fileId);
List<Episode> EpisodesWithFiles(int seriesId);
PagingSpec<Episode> EpisodesWithoutFiles(PagingSpec<Episode> pagingSpec, bool includeSpecials);
@ -78,6 +79,13 @@ namespace NzbDrone.Core.Tv
.ToList();
}
public List<Episode> GetEpisodesBySceneSeason(int seriesId, int seasonNumber)
{
return Query.Where(s => s.SeriesId == seriesId)
.AndWhere(s => s.SceneSeasonNumber == seasonNumber)
.ToList();
}
public List<Episode> GetEpisodeByFileId(int fileId)
{
return Query.Where(e => e.EpisodeFileId == fileId).ToList();

View File

@ -23,6 +23,7 @@ namespace NzbDrone.Core.Tv
Episode FindEpisode(int seriesId, string date, int? part);
List<Episode> GetEpisodeBySeries(int seriesId);
List<Episode> GetEpisodesBySeason(int seriesId, int seasonNumber);
List<Episode> GetEpisodesBySceneSeason(int seriesId, int sceneSeasonNumber);
List<Episode> EpisodesWithFiles(int seriesId);
PagingSpec<Episode> EpisodesWithoutFiles(PagingSpec<Episode> pagingSpec);
List<Episode> GetEpisodesByFileId(int episodeFileId);
@ -98,6 +99,11 @@ namespace NzbDrone.Core.Tv
return _episodeRepository.GetEpisodes(seriesId, seasonNumber);
}
public List<Episode> GetEpisodesBySceneSeason(int seriesId, int sceneSeasonNumber)
{
return _episodeRepository.GetEpisodesBySceneSeason(seriesId, sceneSeasonNumber);
}
public Episode FindEpisodeByTitle(int seriesId, int seasonNumber, string releaseTitle)
{
// TODO: can replace this search mechanism with something smarter/faster/better