expose library book to multipart decrypter for file naming

This commit is contained in:
Robert McRackan 2021-10-21 16:43:49 -04:00
parent 0a986238bc
commit 8e358d8f04
2 changed files with 16 additions and 5 deletions

View File

@ -9,11 +9,13 @@ using LibationFileManager;
namespace FileLiberator namespace FileLiberator
{ {
public static class AudioFileStorageExt public class MultipartRenamer
{ {
public static string MultipartFilename(this AudioFileStorage _, string outputFileName, int partsPosition, int partsTotal, AAXClean.NewSplitCallback newSplitCallback) LibraryBook libraryBook;
=> MultipartFilename(outputFileName, partsPosition, partsTotal, newSplitCallback);
public static string MultipartFilename(string outputFileName, int partsPosition, int partsTotal, AAXClean.NewSplitCallback newSplitCallback) 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) + " - <chapter> - <title>" + Path.GetExtension(outputFileName); var template = Path.ChangeExtension(outputFileName, null) + " - <chapter> - <title>" + Path.GetExtension(outputFileName);
@ -23,6 +25,12 @@ namespace FileLiberator
return fileTemplate.GetFilePath(); 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) public static string GetInProgressFilename(this AudioFileStorage _, LibraryBook libraryBook, string extension)
=> GetInProgressFilename(libraryBook, extension); => GetInProgressFilename(libraryBook, extension);

View File

@ -121,7 +121,10 @@ namespace FileLiberator
abDownloader abDownloader
= contentLic.DrmType != AudibleApi.Common.DrmType.Adrm ? new UnencryptedAudiobookDownloader(outFileName, cacheDir, audiobookDlLic) = 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); : new AaxcDownloadSingleConverter(outFileName, cacheDir, audiobookDlLic, outputFormat);
abDownloader.DecryptProgressUpdate += (_, progress) => OnStreamingProgressChanged(progress); abDownloader.DecryptProgressUpdate += (_, progress) => OnStreamingProgressChanged(progress);
abDownloader.DecryptTimeRemaining += (_, remaining) => OnStreamingTimeRemaining(remaining); abDownloader.DecryptTimeRemaining += (_, remaining) => OnStreamingTimeRemaining(remaining);