Files
MoonTVPlus/src/lib/manga.types.ts
T

85 lines
1.6 KiB
TypeScript

export interface MangaSource {
id: string;
name: string;
lang?: string;
displayName?: string;
}
export interface MangaSearchItem {
id: string;
sourceId: string;
sourceName: string;
title: string;
cover: string;
description?: string;
author?: string;
status?: string;
artist?: string;
genre?: string;
}
export interface MangaSearchFailure {
sourceId: string;
sourceName: string;
error: string;
}
export interface MangaSearchResult {
results: MangaSearchItem[];
failedSources: MangaSearchFailure[];
}
export type MangaRecommendType = 'POPULAR' | 'LATEST';
export interface MangaRecommendResult {
mangas: MangaSearchItem[];
hasNextPage: boolean;
}
export interface MangaChapter {
id: string;
mangaId: string;
name: string;
chapterNumber?: number;
scanlator?: string;
isRead?: boolean;
isDownloaded?: boolean;
pageCount?: number;
uploadDate?: number;
}
export interface MangaDetail extends MangaSearchItem {
chapters: MangaChapter[];
}
export interface MangaShelfItem {
title: string;
cover: string;
sourceId: string;
sourceName: string;
mangaId: string;
saveTime: number;
description?: string;
author?: string;
status?: string;
lastChapterId?: string;
lastChapterName?: string;
latestChapterId?: string;
latestChapterName?: string;
latestChapterCount?: number;
unreadChapterCount?: number;
}
export interface MangaReadRecord {
title: string;
cover: string;
sourceId: string;
sourceName: string;
mangaId: string;
chapterId: string;
chapterName: string;
pageIndex: number;
pageCount: number;
saveTime: number;
}