ISBN Support (#1985)

* Fixed a bug where weblinks would always show

* Started to try and support ico -> png conversion by manually grabbing image data out, but it's hard as hell.

* Implemented ability to parse out ISBN codes for books and ISBN-13 codes for ComicInfo. I can't figure out ISBN-10.

* Fixed Favicon not working on anything but windows

* Implemented ISBN support into Kavita

* Don't round so much when transforming bytes
This commit is contained in:
Joe Milazzo 2023-05-11 20:13:58 -05:00 committed by GitHub
parent a293500f42
commit 6be9ee39f4
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
18 changed files with 2083 additions and 15 deletions

View file

@ -11,6 +11,7 @@ using API.Data.Metadata;
using API.DTOs.Reader;
using API.Entities;
using API.Entities.Enums;
using API.Helpers;
using API.Services.Tasks.Scanner.Parser;
using Docnet.Core;
using Docnet.Core.Converters;
@ -21,6 +22,7 @@ using HtmlAgilityPack;
using Kavita.Common;
using Microsoft.Extensions.Logging;
using Microsoft.IO;
using Nager.ArticleNumber;
using SixLabors.ImageSharp;
using SixLabors.ImageSharp.PixelFormats;
using VersOne.Epub;
@ -433,6 +435,14 @@ public class BookService : IBookService
};
ComicInfo.CleanComicInfo(info);
foreach (var identifier in epubBook.Schema.Package.Metadata.Identifiers.Where(id => id.Scheme.Equals("ISBN")))
{
var isbn = identifier.Identifier.Replace("urn:isbn:", string.Empty);
if (!ArticleNumberHelper.IsValidIsbn10(isbn) && !ArticleNumberHelper.IsValidIsbn13(isbn)) continue;
info.Isbn = isbn;
break;
}
// Parse tags not exposed via Library
foreach (var metadataItem in epubBook.Schema.Package.Metadata.MetaItems)
{