Fixed clicking the next page has no effect

This commit is contained in:
wanxp 2024-07-15 23:04:32 +08:00
parent 232439b64c
commit d98a24545e
6 changed files with 8 additions and 46 deletions

@ -1,7 +1,7 @@
{
"id": "obsidian-douban-plugin",
"name": "Douban",
"version": "2.0.7",
"version": "2.0.8",
"minAppVersion": "0.12.0",
"description": "This is a plugin that can import movies/books/musics/notes/games info data from Douban for Obsidian .",
"author": "Wanxp",

@ -1,6 +1,6 @@
{
"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/).",
"main": "main.js",
"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("解析给多页面结果");
const data:{total:number, limit:number, more:boolean, items:string[]} = JSON.parse(result);
const list:string[] = data.items;
@ -46,7 +46,7 @@ export default class SearchParserHandler {
.map(e => load(e))
.map(e=>this.parseSearch(e))
.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.");
}
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);
if (!url) {
return Promise.resolve("");

@ -52,5 +52,7 @@
"2.0.4": "0.12.0",
"2.0.5": "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"
}