85 lines
1.6 KiB
TypeScript
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;
|
|
}
|