diff --git a/Source/AaxDecrypter/AaxDecrypter.csproj b/Source/AaxDecrypter/AaxDecrypter.csproj index c065bf6d..51f76329 100644 --- a/Source/AaxDecrypter/AaxDecrypter.csproj +++ b/Source/AaxDecrypter/AaxDecrypter.csproj @@ -13,7 +13,7 @@ - + diff --git a/Source/FileLiberator/ConvertToMp3.cs b/Source/FileLiberator/ConvertToMp3.cs index a03fb34e..89976d16 100644 --- a/Source/FileLiberator/ConvertToMp3.cs +++ b/Source/FileLiberator/ConvertToMp3.cs @@ -60,6 +60,11 @@ public override async Task ProcessAsync(LibraryBook libraryBook) config.LameMatchSourceBR, chapters); + if (m4bBook.AppleTags.Tracks is (int trackNum, int trackCount)) + { + lameConfig.ID3.Track = trackCount > 0 ? $"{trackNum}/{trackCount}" : trackNum.ToString(); + } + using var mp3File = File.Open(Path.GetTempFileName(), FileMode.OpenOrCreate, FileAccess.ReadWrite); try { diff --git a/Source/LibationFileManager/AudibleFileStorage.cs b/Source/LibationFileManager/AudibleFileStorage.cs index 0a89c8d9..4e91d850 100644 --- a/Source/LibationFileManager/AudibleFileStorage.cs +++ b/Source/LibationFileManager/AudibleFileStorage.cs @@ -170,21 +170,19 @@ public void Refresh() try { - using var fileStream = File.OpenRead(path); - if (format is OutputFormat.M4b) { - var mp4File = await Task.Run(() => new AAXClean.Mp4File(fileStream), cancellationToken); + var tags = await Task.Run(() => AAXClean.AppleTags.FromFile(path)); - if (mp4File?.AppleTags?.Asin is not null) - audioFile = new FilePathCache.CacheEntry(mp4File.AppleTags.Asin, FileType.Audio, path); + if (tags?.Asin is not null) + audioFile = new FilePathCache.CacheEntry(tags.Asin, FileType.Audio, path); } else { - var id3 = NAudio.Lame.ID3.Id3Tag.Create(fileStream); + using var fileStream = File.OpenRead(path); + var id3 = await Task.Run(() => NAudio.Lame.ID3.Id3Tag.Create(fileStream)); - var asin - = id3?.Children + var asin = id3?.Children .OfType() .FirstOrDefault(f => f.FieldName == "AUDIBLE_ASIN") ?.FieldValue; diff --git a/Source/LibationUiBase/GridView/GridContextMenu.cs b/Source/LibationUiBase/GridView/GridContextMenu.cs index 15b0f099..9e9c78ae 100644 --- a/Source/LibationUiBase/GridView/GridContextMenu.cs +++ b/Source/LibationUiBase/GridView/GridContextMenu.cs @@ -95,20 +95,4 @@ public ITemplateEditor CreateTemplateEditor(LibraryBook libraryBook, string e return TemplateEditor.CreateFilenameEditor(Configuration.Instance.Books, existingTemplate, folderDto, fileDto); } - - -} -class Command : ICommand -{ - public event EventHandler CanExecuteChanged; - - public bool CanExecute(object parameter) - { - throw new NotImplementedException(); - } - - public void Execute(object parameter) - { - throw new NotImplementedException(); - } } \ No newline at end of file