mirror of
https://github.com/Ombi-app/Ombi.git
synced 2025-08-21 13:53: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)
|
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;
|
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 season in child.SeasonRequests)
|
||||||
{
|
{
|
||||||
foreach (var episode in season.Episodes)
|
foreach (var episode in season.Episodes)
|
||||||
{
|
{
|
||||||
|
if (episode.Available)
|
||||||
|
{
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
var foundEp = await seriesEpisodes.FirstOrDefaultAsync(
|
var foundEp = await seriesEpisodes.FirstOrDefaultAsync(
|
||||||
x => x.EpisodeNumber == episode.EpisodeNumber &&
|
x => x.EpisodeNumber == episode.EpisodeNumber &&
|
||||||
x.SeasonNumber == episode.Season.SeasonNumber);
|
x.SeasonNumber == episode.Season.SeasonNumber);
|
||||||
|
@ -160,9 +189,9 @@ namespace Ombi.Schedule.Jobs.Emby
|
||||||
{
|
{
|
||||||
DateTime = DateTime.Now,
|
DateTime = DateTime.Now,
|
||||||
NotificationType = NotificationType.RequestAvailable,
|
NotificationType = NotificationType.RequestAvailable,
|
||||||
RequestId = child.ParentRequestId,
|
RequestId = child.Id,
|
||||||
RequestType = RequestType.TvShow,
|
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());
|
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());
|
seriesEpisodes = plexEpisodes.Where(x => x.Series.TvDbId == tvDbId.ToString());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (seriesEpisodes == null)
|
||||||
|
{
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
if (!seriesEpisodes.Any())
|
if (!seriesEpisodes.Any())
|
||||||
{
|
{
|
||||||
// Let's try and match the series by name
|
// Let's try and match the series by name
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue