mirror of
https://github.com/Wanxp/obsidian-douban.git
synced 2026-04-05 01:03:23 +08:00
Fixed clicking the next page has no effect
This commit is contained in:
parent
232439b64c
commit
d98a24545e
@ -1,7 +1,7 @@
|
|||||||
{
|
{
|
||||||
"id": "obsidian-douban-plugin",
|
"id": "obsidian-douban-plugin",
|
||||||
"name": "Douban",
|
"name": "Douban",
|
||||||
"version": "2.0.7",
|
"version": "2.0.8",
|
||||||
"minAppVersion": "0.12.0",
|
"minAppVersion": "0.12.0",
|
||||||
"description": "This is a plugin that can import movies/books/musics/notes/games info data from Douban for Obsidian .",
|
"description": "This is a plugin that can import movies/books/musics/notes/games info data from Douban for Obsidian .",
|
||||||
"author": "Wanxp",
|
"author": "Wanxp",
|
||||||
|
|||||||
@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "obsidian-douban-plugin",
|
"name": "obsidian-douban-plugin",
|
||||||
"version": "2.0.7",
|
"version": "2.0.8",
|
||||||
"description": "This is a plugin for Obsidian (https://obsidian.md) that can import data from Douban (https://www.douban.com/).",
|
"description": "This is a plugin for Obsidian (https://obsidian.md) that can import data from Douban (https://www.douban.com/).",
|
||||||
"main": "main.js",
|
"main": "main.js",
|
||||||
"scripts": {
|
"scripts": {
|
||||||
|
|||||||
@ -1,40 +0,0 @@
|
|||||||
import {RequestUrlParam, request, requestUrl} from "obsidian";
|
|
||||||
|
|
||||||
import {DEFAULT_SETTINGS} from "../../../constant/DefaultSettings";
|
|
||||||
import {DoubanPluginSetting} from "../../setting/model/DoubanPluginSetting";
|
|
||||||
import DoubanSearchResultSubject from '../model/DoubanSearchResultSubject';
|
|
||||||
import {SearchPage} from "../model/SearchPage";
|
|
||||||
import SearchParserHandler from './SearchParser';
|
|
||||||
import SettingsManager from "../../setting/SettingsManager";
|
|
||||||
import User from "../../user/User";
|
|
||||||
import {i18nHelper} from "../../../lang/helper";
|
|
||||||
import {load} from 'cheerio';
|
|
||||||
import {log} from 'src/org/wanxp/utils/Logutil';
|
|
||||||
import HttpUtil from "../../../utils/HttpUtil";
|
|
||||||
import {SupportType} from "../../../constant/Constsant";
|
|
||||||
import {DoubanHttpUtil} from "../../../utils/DoubanHttpUtil";
|
|
||||||
|
|
||||||
export default class Searcher {
|
|
||||||
static search(searchItem: string, type:SupportType, doubanSettings: DoubanPluginSetting, settingsManager:SettingsManager): Promise<DoubanSearchResultSubject[]> {
|
|
||||||
return DoubanHttpUtil.httpRequestGet(DEFAULT_SETTINGS.searchUrl + searchItem, settingsManager.getHeaders(), settingsManager)
|
|
||||||
.then(load)
|
|
||||||
.then(SearchParserHandler.parseSearch)
|
|
||||||
.catch(e => {
|
|
||||||
throw log.error(i18nHelper.getMessage('130101').replace('{0}', e.toString()), e);
|
|
||||||
});
|
|
||||||
|
|
||||||
};
|
|
||||||
|
|
||||||
static loadSearchItem(searchItem: string, type:SupportType, start:number, doubanSettings: DoubanPluginSetting, settingsManager:SettingsManager): Promise<SearchPage> {
|
|
||||||
const url:string = `https://www.douban.com/j/search?q=${searchItem}&start=${start}&subtype=item`;
|
|
||||||
log.debug(`请求更多页面:${url}`);
|
|
||||||
return DoubanHttpUtil.httpRequestGet(url, settingsManager.getHeaders(), settingsManager)
|
|
||||||
.then(e=>SearchParserHandler.parseSearchJson(e, type, start))
|
|
||||||
.catch(e => {
|
|
||||||
throw log.error(i18nHelper.getMessage('130101').replace('{0}', e.toString()), e);
|
|
||||||
});
|
|
||||||
;
|
|
||||||
|
|
||||||
};
|
|
||||||
|
|
||||||
}
|
|
||||||
@ -38,7 +38,7 @@ export default class SearchParserHandler {
|
|||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
static parseSearchJson(result: string, type:SupportType, start:number): SearchPage {
|
static parseSearchJson(result: string, type:SupportType, pageNum:number): SearchPage {
|
||||||
log.debug("解析给多页面结果");
|
log.debug("解析给多页面结果");
|
||||||
const data:{total:number, limit:number, more:boolean, items:string[]} = JSON.parse(result);
|
const data:{total:number, limit:number, more:boolean, items:string[]} = JSON.parse(result);
|
||||||
const list:string[] = data.items;
|
const list:string[] = data.items;
|
||||||
@ -46,7 +46,7 @@ export default class SearchParserHandler {
|
|||||||
.map(e => load(e))
|
.map(e => load(e))
|
||||||
.map(e=>this.parseSearch(e))
|
.map(e=>this.parseSearch(e))
|
||||||
.map(e => e? e[0]:null);
|
.map(e => e? e[0]:null);
|
||||||
return new SearchPage(data.total, start / data.limit, data.limit, type, resultList);
|
return new SearchPage(data.total, pageNum, data.limit, type, resultList);
|
||||||
};
|
};
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@ -19,7 +19,7 @@ export abstract class AbstractSearchPageFetcher implements SearchPageFetcherInte
|
|||||||
throw new Error("Method not implemented.");
|
throw new Error("Method not implemented.");
|
||||||
}
|
}
|
||||||
fetch(keyword: string, pageNum: number, pageSize: number): Promise<string> {
|
fetch(keyword: string, pageNum: number, pageSize: number): Promise<string> {
|
||||||
const start:number = (pageNum - 1) * pageSize;
|
const start:number = Math.floor((pageNum - 1) * pageSize);
|
||||||
const url:string = this.getSearchUrl(keyword, start, pageSize);
|
const url:string = this.getSearchUrl(keyword, start, pageSize);
|
||||||
if (!url) {
|
if (!url) {
|
||||||
return Promise.resolve("");
|
return Promise.resolve("");
|
||||||
|
|||||||
@ -52,5 +52,7 @@
|
|||||||
"2.0.4": "0.12.0",
|
"2.0.4": "0.12.0",
|
||||||
"2.0.5": "0.12.0",
|
"2.0.5": "0.12.0",
|
||||||
"2.0.6": "0.12.0",
|
"2.0.6": "0.12.0",
|
||||||
"2.0.7": "0.12.0"
|
"2.0.7": "0.12.0",
|
||||||
|
"2.0.8": "0.12.0"
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user