CLI: error when scan has new book with pdf attachment:
This commit is contained in:
parent
40520b89d1
commit
5f8c672361
@ -3,7 +3,7 @@
|
|||||||
|
|
||||||
<PropertyGroup>
|
<PropertyGroup>
|
||||||
<TargetFramework>net5.0</TargetFramework>
|
<TargetFramework>net5.0</TargetFramework>
|
||||||
<Version>6.2.1.0</Version>
|
<Version>6.2.2.0</Version>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
|
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
|
|||||||
@ -47,7 +47,7 @@ namespace DataLayer
|
|||||||
if (_tags != newTags)
|
if (_tags != newTags)
|
||||||
{
|
{
|
||||||
_tags = newTags;
|
_tags = newTags;
|
||||||
ItemChanged?.Invoke(this, nameof(Tags));
|
OnItemChanged(nameof(Tags));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -112,6 +112,28 @@ namespace DataLayer
|
|||||||
/// </summary>
|
/// </summary>
|
||||||
public static event EventHandler<string> ItemChanged;
|
public static event EventHandler<string> ItemChanged;
|
||||||
|
|
||||||
|
private void OnItemChanged(string e)
|
||||||
|
{
|
||||||
|
// HACK
|
||||||
|
// must not fire during initial import.
|
||||||
|
//
|
||||||
|
// these checks are necessary because current architecture attaches to this instead of attaching to an event *after* fully committed to db. the attached delegate/action sometimes calls commit:
|
||||||
|
//
|
||||||
|
// desired:
|
||||||
|
// - importing new book
|
||||||
|
// - update pdf status
|
||||||
|
// - initial book commit
|
||||||
|
//
|
||||||
|
// actual without these checks [BAD]:
|
||||||
|
// - importing new book
|
||||||
|
// - update pdf status
|
||||||
|
// - invoke event
|
||||||
|
// - commit UserDefinedItem
|
||||||
|
// - initial book commit
|
||||||
|
if (BookId > 0 && Book is not null && Book.BookId > 0)
|
||||||
|
ItemChanged?.Invoke(this, e);
|
||||||
|
}
|
||||||
|
|
||||||
private LiberatedStatus _bookStatus;
|
private LiberatedStatus _bookStatus;
|
||||||
private LiberatedStatus? _pdfStatus;
|
private LiberatedStatus? _pdfStatus;
|
||||||
public LiberatedStatus BookStatus
|
public LiberatedStatus BookStatus
|
||||||
@ -122,7 +144,7 @@ namespace DataLayer
|
|||||||
if (_bookStatus != value)
|
if (_bookStatus != value)
|
||||||
{
|
{
|
||||||
_bookStatus = value;
|
_bookStatus = value;
|
||||||
ItemChanged?.Invoke(this, nameof(BookStatus));
|
OnItemChanged(nameof(BookStatus));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -134,7 +156,7 @@ namespace DataLayer
|
|||||||
if (_pdfStatus != value)
|
if (_pdfStatus != value)
|
||||||
{
|
{
|
||||||
_pdfStatus = value;
|
_pdfStatus = value;
|
||||||
ItemChanged?.Invoke(this, nameof(PdfStatus));
|
OnItemChanged(nameof(PdfStatus));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -17,7 +17,7 @@ namespace FileLiberator
|
|||||||
private Mp4File m4bBook;
|
private Mp4File m4bBook;
|
||||||
|
|
||||||
private long fileSize;
|
private long fileSize;
|
||||||
private string Mp3FileName(string m4bPath) => m4bPath is null ? string.Empty : PathLib.ReplaceExtension(m4bPath, ".mp3");
|
private static string Mp3FileName(string m4bPath) => m4bPath is null ? string.Empty : PathLib.ReplaceExtension(m4bPath, ".mp3");
|
||||||
|
|
||||||
public override void Cancel() => m4bBook?.Cancel();
|
public override void Cancel() => m4bBook?.Cancel();
|
||||||
|
|
||||||
|
|||||||
@ -24,13 +24,13 @@ namespace FileLiberator
|
|||||||
public abstract Task<StatusHandler> ProcessAsync(LibraryBook libraryBook);
|
public abstract Task<StatusHandler> ProcessAsync(LibraryBook libraryBook);
|
||||||
|
|
||||||
// when used in foreach: stateful. deferred execution
|
// when used in foreach: stateful. deferred execution
|
||||||
protected IEnumerable<LibraryBook> GetValidLibraryBooks(IEnumerable<LibraryBook> library)
|
public IEnumerable<LibraryBook> GetValidLibraryBooks(IEnumerable<LibraryBook> library)
|
||||||
=> library.Where(libraryBook =>
|
=> library.Where(libraryBook =>
|
||||||
Validate(libraryBook)
|
Validate(libraryBook)
|
||||||
&& (libraryBook.Book.ContentType != ContentType.Episode || FileManager.Configuration.Instance.DownloadEpisodes)
|
&& (libraryBook.Book.ContentType != ContentType.Episode || FileManager.Configuration.Instance.DownloadEpisodes)
|
||||||
);
|
);
|
||||||
|
|
||||||
protected async Task<StatusHandler> ProcessSingleAsync(LibraryBook libraryBook, bool validate)
|
public async Task<StatusHandler> ProcessSingleAsync(LibraryBook libraryBook, bool validate)
|
||||||
{
|
{
|
||||||
if (validate && !Validate(libraryBook))
|
if (validate && !Validate(libraryBook))
|
||||||
return new StatusHandler { "Validation failed" };
|
return new StatusHandler { "Validation failed" };
|
||||||
@ -50,7 +50,7 @@ namespace FileLiberator
|
|||||||
return status;
|
return status;
|
||||||
}
|
}
|
||||||
|
|
||||||
protected async Task<StatusHandler> TryProcessAsync(LibraryBook libraryBook)
|
public async Task<StatusHandler> TryProcessAsync(LibraryBook libraryBook)
|
||||||
=> Validate(libraryBook)
|
=> Validate(libraryBook)
|
||||||
? await ProcessAsync(libraryBook)
|
? await ProcessAsync(libraryBook)
|
||||||
: new StatusHandler();
|
: new StatusHandler();
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user