Beispiel #1
0
 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;
 }
Beispiel #5
0
        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"));
        }
Beispiel #6
0
        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;
        }
Beispiel #7
0
        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();
        }
Beispiel #8
0
        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."));
        }
Beispiel #9
0
 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 SetImagesFor(ContainerDir dir)
 {
     foreach (var file in dir.Files)
     {
         file.Images = GetCoverImagesFrom(file.Path);
     }
 }
Beispiel #14
0
 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;
 }
Beispiel #15
0
        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;
        }