obsidian-douban/src/douban/data/search/Search.ts

26 lines
872 B
TypeScript

import { DoubanPluginSettings, doubanHeaders } from 'src/douban/Douban';
import DoubanSearchResultSubject from '../model/DoubanSearchResultSubject';
import SearchParserHandler from './SearchParser';
import { log } from 'src/utils/Logutil';
import {request, RequestUrlParam} from "obsidian";
import {i18nHelper} from "../../../lang/helper";
import { load } from 'cheerio';
export default class Searcher {
static search(searchItem:string, doubanSettings:DoubanPluginSettings):Promise<DoubanSearchResultSubject[]> {
let requestUrlParam:RequestUrlParam = {
url: doubanSettings.searchUrl + searchItem,
method: "GET",
headers: JSON.parse(doubanSettings.searchHeaders),
throw: true
};
return request(requestUrlParam)
.then(load)
.then(SearchParserHandler.parseSearch)
.catch(e => log.error(i18nHelper.getMessage('130101')))
;
};
}