mirror of
https://github.com/Ombi-app/Ombi.git
synced 2025-08-21 05:43:19 -07:00
Updated the Emby availability checker to bring it more in line with what we do with Plex.
This commit is contained in:
parent
50c4e76894
commit
185c87ab40
2 changed files with 43 additions and 9 deletions
|
@ -121,24 +121,53 @@ namespace Ombi.Schedule.Jobs.Emby
|
|||
|
||||
foreach (var child in tv)
|
||||
{
|
||||
IQueryable<EmbyEpisode> seriesEpisodes;
|
||||
if (child.ParentRequest.TvDbId > 0)
|
||||
|
||||
var useImdb = false;
|
||||
var useTvDb = false;
|
||||
if (child.ParentRequest.ImdbId.HasValue())
|
||||
{
|
||||
seriesEpisodes = embyEpisodes.Where(x => x.Series.TvDbId == child.ParentRequest.TvDbId.ToString());
|
||||
useImdb = true;
|
||||
}
|
||||
else if(child.ParentRequest.ImdbId.HasValue())
|
||||
|
||||
if (child.ParentRequest.TvDbId.ToString().HasValue())
|
||||
{
|
||||
seriesEpisodes = embyEpisodes.Where(x => x.Series.ImdbId == child.ParentRequest.ImdbId);
|
||||
useTvDb = true;
|
||||
}
|
||||
else
|
||||
|
||||
var tvDbId = child.ParentRequest.TvDbId;
|
||||
var imdbId = child.ParentRequest.ImdbId;
|
||||
IQueryable<EmbyEpisode> seriesEpisodes = null;
|
||||
if (useImdb)
|
||||
{
|
||||
seriesEpisodes = embyEpisodes.Where(x => x.Series.ImdbId == imdbId.ToString());
|
||||
}
|
||||
|
||||
if (useTvDb && (seriesEpisodes == null || !seriesEpisodes.Any()))
|
||||
{
|
||||
seriesEpisodes = embyEpisodes.Where(x => x.Series.TvDbId == tvDbId.ToString());
|
||||
}
|
||||
|
||||
if (seriesEpisodes == null)
|
||||
{
|
||||
continue;
|
||||
}
|
||||
|
||||
if (!seriesEpisodes.Any())
|
||||
{
|
||||
// Let's try and match the series by name
|
||||
seriesEpisodes = embyEpisodes.Where(x =>
|
||||
x.Series.Title.Equals(child.Title, StringComparison.CurrentCultureIgnoreCase));
|
||||
}
|
||||
|
||||
foreach (var season in child.SeasonRequests)
|
||||
{
|
||||
foreach (var episode in season.Episodes)
|
||||
{
|
||||
if (episode.Available)
|
||||
{
|
||||
continue;
|
||||
}
|
||||
|
||||
var foundEp = await seriesEpisodes.FirstOrDefaultAsync(
|
||||
x => x.EpisodeNumber == episode.EpisodeNumber &&
|
||||
x.SeasonNumber == episode.Season.SeasonNumber);
|
||||
|
@ -160,9 +189,9 @@ namespace Ombi.Schedule.Jobs.Emby
|
|||
{
|
||||
DateTime = DateTime.Now,
|
||||
NotificationType = NotificationType.RequestAvailable,
|
||||
RequestId = child.ParentRequestId,
|
||||
RequestId = child.Id,
|
||||
RequestType = RequestType.TvShow,
|
||||
Recipient = child.RequestedUser.Email,
|
||||
Recipient = child.RequestedUser.Email
|
||||
}));
|
||||
}
|
||||
}
|
||||
|
|
|
@ -79,11 +79,16 @@ namespace Ombi.Schedule.Jobs.Plex
|
|||
{
|
||||
seriesEpisodes = plexEpisodes.Where(x => x.Series.ImdbId == imdbId.ToString());
|
||||
}
|
||||
if (useTvDb)
|
||||
if (useTvDb && (seriesEpisodes == null || !seriesEpisodes.Any()) )
|
||||
{
|
||||
seriesEpisodes = plexEpisodes.Where(x => x.Series.TvDbId == tvDbId.ToString());
|
||||
}
|
||||
|
||||
if (seriesEpisodes == null)
|
||||
{
|
||||
continue;
|
||||
}
|
||||
|
||||
if (!seriesEpisodes.Any())
|
||||
{
|
||||
// Let's try and match the series by name
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue