Browse Source

clean up old remote stream artwork

pull/2778/head
Jason Dove 7 months ago
parent
commit
0041b4a70b
No known key found for this signature in database
  1. 26
      ErsatzTV.Infrastructure/Data/Repositories/RemoteStreamRepository.cs
  2. 11
      ErsatzTV.Scanner/Core/Metadata/RemoteStreamFolderScanner.cs

26
ErsatzTV.Infrastructure/Data/Repositories/RemoteStreamRepository.cs

@ -25,25 +25,27 @@ public class RemoteStreamRepository( @@ -25,25 +25,27 @@ public class RemoteStreamRepository(
Option<RemoteStream> maybeExisting = await dbContext.RemoteStreams
.AsNoTracking()
.Include(i => i.RemoteStreamMetadata)
.ThenInclude(ovm => ovm.Genres)
.ThenInclude(rsm => rsm.Genres)
.Include(i => i.RemoteStreamMetadata)
.ThenInclude(ovm => ovm.Tags)
.ThenInclude(rsm => rsm.Tags)
.Include(i => i.RemoteStreamMetadata)
.ThenInclude(ovm => ovm.Studios)
.ThenInclude(rsm => rsm.Studios)
.Include(i => i.RemoteStreamMetadata)
.ThenInclude(ovm => ovm.Guids)
.ThenInclude(rsm => rsm.Guids)
.Include(i => i.RemoteStreamMetadata)
.ThenInclude(ovm => ovm.Actors)
.ThenInclude(rsm => rsm.Actors)
.Include(i => i.RemoteStreamMetadata)
.ThenInclude(ovm => ovm.Actors)
.ThenInclude(rsm => rsm.Actors)
.ThenInclude(a => a.Artwork)
.Include(ov => ov.LibraryPath)
.Include(i => i.RemoteStreamMetadata)
.ThenInclude(rsm => rsm.Artwork)
.Include(rs => rs.LibraryPath)
.ThenInclude(lp => lp.Library)
.Include(ov => ov.MediaVersions)
.ThenInclude(ov => ov.MediaFiles)
.Include(ov => ov.MediaVersions)
.ThenInclude(ov => ov.Streams)
.Include(ov => ov.TraktListItems)
.Include(rs => rs.MediaVersions)
.ThenInclude(mv => mv.MediaFiles)
.Include(rs => rs.MediaVersions)
.ThenInclude(mv => mv.Streams)
.Include(rs => rs.TraktListItems)
.ThenInclude(tli => tli.TraktList)
.OrderBy(i => i.MediaVersions.First().MediaFiles.First().Path)
.SingleOrDefaultAsync(i => i.MediaVersions.First().MediaFiles.First().Path == path, cancellationToken);

11
ErsatzTV.Scanner/Core/Metadata/RemoteStreamFolderScanner.cs

@ -28,6 +28,7 @@ public class RemoteStreamFolderScanner : LocalFolderScanner, IRemoteStreamFolder @@ -28,6 +28,7 @@ public class RemoteStreamFolderScanner : LocalFolderScanner, IRemoteStreamFolder
private readonly IFileSystem _fileSystem;
private readonly ILocalFileSystem _localFileSystem;
private readonly ILocalMetadataProvider _localMetadataProvider;
private readonly IMetadataRepository _metadataRepository;
private readonly ILogger<RemoteStreamFolderScanner> _logger;
private readonly IMediaItemRepository _mediaItemRepository;
private readonly IRemoteStreamRepository _remoteStreamRepository;
@ -61,6 +62,7 @@ public class RemoteStreamFolderScanner : LocalFolderScanner, IRemoteStreamFolder @@ -61,6 +62,7 @@ public class RemoteStreamFolderScanner : LocalFolderScanner, IRemoteStreamFolder
_fileSystem = fileSystem;
_localFileSystem = localFileSystem;
_localMetadataProvider = localMetadataProvider;
_metadataRepository = metadataRepository;
_remoteStreamRepository = remoteStreamRepository;
_libraryRepository = libraryRepository;
_mediaItemRepository = mediaItemRepository;
@ -386,13 +388,20 @@ public class RemoteStreamFolderScanner : LocalFolderScanner, IRemoteStreamFolder @@ -386,13 +388,20 @@ public class RemoteStreamFolderScanner : LocalFolderScanner, IRemoteStreamFolder
{
RemoteStream remoteStream = result.Item;
foreach (RemoteStreamMetadata metadata in remoteStream.RemoteStreamMetadata.HeadOrNone())
{
Option<string> maybeThumbnail = LocateThumbnail(remoteStream);
foreach (string thumbnailFile in maybeThumbnail)
{
RemoteStreamMetadata metadata = remoteStream.RemoteStreamMetadata.Head();
await RefreshArtwork(thumbnailFile, metadata, ArtworkKind.Thumbnail, None, None, cancellationToken);
}
if (maybeThumbnail.IsNone && metadata.Artwork.Any(a => a.ArtworkKind is ArtworkKind.Thumbnail))
{
await _metadataRepository.RemoveArtworkWithKind(metadata, ArtworkKind.Thumbnail);
}
}
return result;
}
catch (Exception ex)

Loading…
Cancel
Save