diff --git a/API/Extensions/DirectoryInfoExtensions.cs b/API/Extensions/DirectoryInfoExtensions.cs index 892c690b3..e5518438f 100644 --- a/API/Extensions/DirectoryInfoExtensions.cs +++ b/API/Extensions/DirectoryInfoExtensions.cs @@ -1,4 +1,5 @@ -using System.IO; +using System; +using System.IO; using System.Linq; using API.Comparators; @@ -78,6 +79,7 @@ namespace API.Extensions foreach (var subDirectory in directory.EnumerateDirectories()) { + Console.WriteLine($"Flattening {subDirectory}"); FlattenDirectory(root, subDirectory, ref directoryIndex); } } diff --git a/API/Services/ArchiveService.cs b/API/Services/ArchiveService.cs index 951cd7db8..66a5e2618 100644 --- a/API/Services/ArchiveService.cs +++ b/API/Services/ArchiveService.cs @@ -383,6 +383,7 @@ namespace API.Services private void ExtractArchiveEntries(ZipArchive archive, string extractPath) { + // TODO: In cases where we try to extract, but there are InvalidPathChars, we need to inform the user var needsFlattening = ArchiveNeedsFlattening(archive); if (!archive.HasFiles() && !needsFlattening) return; diff --git a/API/Services/BookService.cs b/API/Services/BookService.cs index 190e867cb..0fe910fdf 100644 --- a/API/Services/BookService.cs +++ b/API/Services/BookService.cs @@ -376,9 +376,11 @@ namespace API.Services using var docReader = DocLib.Instance.GetDocReader(fileFilePath, new PageDimensions(1080, 1920)); var pages = docReader.GetPageCount(); + using var stream = StreamManager.GetStream("BookService.GetPdfPage"); for (var pageNumber = 0; pageNumber < pages; pageNumber++) { - using var stream = GetPdfPage(docReader, pageNumber); + // IDEA! Move stream out and use the same stream + GetPdfPage(docReader, pageNumber, stream); File.WriteAllBytes(Path.Combine(targetDirectory, "Page-" + pageNumber + ".png"), stream.ToArray()); } } @@ -427,8 +429,8 @@ namespace API.Services using var docReader = DocLib.Instance.GetDocReader(fileFilePath, new PageDimensions(1080, 1920)); if (docReader.GetPageCount() == 0) return Array.Empty(); - using var stream = GetPdfPage(docReader, 0); - stream.Seek(0, SeekOrigin.Begin); + using var stream = StreamManager.GetStream("BookService.GetPdfPage"); + GetPdfPage(docReader, 0, stream); if (!createThumbnail) return stream.ToArray(); @@ -446,7 +448,7 @@ namespace API.Services return Array.Empty(); } - private static MemoryStream GetPdfPage(IDocReader docReader, int pageNumber) + private static void GetPdfPage(IDocReader docReader, int pageNumber, Stream stream) { using var pageReader = docReader.GetPageReader(pageNumber); var rawBytes = pageReader.GetImage(new NaiveTransparencyRemover()); @@ -459,10 +461,9 @@ namespace API.Services { bmp.SetPixel(bmp.Width - 1, y, bmp.GetPixel(bmp.Width - 2, y)); } - - var stream = StreamManager.GetStream("BookService.GetPdfPage"); + stream.Seek(0, SeekOrigin.Begin); bmp.Save(stream, ImageFormat.Jpeg); - return stream; + stream.Seek(0, SeekOrigin.Begin); } private static string RemoveWhiteSpaceFromStylesheets(string body) diff --git a/UI/Web/src/app/_models/search-result.ts b/UI/Web/src/app/_models/search-result.ts index 216ba60b7..96619cc0f 100644 --- a/UI/Web/src/app/_models/search-result.ts +++ b/UI/Web/src/app/_models/search-result.ts @@ -7,6 +7,6 @@ export interface SearchResult { name: string; originalName: string; sortName: string; - coverImage: string; // byte64 encoded + coverImage: string; // byte64 encoded (not used) format: MangaFormat; }