From 1b5b9bb0b3d8b4a9f91cb87d45ad0393e2f698b5 Mon Sep 17 00:00:00 2001 From: HughWan <977741432@qq.com> Date: Thu, 21 Dec 2023 10:25:28 +0800 Subject: [PATCH] fix search error --- src/org/wanxp/constant/Constsant.ts | 32 +++++++++- .../data/handler/DoubanAbstractLoadHandler.ts | 5 +- .../data/handler/DoubanBookLoadHandler.ts | 6 +- .../data/handler/DoubanGameLoadHandler.ts | 4 ++ .../data/handler/DoubanMovieLoadHandler.ts | 4 ++ .../data/handler/DoubanMusicLoadHandler.ts | 4 ++ .../data/handler/DoubanNoteLoadHandler.ts | 4 ++ .../data/handler/DoubanOtherLoadHandler.ts | 4 ++ .../handler/DoubanSearchChooseItemHandler.ts | 4 +- .../data/handler/DoubanSubjectLoadHandler.ts | 3 +- .../data/handler/DoubanTeleplayLoadHandler.ts | 4 ++ .../data/handler/DoubanTheaterLoadHandler.ts | 4 ++ .../wanxp/douban/data/model/SearchPageInfo.ts | 7 ++- .../search/DoubanSearchFuzzySuggestModal.ts | 58 +++++-------------- .../douban/data/search/DoubanSearchModal.ts | 20 +++---- .../wanxp/douban/data/search/SearchParser.ts | 4 +- .../FistAllPageSearchResultPageParser.ts | 2 +- .../NotAllPageSearchResultPageParser.ts | 19 ++++++ .../search/parser/SearchResultPageParser.ts | 2 + .../searcher/AbstractSearchPageFetcher.ts | 6 +- ...Fetcher.ts => AllPageSearchPageFetcher.ts} | 2 +- .../searcher/BookPageSearchPageFetcher.ts | 4 +- .../searcher/MoviePageSearchPageFetcher.ts | 4 +- .../data/search/searcher/SearchPageFetcher.ts | 4 +- .../sync/handler/DoubanAbstractSyncHandler.ts | 2 +- .../handler/DoubanPageBroadcastLoadHandler.ts | 3 + src/org/wanxp/lang/locale/en.ts | 2 + src/org/wanxp/lang/locale/zh-cn.ts | 2 + 28 files changed, 140 insertions(+), 79 deletions(-) create mode 100644 src/org/wanxp/douban/data/search/parser/NotAllPageSearchResultPageParser.ts rename src/org/wanxp/douban/data/search/searcher/{FistAllPageSearchPageFetcher.ts => AllPageSearchPageFetcher.ts} (83%) diff --git a/src/org/wanxp/constant/Constsant.ts b/src/org/wanxp/constant/Constsant.ts index f59b0c7..c7a76c8 100644 --- a/src/org/wanxp/constant/Constsant.ts +++ b/src/org/wanxp/constant/Constsant.ts @@ -281,6 +281,36 @@ export const DoubanSearchResultSubjectPreviousPage: DoubanSearchResultSubject = url: NavigateType.previous } +export const DoubanSearchGroupPublishResultSubjectPreviousPage: DoubanSearchResultSubject = { + cast: "", + datePublished: undefined, + desc: "", + genre: [], + id: "", + image: "", + imageUrl: "", + publisher: "", + score: 0, + title: i18nHelper.getMessage("150106"), + type: "navigate", + url: NavigateType.previous +} + +export const DoubanSearchGroupPublishResultSubjectNextPage: DoubanSearchResultSubject = { + cast: "", + datePublished: undefined, + desc: "", + genre: [], + id: "", + image: "", + imageUrl: "", + publisher: "", + score: 0, + title: i18nHelper.getMessage("150105"), + type: "navigate", + url: NavigateType.next +} + export const DoubanSearchResultSubjectNextPage: DoubanSearchResultSubject = { cast: "", datePublished: undefined, @@ -311,7 +341,7 @@ export const DoubanSearchResultSubjectNextPageNeedLogin: DoubanSearchResultSubje url: NavigateType.nextNeedLogin } -export const SEARCH_ITEM_PAGE_SIZE: number = 10; +export const SEARCH_ITEM_PAGE_SIZE: number = 20; /** * 豆瓣默认请求头 diff --git a/src/org/wanxp/douban/data/handler/DoubanAbstractLoadHandler.ts b/src/org/wanxp/douban/data/handler/DoubanAbstractLoadHandler.ts index 10b1a20..2f84c02 100644 --- a/src/org/wanxp/douban/data/handler/DoubanAbstractLoadHandler.ts +++ b/src/org/wanxp/douban/data/handler/DoubanAbstractLoadHandler.ts @@ -144,7 +144,8 @@ export default abstract class DoubanAbstractLoadHandler abstract support(extract: DoubanSubject): boolean; - async handle(url: string, context: HandleContext): Promise { + async handle(id: string, context: HandleContext): Promise { + const url:string = this.getSubjectUrl(id); context.plugin.settingsManager.debug(`开始请求地址:${url}`) context.plugin.settingsManager.debug(`(注意:请勿向任何人透露你的Cookie,此处若需要截图请**打码**)请求header:${context.settings.loginHeadersContent}`) return await HttpUtil.httpRequestGet(url, context.plugin.settingsManager.getHeaders(), context.plugin.settingsManager) @@ -515,7 +516,7 @@ export default abstract class DoubanAbstractLoadHandler abstract getHighQuantityImageUrl(fileName:string):string; - + abstract getSubjectUrl(id:string):string; handlePersonNameByMeta(html: CheerioAPI, movie: DoubanSubject, context: HandleContext, metaProperty:string, objectProperty:string) { diff --git a/src/org/wanxp/douban/data/handler/DoubanBookLoadHandler.ts b/src/org/wanxp/douban/data/handler/DoubanBookLoadHandler.ts index 4f19458..997f391 100644 --- a/src/org/wanxp/douban/data/handler/DoubanBookLoadHandler.ts +++ b/src/org/wanxp/douban/data/handler/DoubanBookLoadHandler.ts @@ -23,6 +23,10 @@ export default class DoubanBookLoadHandler extends DoubanAbstractLoadHandler[] = this._doubanSubjectHandlers .filter(h => h.support(searchExtract)); if (doubanSubjectHandlers && doubanSubjectHandlers.length > 0) { - await doubanSubjectHandlers[0].handle(searchExtract.url, context); + await doubanSubjectHandlers[0].handle(searchExtract.id, context); } else { - await this._doubanSubjectHandlerDefault.handle(searchExtract.url, context); + await this._doubanSubjectHandlerDefault.handle(searchExtract.id, context); } } diff --git a/src/org/wanxp/douban/data/handler/DoubanSubjectLoadHandler.ts b/src/org/wanxp/douban/data/handler/DoubanSubjectLoadHandler.ts index 7378244..970b684 100644 --- a/src/org/wanxp/douban/data/handler/DoubanSubjectLoadHandler.ts +++ b/src/org/wanxp/douban/data/handler/DoubanSubjectLoadHandler.ts @@ -8,7 +8,6 @@ export default interface DoubanSubjectLoadHandler { support(extract: DoubanSubject): boolean; - handle(url: string, context: HandleContext): Promise; - + handle(id: string, context: HandleContext): Promise; } diff --git a/src/org/wanxp/douban/data/handler/DoubanTeleplayLoadHandler.ts b/src/org/wanxp/douban/data/handler/DoubanTeleplayLoadHandler.ts index 42a586f..b3f5eba 100644 --- a/src/org/wanxp/douban/data/handler/DoubanTeleplayLoadHandler.ts +++ b/src/org/wanxp/douban/data/handler/DoubanTeleplayLoadHandler.ts @@ -47,6 +47,10 @@ export class DoubanTeleplayLoadHandler extends DoubanAbstractLoadHandler 0; + return this._pageNum > 1; } public get start() { - return this._pageNum * this._pageSize + 1; + return (this._pageNum - 1) * this._pageSize + 1; } public get total() { diff --git a/src/org/wanxp/douban/data/search/DoubanSearchFuzzySuggestModal.ts b/src/org/wanxp/douban/data/search/DoubanSearchFuzzySuggestModal.ts index 6914f68..ca43f15 100644 --- a/src/org/wanxp/douban/data/search/DoubanSearchFuzzySuggestModal.ts +++ b/src/org/wanxp/douban/data/search/DoubanSearchFuzzySuggestModal.ts @@ -1,4 +1,5 @@ import { + DoubanSearchGroupPublishResultSubjectNextPage, DoubanSearchGroupPublishResultSubjectPreviousPage, DoubanSearchResultSubjectNextPage, DoubanSearchResultSubjectNextPageNeedLogin, DoubanSearchResultSubjectPreviousPage, @@ -57,12 +58,6 @@ class DoubanFuzzySuggester extends FuzzySuggestModal } return; } - if(this.isTypeSelect(item)) { - if (await this.handleTypeSelect(item)) { - this.start(); - } - return; - } this.plugin.showStatus(i18nHelper.getMessage('140204', item.title)); this.context.listItem = item; if (item) { @@ -89,10 +84,10 @@ class DoubanFuzzySuggester extends FuzzySuggestModal break; } if (result) { - // const searchPageResult: SearchPage = - // await SearcherV2.loadSearchItem(this.searchItem, currentPage.start, SEARCH_ITEM_PAGE_SIZE, this.plugin.settings, this.plugin.settingsManager); - // this.context.searchPage = new SearchPageInfo(searchPageResult.total, currentPage.pageNum, searchPageResult.pageSize, item.type); - // this.updatePageResult(searchPageResult); + const searchPageResult: SearchPage = + await SearcherV2.search(this.searchItem, currentPage.type, currentPage.pageNum, SEARCH_ITEM_PAGE_SIZE, this.plugin.settings, this.plugin.settingsManager); + this.context.searchPage = searchPageResult; + this.updatePageResult(searchPageResult); } return result; } @@ -113,24 +108,26 @@ class DoubanFuzzySuggester extends FuzzySuggestModal const doubanList: DoubanSearchResultSubject[] = searchPage.list; if (searchPage.hasNext) { if (this.plugin.userComponent.isLogin()) { - doubanList.push(DoubanSearchResultSubjectNextPage) + if (searchPage.type == SupportType.ALL && searchPage.pageNum == 1) { + doubanList.push(DoubanSearchGroupPublishResultSubjectNextPage) + }else { + doubanList.push(DoubanSearchResultSubjectNextPage) + } }else { doubanList.push(DoubanSearchResultSubjectNextPageNeedLogin) } } - this.initTypeSelect(doubanList, searchPage); if (searchPage.hasPrevious) { - doubanList.unshift(DoubanSearchResultSubjectPreviousPage); + if (searchPage.type == SupportType.ALL && searchPage.pageNum == 2) { + doubanList.unshift(DoubanSearchGroupPublishResultSubjectPreviousPage) + }else { + doubanList.unshift(DoubanSearchResultSubjectPreviousPage); + } } this.doubanSearchResultExtract = doubanList; } - private initTypeSelect(doubanList: DoubanSearchResultSubject[], searchPage: SearchPage) { - if (SupportType.ALL == searchPage.type) { - - } - } public start(): void { try { @@ -140,29 +137,4 @@ class DoubanFuzzySuggester extends FuzzySuggestModal } } - private isTypeSelect(item: DoubanSearchResultSubject) { - return item.type == "type"; - } - - private async handleTypeSelect(item: DoubanSearchResultSubject) { - const {searchPage} = this.context; - let currentPage:SearchPageInfo = searchPage; - let result:boolean = false; - switch (item.url) { - case SupportType.ALL: - currentPage = searchPage.previousPage(); - result = true; - break; - case NavigateType.next: - currentPage = searchPage.nextPage(); - result = true; - break; - case NavigateType.nextNeedLogin: - log.warn(i18nHelper.getMessage("140304")); - break; - } - if (result) { - } - return result; - } } diff --git a/src/org/wanxp/douban/data/search/DoubanSearchModal.ts b/src/org/wanxp/douban/data/search/DoubanSearchModal.ts index 9795643..6881fa3 100644 --- a/src/org/wanxp/douban/data/search/DoubanSearchModal.ts +++ b/src/org/wanxp/douban/data/search/DoubanSearchModal.ts @@ -23,16 +23,6 @@ export class DoubanSearchModal extends Modal { contentEl.createEl("h3", {text: i18nHelper.getMessage('110003')}); const content = contentEl.createDiv("content"); - const typeSelect = content.createDiv("type-select"); - const typeSelectInput = new DropdownComponent(typeSelect) - .addOptions(SearchTypeRecords) - .setValue(SupportType.ALL) - .onChange((value:SupportType) => { - this.searchType = value; - }); - typeSelect.addClass('obsidian_douban_search_input'); - - const inputs = content.createDiv("inputs"); const searchInput = new TextComponent(inputs).onChange((searchTerm) => { this.searchTerm = searchTerm; @@ -46,8 +36,14 @@ export class DoubanSearchModal extends Modal { } }); - - + const typeSelect = content.createDiv("type-select"); + const typeSelectInput = new DropdownComponent(typeSelect) + .addOptions(SearchTypeRecords) + .setValue(SupportType.ALL) + .onChange((value:SupportType) => { + this.searchType = value; + }); + typeSelect.addClass('obsidian_douban_search_input'); const controls = contentEl.createDiv("controls"); diff --git a/src/org/wanxp/douban/data/search/SearchParser.ts b/src/org/wanxp/douban/data/search/SearchParser.ts index 73cfb97..2a4cf65 100644 --- a/src/org/wanxp/douban/data/search/SearchParser.ts +++ b/src/org/wanxp/douban/data/search/SearchParser.ts @@ -1,8 +1,8 @@ import {CheerioAPI, load} from "cheerio"; import DoubanSearchResultSubject from "../model/DoubanSearchResultSubject"; import {SearchPage} from "../model/SearchPage"; -import {SEARCH_ITEM_PAGE_SIZE, SupportType} from "../../../constant/Constsant"; import {log} from "../../../utils/Logutil"; +import {SupportType} from "../../../constant/Constsant"; export default class SearchParserHandler { static parseSearch(dataHtml: CheerioAPI): DoubanSearchResultSubject[] { @@ -36,7 +36,7 @@ export default class SearchParserHandler { }; return result; }) - }; + } static parseSearchJson(result: string, type:SupportType, start:number): SearchPage { log.debug("解析给多页面结果"); diff --git a/src/org/wanxp/douban/data/search/parser/FistAllPageSearchResultPageParser.ts b/src/org/wanxp/douban/data/search/parser/FistAllPageSearchResultPageParser.ts index 0d2a85b..5a54364 100644 --- a/src/org/wanxp/douban/data/search/parser/FistAllPageSearchResultPageParser.ts +++ b/src/org/wanxp/douban/data/search/parser/FistAllPageSearchResultPageParser.ts @@ -17,7 +17,7 @@ export class FistAllPageSearchResultPageParser implements SearchResultPageParser return SearchPage.empty(type); } const doubanSearchResultSubjects = SearchParserHandlerV2.itemMapToSearchResult(items); - return new SearchPage(items.length, pageNum, pageSize, type, doubanSearchResultSubjects); + return new SearchPage(2000, pageNum, pageSize, type, doubanSearchResultSubjects); } diff --git a/src/org/wanxp/douban/data/search/parser/NotAllPageSearchResultPageParser.ts b/src/org/wanxp/douban/data/search/parser/NotAllPageSearchResultPageParser.ts new file mode 100644 index 0000000..d29c618 --- /dev/null +++ b/src/org/wanxp/douban/data/search/parser/NotAllPageSearchResultPageParser.ts @@ -0,0 +1,19 @@ +import {SupportType} from "../../../../constant/Constsant"; +import {SearchResultPageParserInterface} from "./SearchResultPageParserInterface"; +import {log} from "../../../../utils/Logutil"; +import {SearchPage} from "../../model/SearchPage"; +import SearchParserHandler from "../SearchParser"; + +export class NotAllPageSearchResultPageParser implements SearchResultPageParserInterface { + support(type:SupportType, pageNum:number):boolean { + return type != SupportType.ALL; + } + parse(source:string, type:SupportType, pageNum:number, pageSize:number):SearchPage { + log.debug("解析给多页面结果"); + if (!source) { + return new SearchPage(0, 0, 0, type, []); + } + return SearchParserHandler.parseSearchJson(source, type, pageNum); + } + +} diff --git a/src/org/wanxp/douban/data/search/parser/SearchResultPageParser.ts b/src/org/wanxp/douban/data/search/parser/SearchResultPageParser.ts index 3168776..58ef663 100644 --- a/src/org/wanxp/douban/data/search/parser/SearchResultPageParser.ts +++ b/src/org/wanxp/douban/data/search/parser/SearchResultPageParser.ts @@ -3,6 +3,7 @@ import {FistAllPageSearchResultPageParser} from "./FistAllPageSearchResultPagePa import {OtherAllPageSearchResultPageParser} from "./OtherAllPageSearchResultPageParser"; import {SearchPage} from "../../model/SearchPage"; import {SupportType} from "../../../../constant/Constsant"; +import {NotAllPageSearchResultPageParser} from "./NotAllPageSearchResultPageParser"; export class SearchResultPageParser { @@ -11,6 +12,7 @@ export class SearchResultPageParser { constructor() { this.parsers.push(new FistAllPageSearchResultPageParser()); this.parsers.push(new OtherAllPageSearchResultPageParser()); + this.parsers.push(new NotAllPageSearchResultPageParser()); } public parse(source:string, type:SupportType, pageNum:number, pageSize:number):SearchPage { diff --git a/src/org/wanxp/douban/data/search/searcher/AbstractSearchPageFetcher.ts b/src/org/wanxp/douban/data/search/searcher/AbstractSearchPageFetcher.ts index 6436e1a..3755343 100644 --- a/src/org/wanxp/douban/data/search/searcher/AbstractSearchPageFetcher.ts +++ b/src/org/wanxp/douban/data/search/searcher/AbstractSearchPageFetcher.ts @@ -17,7 +17,8 @@ export abstract class AbstractSearchPageFetcher implements SearchPageFetcherInte throw new Error("Method not implemented."); } fetch(keyword: string, pageNum: number, pageSize: number): Promise { - const url:string = this.getUrl(keyword, pageNum, pageSize); + const start:number = (pageNum - 1) * pageSize; + const url:string = this.getUrl(keyword, start, pageSize); if (!url) { return Promise.resolve(""); } @@ -26,7 +27,8 @@ export abstract class AbstractSearchPageFetcher implements SearchPageFetcherInte throw log.error(i18nHelper.getMessage('130101').replace('{0}', e.toString()), e); }); } - abstract getUrl(keyword: string, pageNum: number, pageSize: number):string; + abstract getUrl(keyword: string, start: number, pageSize: number):string; + } diff --git a/src/org/wanxp/douban/data/search/searcher/FistAllPageSearchPageFetcher.ts b/src/org/wanxp/douban/data/search/searcher/AllPageSearchPageFetcher.ts similarity index 83% rename from src/org/wanxp/douban/data/search/searcher/FistAllPageSearchPageFetcher.ts rename to src/org/wanxp/douban/data/search/searcher/AllPageSearchPageFetcher.ts index 65b3578..81df3ac 100644 --- a/src/org/wanxp/douban/data/search/searcher/FistAllPageSearchPageFetcher.ts +++ b/src/org/wanxp/douban/data/search/searcher/AllPageSearchPageFetcher.ts @@ -1,7 +1,7 @@ import {AbstractSearchPageFetcher} from "./AbstractSearchPageFetcher"; import { SupportType } from "src/org/wanxp/constant/Constsant"; -export class FistAllPageSearchPageFetcher extends AbstractSearchPageFetcher { +export class AllPageSearchPageFetcher extends AbstractSearchPageFetcher { getUrl(keyword: string, pageNum: number, pageSize: number): string { return `https://m.douban.com/rexxar/api/v2/search?q=${keyword}&start=${pageNum}&count=${pageSize}`; } diff --git a/src/org/wanxp/douban/data/search/searcher/BookPageSearchPageFetcher.ts b/src/org/wanxp/douban/data/search/searcher/BookPageSearchPageFetcher.ts index 36560e5..7e7bc41 100644 --- a/src/org/wanxp/douban/data/search/searcher/BookPageSearchPageFetcher.ts +++ b/src/org/wanxp/douban/data/search/searcher/BookPageSearchPageFetcher.ts @@ -2,8 +2,8 @@ import {AbstractSearchPageFetcher} from "./AbstractSearchPageFetcher"; import { SupportType } from "src/org/wanxp/constant/Constsant"; export class BookPageSearchPageFetcher extends AbstractSearchPageFetcher { - getUrl(keyword: string, pageNum: number, pageSize: number): string { - return `https://www.douban.com/j/search?q=${keyword}&start=${pageNum * pageSize}&cat=1001`; + getUrl(keyword: string, start: number, pageSize: number): string { + return `https://www.douban.com/j/search?q=${keyword}&start=${start}&cat=1001`; } support(type: SupportType): boolean { return type == SupportType.MOVIE; diff --git a/src/org/wanxp/douban/data/search/searcher/MoviePageSearchPageFetcher.ts b/src/org/wanxp/douban/data/search/searcher/MoviePageSearchPageFetcher.ts index 8dd476b..ee6f93c 100644 --- a/src/org/wanxp/douban/data/search/searcher/MoviePageSearchPageFetcher.ts +++ b/src/org/wanxp/douban/data/search/searcher/MoviePageSearchPageFetcher.ts @@ -2,8 +2,8 @@ import {AbstractSearchPageFetcher} from "./AbstractSearchPageFetcher"; import { SupportType } from "src/org/wanxp/constant/Constsant"; export class MoviePageSearchPageFetcher extends AbstractSearchPageFetcher { - getUrl(keyword: string, pageNum: number, pageSize: number): string { - return `https://www.douban.com/j/search?q=${keyword}&start=${pageNum * pageSize}&cat=1002`; + getUrl(keyword: string, start: number, pageSize: number): string { + return `https://www.douban.com/j/search?q=${keyword}&start=${start}&cat=1002`; } support(type: SupportType): boolean { return type == SupportType.MOVIE; diff --git a/src/org/wanxp/douban/data/search/searcher/SearchPageFetcher.ts b/src/org/wanxp/douban/data/search/searcher/SearchPageFetcher.ts index 35f684a..3485e96 100644 --- a/src/org/wanxp/douban/data/search/searcher/SearchPageFetcher.ts +++ b/src/org/wanxp/douban/data/search/searcher/SearchPageFetcher.ts @@ -1,5 +1,5 @@ import {SearchPageFetcherInterface} from "./SearchPageFetcherInterface"; -import {FistAllPageSearchPageFetcher} from "./FistAllPageSearchPageFetcher"; +import {AllPageSearchPageFetcher} from "./AllPageSearchPageFetcher"; import SettingsManager from "../../../setting/SettingsManager"; import {SupportType} from "../../../../constant/Constsant"; import {MoviePageSearchPageFetcher} from "./MoviePageSearchPageFetcher"; @@ -10,7 +10,7 @@ export class SearchPageFetcher { private fetchers:SearchPageFetcherInterface[] = []; constructor(settingsManager:SettingsManager) { - this.fetchers.push(new FistAllPageSearchPageFetcher(settingsManager)); + this.fetchers.push(new AllPageSearchPageFetcher(settingsManager)); this.fetchers.push(new MoviePageSearchPageFetcher(settingsManager)); this.fetchers.push(new BookPageSearchPageFetcher(settingsManager)) } diff --git a/src/org/wanxp/douban/sync/handler/DoubanAbstractSyncHandler.ts b/src/org/wanxp/douban/sync/handler/DoubanAbstractSyncHandler.ts index d43d37b..8e2a747 100644 --- a/src/org/wanxp/douban/sync/handler/DoubanAbstractSyncHandler.ts +++ b/src/org/wanxp/douban/sync/handler/DoubanAbstractSyncHandler.ts @@ -72,7 +72,7 @@ export abstract class DoubanAbstractSyncHandler implem return; } if(syncStatus.shouldSync(item.id)) { - let subject: DoubanSubject = await this.doubanSubjectLoadHandler.handle(item.url, context); + let subject: DoubanSubject = await this.doubanSubjectLoadHandler.handle(item.id, context); await sleepRange(BasicConst.CALL_DOUBAN_DELAY, BasicConst.CALL_DOUBAN_DELAY + BasicConst.CALL_DOUBAN_DELAY_RANGE); }else { syncStatus.unHandle(item.id, item.title); diff --git a/src/org/wanxp/douban/sync/handler/DoubanPageBroadcastLoadHandler.ts b/src/org/wanxp/douban/sync/handler/DoubanPageBroadcastLoadHandler.ts index 5ce76fa..bea71e9 100644 --- a/src/org/wanxp/douban/sync/handler/DoubanPageBroadcastLoadHandler.ts +++ b/src/org/wanxp/douban/sync/handler/DoubanPageBroadcastLoadHandler.ts @@ -10,6 +10,9 @@ import { UserStateSubject } from '../../data/model/UserStateSubject'; //TODO will support in future version class DoubanPageBroadcastLoadHandler extends DoubanAbstractLoadHandler { + getSubjectUrl(id: string): string { + throw new Error('Method not implemented.'); + } getHighQuantityImageUrl(fileName: string): string { throw new Error('Method not implemented.'); } diff --git a/src/org/wanxp/lang/locale/en.ts b/src/org/wanxp/lang/locale/en.ts index 0b0619e..7a95426 100644 --- a/src/org/wanxp/lang/locale/en.ts +++ b/src/org/wanxp/lang/locale/en.ts @@ -262,8 +262,10 @@ PS: This file could be delete if you want to. '150101': `Choose an item...`, + '150106': `[Previous Page (Item Result)]...`, '150102': `[Previous Page]...`, '150103': `[Next Page]...`, + '150105': `[Next Page (Group Post)]...`, '150104': `[Next Page (Please Login First)]...`, diff --git a/src/org/wanxp/lang/locale/zh-cn.ts b/src/org/wanxp/lang/locale/zh-cn.ts index 4a35a49..aaa4c78 100644 --- a/src/org/wanxp/lang/locale/zh-cn.ts +++ b/src/org/wanxp/lang/locale/zh-cn.ts @@ -266,8 +266,10 @@ export default { '150101': `选择一项内容...`, '121902': `重置为默认值`, + '150106': `[上一页]...(默认查询结果)`, '150102': `[上一页]...`, '150103': `[下一页]...`, + '150105': `[下一页]...(小组帖子结果)`, '150104': `[下一页]...(请先在插件中登录才能使用此功能)`, //content