mirror of
https://github.com/Ombi-app/Ombi.git
synced 2025-08-19 12:59:39 -07:00
Fixed the issue where searching some movies may appear available if they have the same TvDb Id as the result's MovieDbId...
This commit is contained in:
parent
264568f396
commit
0ad573a98a
5 changed files with 22 additions and 16 deletions
|
@ -29,7 +29,7 @@ namespace Ombi.Core.Rule.Rules.Search
|
||||||
var useTvDb = false;
|
var useTvDb = false;
|
||||||
if (obj.ImdbId.HasValue())
|
if (obj.ImdbId.HasValue())
|
||||||
{
|
{
|
||||||
item = await PlexContentRepository.Get(obj.ImdbId);
|
item = await PlexContentRepository.Get(obj.ImdbId, ProviderType.ImdbId);
|
||||||
if (item != null)
|
if (item != null)
|
||||||
{
|
{
|
||||||
useImdb = true;
|
useImdb = true;
|
||||||
|
@ -39,7 +39,7 @@ namespace Ombi.Core.Rule.Rules.Search
|
||||||
{
|
{
|
||||||
if (obj.Id > 0)
|
if (obj.Id > 0)
|
||||||
{
|
{
|
||||||
item = await PlexContentRepository.Get(obj.Id.ToString());
|
item = await PlexContentRepository.Get(obj.Id.ToString(), ProviderType.TheMovieDbId);
|
||||||
if (item != null)
|
if (item != null)
|
||||||
{
|
{
|
||||||
useId = true;
|
useId = true;
|
||||||
|
@ -47,7 +47,7 @@ namespace Ombi.Core.Rule.Rules.Search
|
||||||
}
|
}
|
||||||
if (obj.TheMovieDbId.HasValue())
|
if (obj.TheMovieDbId.HasValue())
|
||||||
{
|
{
|
||||||
item = await PlexContentRepository.Get(obj.TheMovieDbId);
|
item = await PlexContentRepository.Get(obj.TheMovieDbId, ProviderType.TheMovieDbId);
|
||||||
if (item != null)
|
if (item != null)
|
||||||
{
|
{
|
||||||
useTheMovieDb = true;
|
useTheMovieDb = true;
|
||||||
|
@ -58,7 +58,7 @@ namespace Ombi.Core.Rule.Rules.Search
|
||||||
{
|
{
|
||||||
if (obj.TheTvDbId.HasValue())
|
if (obj.TheTvDbId.HasValue())
|
||||||
{
|
{
|
||||||
item = await PlexContentRepository.Get(obj.TheTvDbId);
|
item = await PlexContentRepository.Get(obj.TheTvDbId, ProviderType.TvDbId);
|
||||||
if (item != null)
|
if (item != null)
|
||||||
{
|
{
|
||||||
useTvDb = true;
|
useTvDb = true;
|
||||||
|
|
|
@ -61,6 +61,7 @@ namespace Ombi.Helpers.Tests
|
||||||
get
|
get
|
||||||
{
|
{
|
||||||
yield return new TestCaseData("plex://movie/5e1632df2d4d84003e48e54e|imdb://tt9178402|tmdb://610201", new ProviderId { ImdbId = "tt9178402", TheMovieDb = "610201" }).SetName("V2 Regular Plex Id");
|
yield return new TestCaseData("plex://movie/5e1632df2d4d84003e48e54e|imdb://tt9178402|tmdb://610201", new ProviderId { ImdbId = "tt9178402", TheMovieDb = "610201" }).SetName("V2 Regular Plex Id");
|
||||||
|
yield return new TestCaseData("plex://movie/5e1632df2d4d84003e48e54e|imdb://tt9178402|tmdb://610201|thetvdb://12345", new ProviderId { ImdbId = "tt9178402", TheMovieDb = "610201", TheTvDb = "12345" }).SetName("V2 Regular Plex Id w/ tvdb");
|
||||||
yield return new TestCaseData("plex://movie/5d7768253c3c2a001fbcab72|imdb://tt0119567|tmdb://330", new ProviderId { ImdbId = "tt0119567", TheMovieDb = "330" }).SetName("V2 Regular Plex Id Another");
|
yield return new TestCaseData("plex://movie/5d7768253c3c2a001fbcab72|imdb://tt0119567|tmdb://330", new ProviderId { ImdbId = "tt0119567", TheMovieDb = "330" }).SetName("V2 Regular Plex Id Another");
|
||||||
yield return new TestCaseData("plex://movie/5d7768253c3c2a001fbcab72|imdb://tt0119567", new ProviderId { ImdbId = "tt0119567" }).SetName("V2 Regular Plex Id Single Imdb");
|
yield return new TestCaseData("plex://movie/5d7768253c3c2a001fbcab72|imdb://tt0119567", new ProviderId { ImdbId = "tt0119567" }).SetName("V2 Regular Plex Id Single Imdb");
|
||||||
yield return new TestCaseData("plex://movie/5d7768253c3c2a001fbcab72|tmdb://330", new ProviderId { TheMovieDb = "330" }).SetName("V2 Regular Plex Id Single Tmdb");
|
yield return new TestCaseData("plex://movie/5d7768253c3c2a001fbcab72|tmdb://330", new ProviderId { TheMovieDb = "330" }).SetName("V2 Regular Plex Id Single Tmdb");
|
||||||
|
|
|
@ -183,13 +183,13 @@ namespace Ombi.Schedule.Jobs.Plex
|
||||||
PlexServerContent item = null;
|
PlexServerContent item = null;
|
||||||
if (movie.ImdbId.HasValue())
|
if (movie.ImdbId.HasValue())
|
||||||
{
|
{
|
||||||
item = await _repo.Get(movie.ImdbId);
|
item = await _repo.Get(movie.ImdbId, ProviderType.ImdbId);
|
||||||
}
|
}
|
||||||
if (item == null)
|
if (item == null)
|
||||||
{
|
{
|
||||||
if (movie.TheMovieDbId.ToString().HasValue())
|
if (movie.TheMovieDbId.ToString().HasValue())
|
||||||
{
|
{
|
||||||
item = await _repo.Get(movie.TheMovieDbId.ToString());
|
item = await _repo.Get(movie.TheMovieDbId.ToString(), ProviderType.TheMovieDbId);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (item == null)
|
if (item == null)
|
||||||
|
|
|
@ -3,6 +3,7 @@ using System.Collections.Generic;
|
||||||
using System.Linq;
|
using System.Linq;
|
||||||
using System.Linq.Expressions;
|
using System.Linq.Expressions;
|
||||||
using System.Threading.Tasks;
|
using System.Threading.Tasks;
|
||||||
|
using Ombi.Helpers;
|
||||||
using Ombi.Store.Entities;
|
using Ombi.Store.Entities;
|
||||||
|
|
||||||
namespace Ombi.Store.Repository
|
namespace Ombi.Store.Repository
|
||||||
|
@ -10,7 +11,7 @@ namespace Ombi.Store.Repository
|
||||||
public interface IPlexContentRepository : IExternalRepository<PlexServerContent>
|
public interface IPlexContentRepository : IExternalRepository<PlexServerContent>
|
||||||
{
|
{
|
||||||
Task<bool> ContentExists(string providerId);
|
Task<bool> ContentExists(string providerId);
|
||||||
Task<PlexServerContent> Get(string providerId);
|
Task<PlexServerContent> Get(string providerId, ProviderType type);
|
||||||
Task<PlexServerContent> GetByKey(int key);
|
Task<PlexServerContent> GetByKey(int key);
|
||||||
Task Update(PlexServerContent existingContent);
|
Task Update(PlexServerContent existingContent);
|
||||||
IQueryable<PlexEpisode> GetAllEpisodes();
|
IQueryable<PlexEpisode> GetAllEpisodes();
|
||||||
|
|
|
@ -31,6 +31,7 @@ using System.Linq;
|
||||||
using System.Linq.Expressions;
|
using System.Linq.Expressions;
|
||||||
using System.Threading.Tasks;
|
using System.Threading.Tasks;
|
||||||
using Microsoft.EntityFrameworkCore;
|
using Microsoft.EntityFrameworkCore;
|
||||||
|
using Ombi.Helpers;
|
||||||
using Ombi.Store.Context;
|
using Ombi.Store.Context;
|
||||||
using Ombi.Store.Entities;
|
using Ombi.Store.Entities;
|
||||||
|
|
||||||
|
@ -61,18 +62,21 @@ namespace Ombi.Store.Repository
|
||||||
return any;
|
return any;
|
||||||
}
|
}
|
||||||
|
|
||||||
public async Task<PlexServerContent> Get(string providerId)
|
public async Task<PlexServerContent> Get(string providerId, ProviderType type)
|
||||||
{
|
{
|
||||||
var item = await Db.PlexServerContent.FirstOrDefaultAsync(x => x.ImdbId == providerId);
|
switch (type)
|
||||||
if (item == null)
|
|
||||||
{
|
{
|
||||||
item = await Db.PlexServerContent.FirstOrDefaultAsync(x => x.TheMovieDbId == providerId);
|
case ProviderType.ImdbId:
|
||||||
if (item == null)
|
return await Db.PlexServerContent.FirstOrDefaultAsync(x => x.ImdbId == providerId);
|
||||||
{
|
case ProviderType.TheMovieDbId:
|
||||||
item = await Db.PlexServerContent.FirstOrDefaultAsync(x => x.TvDbId == providerId);
|
return await Db.PlexServerContent.FirstOrDefaultAsync(x => x.TheMovieDbId == providerId);
|
||||||
}
|
case ProviderType.TvDbId:
|
||||||
|
return await Db.PlexServerContent.FirstOrDefaultAsync(x => x.TvDbId == providerId);
|
||||||
|
default:
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
return item;
|
|
||||||
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
public async Task<PlexServerContent> GetByKey(int key)
|
public async Task<PlexServerContent> GetByKey(int key)
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue