Browse Source

fix plex actor artwork with newly added media items (#175)

pull/176/head
Jason Dove 5 years ago committed by GitHub
parent
commit
5d01276ef3
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
  1. 2
      ErsatzTV.Core/Plex/PlexMovieLibraryScanner.cs
  2. 2
      ErsatzTV.Core/Plex/PlexTelevisionLibraryScanner.cs
  3. 4
      ErsatzTV.Infrastructure/Data/Repositories/MovieRepository.cs
  4. 6
      ErsatzTV.Infrastructure/Data/Repositories/TelevisionRepository.cs

2
ErsatzTV.Core/Plex/PlexMovieLibraryScanner.cs

@ -156,7 +156,7 @@ namespace ErsatzTV.Core.Plex @@ -156,7 +156,7 @@ namespace ErsatzTV.Core.Plex
PlexMovie existing = result.Item;
MovieMetadata existingMetadata = existing.MovieMetadata.Head();
if (incoming.MovieMetadata.Head().DateUpdated > existingMetadata.DateUpdated)
if (result.IsAdded || incoming.MovieMetadata.Head().DateUpdated > existingMetadata.DateUpdated)
{
_logger.LogDebug(
"Refreshing {Attribute} from {Path}",

2
ErsatzTV.Core/Plex/PlexTelevisionLibraryScanner.cs

@ -124,7 +124,7 @@ namespace ErsatzTV.Core.Plex @@ -124,7 +124,7 @@ namespace ErsatzTV.Core.Plex
PlexShow existing = result.Item;
ShowMetadata existingMetadata = existing.ShowMetadata.Head();
if (incoming.ShowMetadata.Head().DateUpdated > existingMetadata.DateUpdated)
if (result.IsAdded || incoming.ShowMetadata.Head().DateUpdated > existingMetadata.DateUpdated)
{
Either<BaseError, ShowMetadata> maybeMetadata =
await _plexServerApiClient.GetShowMetadata(

4
ErsatzTV.Infrastructure/Data/Repositories/MovieRepository.cs

@ -67,6 +67,7 @@ namespace ErsatzTV.Infrastructure.Data.Repositories @@ -67,6 +67,7 @@ namespace ErsatzTV.Infrastructure.Data.Repositories
.ThenInclude(mm => mm.Studios)
.Include(i => i.MovieMetadata)
.ThenInclude(mm => mm.Actors)
.ThenInclude(a => a.Artwork)
.Include(i => i.LibraryPath)
.ThenInclude(lp => lp.Library)
.Include(i => i.MediaVersions)
@ -98,6 +99,7 @@ namespace ErsatzTV.Infrastructure.Data.Repositories @@ -98,6 +99,7 @@ namespace ErsatzTV.Infrastructure.Data.Repositories
.ThenInclude(mm => mm.Studios)
.Include(i => i.MovieMetadata)
.ThenInclude(mm => mm.Actors)
.ThenInclude(a => a.Artwork)
.Include(i => i.MovieMetadata)
.ThenInclude(mm => mm.Artwork)
.Include(i => i.MediaVersions)
@ -112,7 +114,7 @@ namespace ErsatzTV.Infrastructure.Data.Repositories @@ -112,7 +114,7 @@ namespace ErsatzTV.Infrastructure.Data.Repositories
return await maybeExisting.Match(
plexMovie =>
Right<BaseError, MediaItemScanResult<PlexMovie>>(
new MediaItemScanResult<PlexMovie>(plexMovie) { IsAdded = true }).AsTask(),
new MediaItemScanResult<PlexMovie>(plexMovie) { IsAdded = false }).AsTask(),
async () => await AddPlexMovie(context, library, item));
}

6
ErsatzTV.Infrastructure/Data/Repositories/TelevisionRepository.cs

@ -192,6 +192,7 @@ namespace ErsatzTV.Infrastructure.Data.Repositories @@ -192,6 +192,7 @@ namespace ErsatzTV.Infrastructure.Data.Repositories
.ThenInclude(s => s.Show)
.ThenInclude(s => s.ShowMetadata)
.ThenInclude(sm => sm.Actors)
.ThenInclude(a => a.Artwork)
.OrderBy(em => em.Episode.EpisodeNumber)
.Skip((pageNumber - 1) * pageSize)
.Take(pageSize)
@ -293,6 +294,7 @@ namespace ErsatzTV.Infrastructure.Data.Repositories @@ -293,6 +294,7 @@ namespace ErsatzTV.Infrastructure.Data.Repositories
.ThenInclude(em => em.Artwork)
.Include(i => i.EpisodeMetadata)
.ThenInclude(em => em.Actors)
.ThenInclude(a => a.Artwork)
.Include(i => i.MediaVersions)
.ThenInclude(mv => mv.MediaFiles)
.Include(i => i.MediaVersions)
@ -393,6 +395,7 @@ namespace ErsatzTV.Infrastructure.Data.Repositories @@ -393,6 +395,7 @@ namespace ErsatzTV.Infrastructure.Data.Repositories
.ThenInclude(sm => sm.Studios)
.Include(i => i.ShowMetadata)
.ThenInclude(sm => sm.Actors)
.ThenInclude(a => a.Artwork)
.Include(i => i.ShowMetadata)
.ThenInclude(sm => sm.Artwork)
.Include(i => i.LibraryPath)
@ -402,7 +405,7 @@ namespace ErsatzTV.Infrastructure.Data.Repositories @@ -402,7 +405,7 @@ namespace ErsatzTV.Infrastructure.Data.Repositories
return await maybeExisting.Match(
plexShow => Right<BaseError, MediaItemScanResult<PlexShow>>(
new MediaItemScanResult<PlexShow>(plexShow) { IsAdded = true }).AsTask(),
new MediaItemScanResult<PlexShow>(plexShow) { IsAdded = false }).AsTask(),
async () => await AddPlexShow(dbContext, library, item));
}
@ -434,6 +437,7 @@ namespace ErsatzTV.Infrastructure.Data.Repositories @@ -434,6 +437,7 @@ namespace ErsatzTV.Infrastructure.Data.Repositories
.ThenInclude(mv => mv.Streams)
.Include(e => e.EpisodeMetadata)
.ThenInclude(em => em.Actors)
.ThenInclude(a => a.Artwork)
.OrderBy(i => i.Key)
.SingleOrDefaultAsync(i => i.Key == item.Key);

Loading…
Cancel
Save