Move cover download to processable
This commit is contained in:
parent
82b5daa809
commit
48ffc40abb
@ -5,6 +5,7 @@ using System.Threading.Tasks;
|
|||||||
using DataLayer;
|
using DataLayer;
|
||||||
using Dinah.Core;
|
using Dinah.Core;
|
||||||
using Dinah.Core.ErrorHandling;
|
using Dinah.Core.ErrorHandling;
|
||||||
|
using LibationFileManager;
|
||||||
|
|
||||||
namespace FileLiberator
|
namespace FileLiberator
|
||||||
{
|
{
|
||||||
@ -47,9 +48,38 @@ namespace FileLiberator
|
|||||||
= (await ProcessAsync(libraryBook))
|
= (await ProcessAsync(libraryBook))
|
||||||
?? new StatusHandler { "Processable should never return a null status" };
|
?? new StatusHandler { "Processable should never return a null status" };
|
||||||
|
|
||||||
|
if (status.IsSuccess)
|
||||||
|
DownloadCoverArt(libraryBook);
|
||||||
|
|
||||||
return status;
|
return status;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void DownloadCoverArt(LibraryBook libraryBook)
|
||||||
|
{
|
||||||
|
var destinationDir = AudibleFileStorage.Audio.GetDestinationDirectory(libraryBook);
|
||||||
|
var coverPath = FileManager.FileUtility.GetValidFilename(System.IO.Path.Combine(destinationDir, "Cover.jpg"), "", true);
|
||||||
|
|
||||||
|
if (System.IO.File.Exists(coverPath)) return;
|
||||||
|
|
||||||
|
try
|
||||||
|
{
|
||||||
|
(string picId, PictureSize size) = libraryBook.Book.PictureId_1215 is null ?
|
||||||
|
(libraryBook.Book.PictureId, PictureSize._500x500) :
|
||||||
|
(libraryBook.Book.PictureId_1215, PictureSize._1215x1215);
|
||||||
|
|
||||||
|
var picBytes = PictureStorage.GetPictureSynchronously(new PictureDefinition(picId, size));
|
||||||
|
|
||||||
|
if (picBytes.Length > 0)
|
||||||
|
System.IO.File.WriteAllBytes(coverPath, picBytes);
|
||||||
|
}
|
||||||
|
catch (Exception ex)
|
||||||
|
{
|
||||||
|
//Failure to download cover art should not be
|
||||||
|
//considered a failure to download the book
|
||||||
|
Serilog.Log.Logger.Error(ex.Message);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
public async Task<StatusHandler> TryProcessAsync(LibraryBook libraryBook)
|
public async Task<StatusHandler> TryProcessAsync(LibraryBook libraryBook)
|
||||||
=> Validate(libraryBook)
|
=> Validate(libraryBook)
|
||||||
? await ProcessAsync(libraryBook)
|
? await ProcessAsync(libraryBook)
|
||||||
|
|||||||
@ -1,4 +1,4 @@
|
|||||||
using System;
|
using System;
|
||||||
using System.Threading.Tasks;
|
using System.Threading.Tasks;
|
||||||
using System.Windows.Forms;
|
using System.Windows.Forms;
|
||||||
using DataLayer;
|
using DataLayer;
|
||||||
@ -201,23 +201,7 @@ namespace LibationWinForms.BookLiberation
|
|||||||
var statusHandler = await Processable.ProcessSingleAsync(libraryBook, validate);
|
var statusHandler = await Processable.ProcessSingleAsync(libraryBook, validate);
|
||||||
|
|
||||||
if (statusHandler.IsSuccess)
|
if (statusHandler.IsSuccess)
|
||||||
{
|
|
||||||
var destinationDir = AudibleFileStorage.Audio.GetDestinationDirectory(libraryBook);
|
|
||||||
var coverPath = FileManager.FileUtility.GetValidFilename(System.IO.Path.Combine(destinationDir, "Cover.jpg"), "", true);
|
|
||||||
|
|
||||||
try
|
|
||||||
{
|
|
||||||
var picBytes = PictureStorage.GetPictureSynchronously(new PictureDefinition(libraryBook.Book.PictureId_1215, PictureSize._1215x1215));
|
|
||||||
System.IO.File.WriteAllBytes(coverPath, picBytes);
|
|
||||||
}
|
|
||||||
catch(Exception ex)
|
|
||||||
{
|
|
||||||
LogMe.Error(ex.Message);
|
|
||||||
}
|
|
||||||
//Failure to download cover art should not be
|
|
||||||
//considered a failure to download the book
|
|
||||||
return true;
|
return true;
|
||||||
}
|
|
||||||
|
|
||||||
foreach (var errorMessage in statusHandler.Errors)
|
foreach (var errorMessage in statusHandler.Errors)
|
||||||
LogMe.Error(errorMessage);
|
LogMe.Error(errorMessage);
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user