From 7417862eb1abc5c123c248e2111077457c370e83 Mon Sep 17 00:00:00 2001 From: wanxp <977741432@qq.com> Date: Fri, 11 Nov 2022 21:08:40 +0800 Subject: [PATCH] upgrade version to v1.6.2 --- .../data/handler/DoubanAbstractLoadHandler.ts | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/src/douban/data/handler/DoubanAbstractLoadHandler.ts b/src/douban/data/handler/DoubanAbstractLoadHandler.ts index c8b96f8..1daa4c4 100644 --- a/src/douban/data/handler/DoubanAbstractLoadHandler.ts +++ b/src/douban/data/handler/DoubanAbstractLoadHandler.ts @@ -141,7 +141,7 @@ export default abstract class DoubanAbstractLoadHandler }; request(requestUrlParam) .then(load) - .then(this.analysisUserState) + .then(data => this.analysisUserState(data, context)) .then(({data, userState}) => { let sub = this.parseSubjectFromHtml(data); sub.userState = userState; @@ -309,10 +309,13 @@ export default abstract class DoubanAbstractLoadHandler private async getTemplate(extract: T, context: HandleContext): Promise { const tempKey: TemplateKey = this.getTemplateKey(); const templatePath: string = context.settings[tempKey]; - const useUserState:boolean = context.userComponent.isLogin() && + let useUserState:boolean = context.userComponent.isLogin() && extract.userState && extract.userState.collectionDate != null && extract.userState.collectionDate != undefined; + + useUserState = useUserState ? useUserState : false; + // @ts-ignore if (!templatePath || StringUtil.isBlank(templatePath)) { return getDefaultTemplateContent(tempKey, useUserState); @@ -327,9 +330,12 @@ export default abstract class DoubanAbstractLoadHandler } } - analysisUserState(html: CheerioAPI): {data:CheerioAPI , userState: UserStateSubject} { + analysisUserState(html: CheerioAPI, context: HandleContext): {data:CheerioAPI , userState: UserStateSubject} { + if (!context.userComponent.isLogin()) { + return {data: html, userState: null}; + } if(!html('.nav-user-account')) { - return null; + return {data: html, userState: null}; } let rate = html(html('input#n_rating').get(0)).val(); let tagsStr = html(html('div#interest_sect_level > div.a_stars > span.color_gray').get(0)).text().trim();