Needed to add check for actual file since Audio_Exists is now an application state.

This commit is contained in:
Michael Bucari-Tovo 2021-08-21 18:15:39 -06:00
parent 1369ee575a
commit ede8397f13

View File

@ -47,13 +47,15 @@ namespace FileLiberator
return new StatusHandler { "Decrypt failed" }; return new StatusHandler { "Decrypt failed" };
// moves files and returns dest dir // moves files and returns dest dir
_ = moveFilesToBooksDir(libraryBook.Book, outputAudioFilename); var moveResults = MoveFilesToBooksDir(libraryBook.Book, outputAudioFilename);
if (!libraryBook.Book.Audio_Exists) if (!moveResults.movedAudioFile)
return new StatusHandler { "Cannot find final audio file after decryption" }; return new StatusHandler { "Cannot find final audio file after decryption" };
// only need to update if success. if failure, it will remain at 0 == NotLiberated // need to update before Audio_Exists will return true
ApplicationServices.LibraryCommands.UpdateBook(libraryBook, LiberatedStatus.Liberated); ApplicationServices.LibraryCommands.UpdateBook(libraryBook.Book, LiberatedStatus.Liberated);
return new StatusHandler(); return new StatusHandler();
} }
@ -146,7 +148,7 @@ namespace FileLiberator
NarratorsDiscovered?.Invoke(this, e.Narrator ?? "[unknown]"); NarratorsDiscovered?.Invoke(this, e.Narrator ?? "[unknown]");
} }
private static string moveFilesToBooksDir(Book product, string outputAudioFilename) private static (string destinationDir, bool movedAudioFile) MoveFilesToBooksDir(Book product, string outputAudioFilename)
{ {
// create final directory. move each file into it. MOVE AUDIO FILE LAST // create final directory. move each file into it. MOVE AUDIO FILE LAST
// new dir: safetitle_limit50char + " [" + productId + "]" // new dir: safetitle_limit50char + " [" + productId + "]"
@ -161,6 +163,7 @@ namespace FileLiberator
// audio filename: safetitle_limit50char + " [" + productId + "]." + audio_ext // audio filename: safetitle_limit50char + " [" + productId + "]." + audio_ext
var audioFileName = FileUtility.GetValidFilename(destinationDir, product.Title, musicFileExt, product.AudibleProductId); var audioFileName = FileUtility.GetValidFilename(destinationDir, product.Title, musicFileExt, product.AudibleProductId);
bool movedAudioFile = false;
foreach (var f in sortedFiles) foreach (var f in sortedFiles)
{ {
var dest var dest
@ -173,11 +176,14 @@ namespace FileLiberator
Cue.UpdateFileName(f, audioFileName); Cue.UpdateFileName(f, audioFileName);
File.Move(f.FullName, dest); File.Move(f.FullName, dest);
movedAudioFile |= AudibleFileStorage.Audio.IsFileTypeMatch(f);
} }
AudibleFileStorage.Audio.Refresh(); AudibleFileStorage.Audio.Refresh();
return destinationDir; return (destinationDir, movedAudioFile);
} }
private static List<FileInfo> getProductFilesSorted(Book product, string outputAudioFilename) private static List<FileInfo> getProductFilesSorted(Book product, string outputAudioFilename)