mirror of
https://github.com/lidarr/lidarr.git
synced 2025-08-14 02:37:08 -07:00
better handling of situations where a parsed episode isn't in the database.
This commit is contained in:
parent
4e06cf0fa6
commit
6144ff8f3e
4 changed files with 40 additions and 8 deletions
|
@ -13,12 +13,15 @@ namespace NzbDrone.Core.Tv
|
|||
public interface IEpisodeRepository : IBasicRepository<Episode>
|
||||
{
|
||||
Episode Get(int seriesId, int season, int episodeNumber);
|
||||
Episode Find(int seriesId, int season, int episodeNumber);
|
||||
Episode Get(int seriesId, DateTime date);
|
||||
Episode Find(int seriesId, DateTime date);
|
||||
List<Episode> GetEpisodes(int seriesId);
|
||||
List<Episode> GetEpisodes(int seriesId, int seasonNumber);
|
||||
List<Episode> GetEpisodeByFileId(int fileId);
|
||||
PagingSpec<Episode> EpisodesWithoutFiles(PagingSpec<Episode> pagingSpec, bool includeSpecials);
|
||||
Episode GetEpisodeBySceneNumbering(int seriesId, int seasonNumber, int episodeNumber);
|
||||
Episode FindEpisodeBySceneNumbering(int seriesId, int seasonNumber, int episodeNumber);
|
||||
List<Episode> EpisodesWithFiles();
|
||||
List<Episode> EpisodesBetweenDates(DateTime startDate, DateTime endDate);
|
||||
void SetIgnoreFlat(Episode episode, bool ignoreFlag);
|
||||
|
@ -40,11 +43,21 @@ namespace NzbDrone.Core.Tv
|
|||
return Query.Single(s => s.SeriesId == seriesId && s.SeasonNumber == season && s.EpisodeNumber == episodeNumber);
|
||||
}
|
||||
|
||||
public Episode Find(int seriesId, int season, int episodeNumber)
|
||||
{
|
||||
return Query.SingleOrDefault(s => s.SeriesId == seriesId && s.SeasonNumber == season && s.EpisodeNumber == episodeNumber);
|
||||
}
|
||||
|
||||
public Episode Get(int seriesId, DateTime date)
|
||||
{
|
||||
return Query.Single(s => s.SeriesId == seriesId && s.AirDate.HasValue && s.AirDate.Value.Date == date.Date);
|
||||
}
|
||||
|
||||
public Episode Find(int seriesId, DateTime date)
|
||||
{
|
||||
return Query.SingleOrDefault(s => s.SeriesId == seriesId && s.AirDate.HasValue && s.AirDate.Value.Date == date.Date);
|
||||
}
|
||||
|
||||
public List<Episode> GetEpisodes(int seriesId)
|
||||
{
|
||||
return Query.Where(s => s.SeriesId == seriesId).ToList();
|
||||
|
@ -81,7 +94,7 @@ namespace NzbDrone.Core.Tv
|
|||
pagingSpec.Records = pagingQuery.ToList();
|
||||
|
||||
//TODO: Use the same query for count and records
|
||||
pagingSpec.TotalRecords = Query.Where(e => e.EpisodeFileId == 0 && e.SeasonNumber >= startingSeasonNumber && e.AirDate <= currentTime).Count();
|
||||
pagingSpec.TotalRecords = Query.Count(e => e.EpisodeFileId == 0 && e.SeasonNumber >= startingSeasonNumber && e.AirDate <= currentTime);
|
||||
|
||||
return pagingSpec;
|
||||
}
|
||||
|
@ -91,6 +104,11 @@ namespace NzbDrone.Core.Tv
|
|||
return Query.Single(s => s.SeriesId == seriesId && s.SeasonNumber == seasonNumber && s.SceneEpisodeNumber == episodeNumber);
|
||||
}
|
||||
|
||||
public Episode FindEpisodeBySceneNumbering(int seriesId, int seasonNumber, int episodeNumber)
|
||||
{
|
||||
return Query.SingleOrDefault(s => s.SeriesId == seriesId && s.SeasonNumber == seasonNumber && s.SceneEpisodeNumber == episodeNumber);
|
||||
}
|
||||
|
||||
public List<Episode> EpisodesWithFiles()
|
||||
{
|
||||
return Query.Where(s => s.EpisodeFileId != 0).ToList();
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue