From d98a24545e96187a9febe380432f80ab078ea142 Mon Sep 17 00:00:00 2001 From: wanxp <977741432@qq.com> Date: Mon, 15 Jul 2024 23:04:32 +0800 Subject: [PATCH] Fixed clicking the next page has no effect --- manifest.json | 2 +- package.json | 2 +- src/org/wanxp/douban/data/search/Search.ts | 40 ------------------- .../wanxp/douban/data/search/SearchParser.ts | 4 +- .../searcher/AbstractSearchPageFetcher.ts | 2 +- versions.json | 4 +- 6 files changed, 8 insertions(+), 46 deletions(-) delete mode 100644 src/org/wanxp/douban/data/search/Search.ts diff --git a/manifest.json b/manifest.json index f01081a..f6bfb45 100644 --- a/manifest.json +++ b/manifest.json @@ -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", diff --git a/package.json b/package.json index bda5925..b95cb5f 100644 --- a/package.json +++ b/package.json @@ -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": { diff --git a/src/org/wanxp/douban/data/search/Search.ts b/src/org/wanxp/douban/data/search/Search.ts deleted file mode 100644 index 9ef72fb..0000000 --- a/src/org/wanxp/douban/data/search/Search.ts +++ /dev/null @@ -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 { - 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 { - 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); - }); - ; - - }; - -} diff --git a/src/org/wanxp/douban/data/search/SearchParser.ts b/src/org/wanxp/douban/data/search/SearchParser.ts index 2a4cf65..44fea67 100644 --- a/src/org/wanxp/douban/data/search/SearchParser.ts +++ b/src/org/wanxp/douban/data/search/SearchParser.ts @@ -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); }; } diff --git a/src/org/wanxp/douban/data/search/searcher/AbstractSearchPageFetcher.ts b/src/org/wanxp/douban/data/search/searcher/AbstractSearchPageFetcher.ts index b3f32f8..cceebdb 100644 --- a/src/org/wanxp/douban/data/search/searcher/AbstractSearchPageFetcher.ts +++ b/src/org/wanxp/douban/data/search/searcher/AbstractSearchPageFetcher.ts @@ -19,7 +19,7 @@ export abstract class AbstractSearchPageFetcher implements SearchPageFetcherInte throw new Error("Method not implemented."); } fetch(keyword: string, pageNum: number, pageSize: number): Promise { - 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(""); diff --git a/versions.json b/versions.json index b349198..b022364 100644 --- a/versions.json +++ b/versions.json @@ -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" + }