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
{
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) + " - <chapter> - <title>" + 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);

View File

@ -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);