public void SetImagesFor(ContainerDir dir) { foreach (var file in dir.Files) { file.Images = GetCoverImagesFrom(file.Path); } }
public void UseACoverImageAsFolderImageIfPossible(IList<string> dirCoverImages, ContainerDir containerDir, IssueLog issues) { if (dirCoverImages.Count != 0) return; _imageHelpers.TrySaveFolderImageFromAMediaFileIn(containerDir); if (containerDir.HasFolderImage) return; Log.Warn("Folder image needed"); issues.NeedToFindACoverImage = true; }
public void CheckTracksAreInITunesLib(ContainerDir containerDir, IssueLog issues) { var notInLib = containerDir.Files.Select(f => f.Path).Where(fp => !_iTunesLibraryHelper.TrackIsInLibrary(fp)).ToList(); if (notInLib.Count == 0) return; Log.WarnFormat("{0}/{1} tracks not in ITunes Library", notInLib.Count, containerDir.Files.Count); issues.TracksNotInITunes = true; }
public void RenameSingleAcceptableFolderImageWhenWrongName(IList<string> dirCoverImages, ContainerDir containerDir) { if (dirCoverImages.Count != 1 || HasFolderImageFilename(dirCoverImages)) return; var newPath = string.Concat(containerDir.Path, "\\", _appConstants.FolderImageFilename); _fileSystemHelpers.RenameIfThereIsAnExistingFileAt(newPath); _fileSystemHelpers.Rename(dirCoverImages[0], newPath); Log.Info(string.Concat("Renamed Folder Image: ", newPath)); containerDir.FolderImagePath = newPath; }
private CoverImage ExtractFirstAcceptableFolderImageFrom(ContainerDir dir) { var allImages = dir.Files .OrderBy(f => f.Name) .SelectMany(mf => mf.Images); return(allImages.FirstOrDefault(im => im.IsAcceptableSize && im.Type == PictureType.FrontCover && GetFileExtensionFor(im.ImageData) == ".jpg")); }
public void CheckTracksAreInITunesLib(ContainerDir containerDir, IssueLog issues) { var notInLib = containerDir.Files.Select(f => f.Path).Where(fp => !_iTunesLibraryHelper.TrackIsInLibrary(fp)).ToList(); if (notInLib.Count == 0) { return; } Log.WarnFormat("{0}/{1} tracks not in ITunes Library", notInLib.Count, containerDir.Files.Count); issues.TracksNotInITunes = true; }
private void SaveCoverImageToTagsIfPossible(IList <string> dirImages, ContainerDir containerDir) { //TODO: surely i EITHER get an image from a file, or save an image into tags //TODO: no, just do this after file validation (TagMetadataHelper) //foreach (var file in containerDir.Files) //{ // if (!file.Images.Any(im => im.IsAcceptableSize) && dirImages) //} //throw new NotImplementedException(); }
public void TrySaveFolderImageFromAMediaFileIn(ContainerDir dir) { var acceptableFolderImage = ExtractFirstAcceptableFolderImageFrom(dir); if (acceptableFolderImage == null) { return; } var saveAsPath = String.Concat(dir.Path, "\\", _appConstants.FolderImageFilename); _fileSystemHelpers.RenameIfThereIsAnExistingFileAt(saveAsPath); acceptableFolderImage.ImageData.Save(saveAsPath); dir.FolderImagePath = saveAsPath; Log.Info(String.Concat("Extracted '", _appConstants.FolderImageFilename, "' from a media file.")); }
public void ValidateMetadataIn(ContainerDir directory, IssueLog issues) { _isValid = false; _consistencyDictionary = new Dictionary <string, HashSet <dynamic> >(); foreach (var file in directory.Files) { var tLFile = TagLibFile.Create(file.Path); var tag = tLFile.Tag; SaveConsistencyOfPropertiesIn(tag); CheckRequiredFieldsArePopulatedIn(tag, file.Name); CheckCoverImagesIn(file); tLFile.Dispose(); } CheckConsistency(); issues.MetadataNeedsFixing = !_isValid; }
private void SaveCoverImageToTagsIfPossible(IList<string> dirImages, ContainerDir containerDir) { //TODO: surely i EITHER get an image from a file, or save an image into tags //TODO: no, just do this after file validation (TagMetadataHelper) //foreach (var file in containerDir.Files) //{ // if (!file.Images.Any(im => im.IsAcceptableSize) && dirImages) //} //throw new NotImplementedException(); }
private CoverImage ExtractFirstAcceptableFolderImageFrom(ContainerDir dir) { var allImages = dir.Files .OrderBy(f => f.Name) .SelectMany(mf => mf.Images); return allImages.FirstOrDefault(im => im.IsAcceptableSize && im.Type == PictureType.FrontCover && GetFileExtensionFor(im.ImageData) == ".jpg"); }
public void TrySaveFolderImageFromAMediaFileIn(ContainerDir dir) { var acceptableFolderImage = ExtractFirstAcceptableFolderImageFrom(dir); if (acceptableFolderImage == null) return; var saveAsPath = String.Concat(dir.Path, "\\", _appConstants.FolderImageFilename); _fileSystemHelpers.RenameIfThereIsAnExistingFileAt(saveAsPath); acceptableFolderImage.ImageData.Save(saveAsPath); dir.FolderImagePath = saveAsPath; Log.Info(String.Concat("Extracted '", _appConstants.FolderImageFilename, "' from a media file.")); }
public void UseACoverImageAsFolderImageIfPossible(IList <string> dirCoverImages, ContainerDir containerDir, IssueLog issues) { if (dirCoverImages.Count != 0) { return; } _imageHelpers.TrySaveFolderImageFromAMediaFileIn(containerDir); if (containerDir.HasFolderImage) { return; } Log.Warn("Folder image needed"); issues.NeedToFindACoverImage = true; }
public void RenameSingleAcceptableFolderImageWhenWrongName(IList <string> dirCoverImages, ContainerDir containerDir) { if (dirCoverImages.Count != 1 || HasFolderImageFilename(dirCoverImages)) { return; } var newPath = string.Concat(containerDir.Path, "\\", _appConstants.FolderImageFilename); _fileSystemHelpers.RenameIfThereIsAnExistingFileAt(newPath); _fileSystemHelpers.Rename(dirCoverImages[0], newPath); Log.Info(string.Concat("Renamed Folder Image: ", newPath)); containerDir.FolderImagePath = newPath; }