public override IEnumerable <ExtraFile> CreateAfterMovieScan(Movie movie, List <MovieFile> movieFiles) { var metadataFiles = _metadataFileService.GetFilesByMovie(movie.Id); _cleanMetadataService.Clean(movie); if (!_diskProvider.FolderExists(movie.Path)) { _logger.Info("Movie folder does not exist, skipping metadata creation"); return(Enumerable.Empty <MetadataFile>()); } var files = new List <MetadataFile>(); foreach (var consumer in _metadataFactory.Enabled()) { var consumerFiles = GetMetadataFilesForConsumer(consumer, metadataFiles); files.AddRange(ProcessMovieImages(consumer, movie, consumerFiles)); foreach (var movieFile in movieFiles) { files.AddIfNotNull(ProcessMovieMetadata(consumer, movie, movieFile, consumerFiles)); } } _metadataFileService.Upsert(files); return(files); }
public override IEnumerable <ExtraFile> CreateAfterMediaCoverUpdate(Movie movie) { _logger.Debug("Creating Movie Metadata after Cover Update for: {0}", Path.Combine(movie.Path, movie.MovieFile?.RelativePath ?? string.Empty)); var metadataFiles = _metadataFileService.GetFilesByMovie(movie.Id); _cleanMetadataService.Clean(movie); if (!_diskProvider.FolderExists(movie.Path)) { _logger.Info("Movie folder does not exist, skipping metadata image creation"); return(Enumerable.Empty <MetadataFile>()); } var files = new List <MetadataFile>(); foreach (var consumer in _metadataFactory.Enabled()) { var consumerFiles = GetMetadataFilesForConsumer(consumer, metadataFiles); files.AddRange(ProcessMovieImages(consumer, movie, movie.MovieFile, consumerFiles)); files.AddIfNotNull(ProcessMovieMetadata(consumer, movie, movie.MovieFile, consumerFiles)); } _metadataFileService.Upsert(files); return(files); }
public void Clean() { if (!_configService.CleanupMetadataImages) { return; } var movies = _movieService.GetAllMovies(); foreach (var movie in movies) { var images = _metaFileService.GetFilesByMovie(movie.Id) .Where(c => c.LastUpdated > new DateTime(2014, 12, 27) && c.RelativePath.EndsWith(".jpg", StringComparison.InvariantCultureIgnoreCase)); foreach (var image in images) { try { var path = Path.Combine(movie.Path, image.RelativePath); if (!IsValid(path)) { _logger.Debug("Deleting invalid image file " + path); DeleteMetadata(image.Id, path); } } catch (Exception e) { _logger.Error(e, "Couldn't validate image " + image.RelativePath); } } } _configService.CleanupMetadataImages = false; }
public void Clean(Movie movie) { _logger.Debug("Cleaning missing metadata files for movie: {0}", movie.Title); var metadataFiles = _metadataFileService.GetFilesByMovie(movie.Id); foreach (var metadataFile in metadataFiles) { if (!_diskProvider.FileExists(Path.Combine(movie.Path, metadataFile.RelativePath))) { _logger.Debug("Deleting metadata file from database: {0}", metadataFile.RelativePath); _metadataFileService.Delete(metadataFile.Id); } } }