mirror of
https://github.com/Ombi-app/Ombi.git
synced 2025-08-14 02:26:55 -07:00
parent
dca5d13826
commit
dedf42ac87
33 changed files with 386 additions and 3294 deletions
|
@ -163,7 +163,7 @@ namespace Ombi.Core.Engine
|
|||
// But we only pass down the SearchViewModel that doesn't contain this
|
||||
// So set the ImdbId to viewMovie.Id and then set it back afterwards
|
||||
var oldId = viewMovie.Id;
|
||||
viewMovie.CustomId = viewMovie.ImdbId ?? string.Empty;
|
||||
viewMovie.TheMovieDbId = viewMovie.TheMovieDbId;
|
||||
|
||||
await RunSearchRules(viewMovie);
|
||||
|
||||
|
|
|
@ -194,7 +194,8 @@ namespace Ombi.Core.Engine
|
|||
|
||||
private async Task<SearchTvShowViewModel> ProcessResult(SearchTvShowViewModel item)
|
||||
{
|
||||
item.CustomId = item.Id.ToString();
|
||||
item.TheTvDbId = item.Id.ToString();
|
||||
|
||||
await RunSearchRules(item);
|
||||
|
||||
return item;
|
||||
|
|
|
@ -22,7 +22,6 @@ namespace Ombi.Core.Models.Search
|
|||
public bool AlreadyInCp { get; set; }
|
||||
public string Trailer { get; set; }
|
||||
public string Homepage { get; set; }
|
||||
public string ImdbId { get; set; }
|
||||
public int RootPathOverride { get; set; }
|
||||
public int QualityOverride { get; set; }
|
||||
public override RequestType Type => RequestType.Movie;
|
||||
|
|
|
@ -22,7 +22,6 @@ namespace Ombi.Core.Models.Search
|
|||
public string AirsDayOfWeek { get; set; }
|
||||
public string AirsTime { get; set; }
|
||||
public string Rating { get; set; }
|
||||
public string ImdbId { get; set; }
|
||||
public int SiteRating { get; set; }
|
||||
|
||||
/// <summary>
|
||||
|
|
|
@ -21,6 +21,10 @@ namespace Ombi.Core.Models.Search
|
|||
/// The custom identifier.
|
||||
/// </value>
|
||||
[NotMapped]
|
||||
public string CustomId { get; set; }
|
||||
public string ImdbId { get; set; }
|
||||
[NotMapped]
|
||||
public string TheTvDbId { get; set; }
|
||||
[NotMapped]
|
||||
public string TheMovieDbId { get; set; }
|
||||
}
|
||||
}
|
|
@ -19,7 +19,7 @@ namespace Ombi.Core.Rule.Rules.Search
|
|||
|
||||
public async Task<RuleResult> Execute(SearchViewModel obj)
|
||||
{
|
||||
var item = await EmbyContentRepository.Get(obj.CustomId);
|
||||
var item = await EmbyContentRepository.Get(obj.ImdbId);
|
||||
if (item != null)
|
||||
{
|
||||
obj.Available = true;
|
||||
|
|
|
@ -3,6 +3,7 @@ using System.Threading.Tasks;
|
|||
using Microsoft.EntityFrameworkCore;
|
||||
using Ombi.Core.Models.Search;
|
||||
using Ombi.Core.Rule.Interfaces;
|
||||
using Ombi.Helpers;
|
||||
using Ombi.Store.Entities;
|
||||
using Ombi.Store.Repository;
|
||||
|
||||
|
@ -19,7 +20,42 @@ namespace Ombi.Core.Rule.Rules.Search
|
|||
|
||||
public async Task<RuleResult> Execute(SearchViewModel obj)
|
||||
{
|
||||
var item = await PlexContentRepository.Get(obj.CustomId);
|
||||
PlexServerContent item = null;
|
||||
var useImdb = false;
|
||||
var useTheMovieDb = false;
|
||||
var useTvDb = false;
|
||||
if (obj.ImdbId.HasValue())
|
||||
{
|
||||
item = await PlexContentRepository.Get(obj.ImdbId);
|
||||
if (item != null)
|
||||
{
|
||||
useImdb = true;
|
||||
}
|
||||
}
|
||||
if (item == null)
|
||||
{
|
||||
if (obj.TheMovieDbId.HasValue())
|
||||
{
|
||||
item = await PlexContentRepository.Get(obj.TheMovieDbId);
|
||||
if (item != null)
|
||||
{
|
||||
useTheMovieDb = true;
|
||||
}
|
||||
}
|
||||
|
||||
if (item == null)
|
||||
{
|
||||
if (obj.TheTvDbId.HasValue())
|
||||
{
|
||||
item = await PlexContentRepository.Get(obj.TheTvDbId);
|
||||
if (item != null)
|
||||
{
|
||||
useTvDb = true;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (item != null)
|
||||
{
|
||||
obj.Available = true;
|
||||
|
@ -37,9 +73,26 @@ namespace Ombi.Core.Rule.Rules.Search
|
|||
{
|
||||
foreach (var episode in season.Episodes)
|
||||
{
|
||||
var epExists = await allEpisodes.FirstOrDefaultAsync(x =>
|
||||
x.EpisodeNumber == episode.EpisodeNumber && x.SeasonNumber == season.SeasonNumber &&
|
||||
x.Series.ProviderId == item.ProviderId.ToString());
|
||||
PlexEpisode epExists = null;
|
||||
if (useImdb)
|
||||
{
|
||||
epExists = await allEpisodes.FirstOrDefaultAsync(x =>
|
||||
x.EpisodeNumber == episode.EpisodeNumber && x.SeasonNumber == season.SeasonNumber &&
|
||||
x.Series.ImdbId == item.ImdbId.ToString());
|
||||
}
|
||||
if (useTheMovieDb)
|
||||
{
|
||||
epExists = await allEpisodes.FirstOrDefaultAsync(x =>
|
||||
x.EpisodeNumber == episode.EpisodeNumber && x.SeasonNumber == season.SeasonNumber &&
|
||||
x.Series.TheMovieDbId == item.TheMovieDbId.ToString());
|
||||
}
|
||||
if (useTvDb)
|
||||
{
|
||||
epExists = await allEpisodes.FirstOrDefaultAsync(x =>
|
||||
x.EpisodeNumber == episode.EpisodeNumber && x.SeasonNumber == season.SeasonNumber &&
|
||||
x.Series.TvDbId == item.TvDbId.ToString());
|
||||
}
|
||||
|
||||
if (epExists != null)
|
||||
{
|
||||
episode.Available = true;
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue