mirror of
https://github.com/Wanxp/obsidian-douban.git
synced 2026-04-04 08:38:41 +08:00
41 lines
1.8 KiB
TypeScript
41 lines
1.8 KiB
TypeScript
import {SearchPageFetcherInterface} from "./SearchPageFetcherInterface";
|
|
import {AllPageSearchPageFetcher} from "./AllPageSearchPageFetcher";
|
|
import SettingsManager from "../../../setting/SettingsManager";
|
|
import {SupportType} from "../../../../constant/Constsant";
|
|
import {MoviePageSearchPageFetcher} from "./MoviePageSearchPageFetcher";
|
|
import {BookPageSearchPageFetcher} from "./BookPageSearchPageFetcher";
|
|
import {GamePageSearchPageFetcher} from "./GamePageSearchPageFetcher";
|
|
import {MusicPageSearchPageFetcher} from "./MusicPageSearchPageFetcher";
|
|
import {TheaterPageSearchPageFetcher} from "./TheaterPageSearchPageFetcher";
|
|
import {NotePageSearchPageFetcher} from "./NotePageSearchPageFetcher";
|
|
import {NoteFirstPageSearchPageFetcher} from "./NoteFirstPageSearchPageFetcher";
|
|
|
|
export class SearchPageFetcher {
|
|
|
|
private fetchers:SearchPageFetcherInterface[] = [];
|
|
|
|
constructor(settingsManager:SettingsManager) {
|
|
this.fetchers.push(new AllPageSearchPageFetcher(settingsManager));
|
|
this.fetchers.push(new MoviePageSearchPageFetcher(settingsManager));
|
|
this.fetchers.push(new BookPageSearchPageFetcher(settingsManager));
|
|
this.fetchers.push(new GamePageSearchPageFetcher(settingsManager));
|
|
this.fetchers.push(new MusicPageSearchPageFetcher(settingsManager));
|
|
this.fetchers.push(new TheaterPageSearchPageFetcher(settingsManager));
|
|
this.fetchers.push(new NotePageSearchPageFetcher(settingsManager));
|
|
this.fetchers.push(new NoteFirstPageSearchPageFetcher(settingsManager));
|
|
|
|
|
|
}
|
|
|
|
fetch(keyword:string, type:SupportType, pageNum:number, pageSize:number):Promise<string> {
|
|
for (const fetcher of this.fetchers) {
|
|
if (fetcher.support(type, pageNum)) {
|
|
return fetcher.fetch(keyword, pageNum, pageSize);
|
|
}
|
|
}
|
|
throw new Error(`not support type:${type} pageNum:${pageNum}`);
|
|
}
|
|
|
|
|
|
}
|