diff --git a/src/Ombi.Schedule/Jobs/Ombi/RefreshMetadata.cs b/src/Ombi.Schedule/Jobs/Ombi/RefreshMetadata.cs index d7c05d71e..adf6bddca 100644 --- a/src/Ombi.Schedule/Jobs/Ombi/RefreshMetadata.cs +++ b/src/Ombi.Schedule/Jobs/Ombi/RefreshMetadata.cs @@ -7,6 +7,7 @@ using Ombi.Api.Emby; using Ombi.Api.Jellyfin; using Ombi.Api.Plex; +using Ombi.Api.Plex.Models; using Ombi.Api.TheMovieDb; using Ombi.Api.TheMovieDb.Models; using Ombi.Api.TvMaze; @@ -286,7 +287,18 @@ private async Task StartPlexMovies(List allMovies, PlexSettin continue; } var servers = settings.Servers[0]; - var metaData = await _plexApi.GetMetadata(servers.PlexAuthToken, settings.Servers[0].FullUri, movie.Key); + PlexMetadata metaData = null; + + try + { + metaData = await _plexApi.GetMetadata(servers.PlexAuthToken, settings.Servers[0].FullUri, movie.Key); + } + catch (Exception e) + { + _log.LogError($"Could not find the metadata for title: '{movie.Title}', skipping"); + _log.LogDebug(e, $"Could not find the metadata for title: '{movie.Title}', skipping"); + continue; + } var guids = new List(); var meta = metaData.MediaContainer.Metadata.FirstOrDefault(); diff --git a/src/Ombi.Schedule/Jobs/Plex/PlexContentSync.cs b/src/Ombi.Schedule/Jobs/Plex/PlexContentSync.cs index 365110d9c..596a6202a 100644 --- a/src/Ombi.Schedule/Jobs/Plex/PlexContentSync.cs +++ b/src/Ombi.Schedule/Jobs/Plex/PlexContentSync.cs @@ -304,6 +304,13 @@ public async Task MovieLoop(PlexServers servers, Mediacontainer content, HashSet var existing = await Repo.GetFirstContentByCustom(x => x.Title == movie.title && x.ReleaseYear == movie.year.ToString() && x.Type == MediaType.Movie); + + + if (existing == null) + { + // Let's just check the key + existing = await Repo.GetByKey(movie.ratingKey); + } if (existing != null) { // We need to see if this is a different quality, @@ -340,13 +347,7 @@ public async Task MovieLoop(PlexServers servers, Mediacontainer content, HashSet Logger.LogDebug($"We already have movie {movie.title}"); continue; - } - - //var hasSameKey = await Repo.GetByKey(movie.ratingKey); - //if (hasSameKey != null) - //{ - // await Repo.Delete(hasSameKey); - //} + } Logger.LogDebug("Adding movie {0}", movie.title); var guids = new List(); diff --git a/src/Ombi.Store/Repository/PlexContentRepository.cs b/src/Ombi.Store/Repository/PlexContentRepository.cs index 9f34af6a1..1d9a35cd4 100644 --- a/src/Ombi.Store/Repository/PlexContentRepository.cs +++ b/src/Ombi.Store/Repository/PlexContentRepository.cs @@ -94,7 +94,7 @@ public async Task GetByType(string providerId, ProviderType t public async Task GetByKey(string key) { - return await Db.PlexServerContent.Include(x => x.Seasons).FirstOrDefaultAsync(x => x.Key == key); + return await Db.PlexServerContent.Include(x => x.Seasons).Include(x => x.Episodes).FirstOrDefaultAsync(x => x.Key == key); } public IEnumerable GetWhereContentByCustom(Expression> predicate)