diff --git a/web/src/reader/formats/manga/reading-direction.ts b/web/src/reader/formats/manga/reading-direction.ts index 7382256..a75ca98 100644 --- a/web/src/reader/formats/manga/reading-direction.ts +++ b/web/src/reader/formats/manga/reading-direction.ts @@ -3,6 +3,12 @@ import { ReaderContext } from "../../core/reader-context"; +interface MangaMetadata { + manga_type?: string; + reading_direction?: string; + filePath: string; +} + export function init(context: ReaderContext): void { let state: ReadingDirectionState | null = null; @@ -82,13 +88,15 @@ async function detectReadingDirection( }; } -function detectFromMetadata(metadata: any): "ltr" | "rtl" | "vertical" { - const mangaType = (metadata as any).manga_type; +function detectFromMetadata( + metadata: MangaMetadata, +): "ltr" | "rtl" | "vertical" { + const mangaType = metadata.manga_type; if (mangaType === "yes_and_right_to_left" || mangaType === "yes") { return "rtl"; } - const readingDirection = (metadata as any).reading_direction; + const readingDirection = metadata.reading_direction; if (readingDirection === "rtl" || readingDirection === "vertical") { return readingDirection; } @@ -136,4 +144,3 @@ function shouldUseRTL(state: ReadingDirectionState): boolean { function shouldUseVerticalScroll(state: ReadingDirectionState): boolean { return getEffectiveDirection(state) === "vertical"; } - diff --git a/web/src/reader/reader-shell.ts b/web/src/reader/reader-shell.ts index c3f2d4c..8c6eabe 100644 --- a/web/src/reader/reader-shell.ts +++ b/web/src/reader/reader-shell.ts @@ -217,7 +217,7 @@ async function initializeEbookReader( ); console.log("EPUB Parse Result:", { spineLength: cif.spine?.length, - spineItems: cif.spine?.map((s: SpineItem) => s.href), + spineItems: cif.spine?.map((s: SpineItem) => s.content), tocLength: cif.toc?.length, keys: Object.keys(cif), }); @@ -252,6 +252,7 @@ async function initializeEbookReader( id: s.id, type: "html" as const, content: s.content, + index: s.index, })); const pagination = await calculatePagination( spineItems, @@ -275,15 +276,14 @@ async function initializeEbookReader( metadata: { title: cif.metadata.title || metadata.title, author: cif.metadata.author || metadata.author, - identifier: metadata.id, + language: cif.metadata.language || "en", + publisher: cif.metadata.publisher, + isbn: cif.metadata.isbn, + coverImage: cif.metadata.coverImage, }, - pagination, - position: { - currentPage: 1, - spineIndex: 0, - localPageIndex: 0, - cfi: "", - progress: 0, + locations: cif.locations || { + totalCharacters: 0, + estimatedPages: 0, }, }, currentSpineIndex: 0, @@ -559,7 +559,7 @@ Alpine.data("readerShell", () => ({ } else if (state.currentReader.type === "pdf") { return state.readerMetadata.total_pages || 0; } else { - return (state.currentReader as any).images.length; + return state.currentReader.images.length; } }, })); diff --git a/web/src/reader/ui/gestures.ts b/web/src/reader/ui/gestures.ts index bf4f7f2..444279f 100644 --- a/web/src/reader/ui/gestures.ts +++ b/web/src/reader/ui/gestures.ts @@ -170,7 +170,7 @@ async function loadPanelsIfComic() { return; } - const reader = state.currentReader as any; + const reader = state.currentReader; if ( !reader.images || reader.currentPage === undefined || diff --git a/web/src/reader/ui/keyboard-shortcuts.ts b/web/src/reader/ui/keyboard-shortcuts.ts index 9bffe5d..752da14 100644 --- a/web/src/reader/ui/keyboard-shortcuts.ts +++ b/web/src/reader/ui/keyboard-shortcuts.ts @@ -22,7 +22,7 @@ function setupKeyboardShortcuts() { state.currentReader?.type === "comic" || state.currentReader?.type === "manga" ) { - const reader = state.currentReader as any; + const reader = state.currentReader; maxPage = reader.images.length; }