diff --git a/web/src/reader/parsers/fb2-parser.ts b/web/src/reader/parsers/fb2-parser.ts index ecfe25f..7b5bf5b 100644 --- a/web/src/reader/parsers/fb2-parser.ts +++ b/web/src/reader/parsers/fb2-parser.ts @@ -222,14 +222,19 @@ function generatePageBreaks(totalCharacters: number): number[] { // Metadata Quick Extract // ============================================================ -export async function extractFB2Metadata( +export async function getFB2Metadata( fb2Blob: Blob, ): Promise> { let xmlContent: string; - if (fb2Blob.type === "application/zip") { + if ( + fb2Blob.type === "application/zip" || + fb2Blob.type === "application/x-zip-compressed" + ) { const zip = await JSZip.loadAsync(fb2Blob); const files = Object.keys(zip.files); + + // Find the first .fb2 file in the zip const fb2File = files.find((f) => f.endsWith(".fb2")); if (!fb2File) return {};