From 8e358d8f04aa0c2602df5969595642b47cf12403 Mon Sep 17 00:00:00 2001 From: Robert McRackan Date: Thu, 21 Oct 2021 16:43:49 -0400 Subject: [PATCH] expose library book to multipart decrypter for file naming --- FileLiberator/AudioFileStorageExt.cs | 16 ++++++++++++---- FileLiberator/DownloadDecryptBook.cs | 5 ++++- 2 files changed, 16 insertions(+), 5 deletions(-) diff --git a/FileLiberator/AudioFileStorageExt.cs b/FileLiberator/AudioFileStorageExt.cs index 6c3c1ea1..65dd3fcd 100644 --- a/FileLiberator/AudioFileStorageExt.cs +++ b/FileLiberator/AudioFileStorageExt.cs @@ -9,11 +9,13 @@ using LibationFileManager; namespace FileLiberator { - public static class AudioFileStorageExt + public class MultipartRenamer { - public static string MultipartFilename(this AudioFileStorage _, string outputFileName, int partsPosition, int partsTotal, AAXClean.NewSplitCallback newSplitCallback) - => MultipartFilename(outputFileName, partsPosition, partsTotal, newSplitCallback); - public static string MultipartFilename(string outputFileName, int partsPosition, int partsTotal, AAXClean.NewSplitCallback newSplitCallback) + LibraryBook libraryBook; + + public MultipartRenamer(LibraryBook libraryBook) => this.libraryBook = libraryBook; + + public string MultipartFilename(string outputFileName, int partsPosition, int partsTotal, AAXClean.NewSplitCallback newSplitCallback) { var template = Path.ChangeExtension(outputFileName, null) + " - - " + Path.GetExtension(outputFileName); @@ -23,6 +25,12 @@ namespace FileLiberator return fileTemplate.GetFilePath(); } + } + + public static class AudioFileStorageExt + { + public static MultipartRenamer CreateMultipartRenamer(this AudioFileStorage _, LibraryBook libraryBook) => CreateMultipartRenamer(libraryBook); + public static MultipartRenamer CreateMultipartRenamer(LibraryBook libraryBook) => new(libraryBook); public static string GetInProgressFilename(this AudioFileStorage _, LibraryBook libraryBook, string extension) => GetInProgressFilename(libraryBook, extension); diff --git a/FileLiberator/DownloadDecryptBook.cs b/FileLiberator/DownloadDecryptBook.cs index 42d0bce7..41cbcbbc 100644 --- a/FileLiberator/DownloadDecryptBook.cs +++ b/FileLiberator/DownloadDecryptBook.cs @@ -121,7 +121,10 @@ namespace FileLiberator abDownloader = contentLic.DrmType != AudibleApi.Common.DrmType.Adrm ? new UnencryptedAudiobookDownloader(outFileName, cacheDir, audiobookDlLic) - : Configuration.Instance.SplitFilesByChapter ? new AaxcDownloadMultiConverter(outFileName, cacheDir, audiobookDlLic, outputFormat, AudibleFileStorage.Audio.MultipartFilename) + : Configuration.Instance.SplitFilesByChapter ? new AaxcDownloadMultiConverter( + outFileName, cacheDir, audiobookDlLic, outputFormat, + AudibleFileStorage.Audio.CreateMultipartRenamer(libraryBook).MultipartFilename + ) : new AaxcDownloadSingleConverter(outFileName, cacheDir, audiobookDlLic, outputFormat); abDownloader.DecryptProgressUpdate += (_, progress) => OnStreamingProgressChanged(progress); abDownloader.DecryptTimeRemaining += (_, remaining) => OnStreamingTimeRemaining(remaining);