From 99d417062691e49a86b756e87334d0d70e73cacf Mon Sep 17 00:00:00 2001 From: YuBai Date: Mon, 2 Feb 2026 11:26:47 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E4=B8=BA=E5=85=B6=E4=BB=96=20handler=20?= =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E6=95=B0=E7=BB=84=E7=A9=BA=E5=80=BC=E6=A3=80?= =?UTF-8?q?=E6=9F=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 在 parseVariable 方法中为所有数组字段的 .map() 调用添加 (field || []) 保护, 防止当字段为 undefined 时调用 .map() 报错。 --- .../wanxp/douban/ai/handler/DoubanTheaterAiLoadHandler.ts | 8 ++++---- .../wanxp/douban/data/handler/DoubanBookLoadHandler.ts | 4 ++-- .../wanxp/douban/data/handler/DoubanGameLoadHandler.ts | 2 +- .../wanxp/douban/data/handler/DoubanTheaterLoadHandler.ts | 8 ++++---- 4 files changed, 11 insertions(+), 11 deletions(-) diff --git a/src/org/wanxp/douban/ai/handler/DoubanTheaterAiLoadHandler.ts b/src/org/wanxp/douban/ai/handler/DoubanTheaterAiLoadHandler.ts index 3d04057..64f4283 100644 --- a/src/org/wanxp/douban/ai/handler/DoubanTheaterAiLoadHandler.ts +++ b/src/org/wanxp/douban/ai/handler/DoubanTheaterAiLoadHandler.ts @@ -33,24 +33,24 @@ export default class DoubanTheaterAiLoadHandler extends DoubanAbstractLoadHandle "director", DataValueType.array, extract.director, - extract.director.map(SchemaOrg.getPersonName).filter(c => c) + (extract.director || []).map(SchemaOrg.getPersonName).filter(c => c) )); variableMap.set("actor", new DataField( "actor", DataValueType.array, extract.actor, - extract.actor.map(SchemaOrg.getPersonName).filter(c => c) + (extract.actor || []).map(SchemaOrg.getPersonName).filter(c => c) )); variableMap.set("author", new DataField( "author", DataValueType.array, extract.author, - extract.author.map(SchemaOrg.getPersonName).map(name => super.getPersonName(name, context)).filter(c => c) + (extract.author || []).map(SchemaOrg.getPersonName).map(name => super.getPersonName(name, context)).filter(c => c) )); variableMap.set("aliases", new DataField("aliases", DataValueType.array, extract.aliases, - extract.aliases.map(a=>a + (extract.aliases || []).map(a=>a .trim() // .replace(TITLE_ALIASES_SPECIAL_CHAR_REG_G, '_') // //replase multiple _ to single _ diff --git a/src/org/wanxp/douban/data/handler/DoubanBookLoadHandler.ts b/src/org/wanxp/douban/data/handler/DoubanBookLoadHandler.ts index 899ba04..64e2a36 100644 --- a/src/org/wanxp/douban/data/handler/DoubanBookLoadHandler.ts +++ b/src/org/wanxp/douban/data/handler/DoubanBookLoadHandler.ts @@ -30,9 +30,9 @@ export default class DoubanBookLoadHandler extends DoubanAbstractLoadHandler, extract: DoubanBookSubject, context: HandleContext): void { variableMap.set(DoubanBookParameter.author, new DataField(DoubanBookParameter.author, - DataValueType.array, extract.author, extract.author.map(this.handleSpecialAuthorName))); + DataValueType.array, extract.author, (extract.author || []).map(this.handleSpecialAuthorName))); variableMap.set(DoubanBookParameter.translator, new DataField(DoubanBookParameter.translator, - DataValueType.array, extract.translator, extract.translator.map(this.handleSpecialAuthorName))); + DataValueType.array, extract.translator, (extract.translator || []).map(this.handleSpecialAuthorName))); } support(extract: DoubanSubject): boolean { diff --git a/src/org/wanxp/douban/data/handler/DoubanGameLoadHandler.ts b/src/org/wanxp/douban/data/handler/DoubanGameLoadHandler.ts index ca40aed..036d334 100644 --- a/src/org/wanxp/douban/data/handler/DoubanGameLoadHandler.ts +++ b/src/org/wanxp/douban/data/handler/DoubanGameLoadHandler.ts @@ -31,7 +31,7 @@ export default class DoubanGameLoadHandler extends DoubanAbstractLoadHandler, extract: DoubanGameSubject, context: HandleContext): void { // super.parseAliases(beforeContent, variableMap, extract, context); variableMap.set("aliases", new DataField("aliases", DataValueType.array, extract.aliases, - extract.aliases.map(a=>a + (extract.aliases || []).map(a=>a .trim() // .replace(TITLE_ALIASES_SPECIAL_CHAR_REG_G, '_') // //replase multiple _ to single _ diff --git a/src/org/wanxp/douban/data/handler/DoubanTheaterLoadHandler.ts b/src/org/wanxp/douban/data/handler/DoubanTheaterLoadHandler.ts index a27f8bb..2f3a25c 100644 --- a/src/org/wanxp/douban/data/handler/DoubanTheaterLoadHandler.ts +++ b/src/org/wanxp/douban/data/handler/DoubanTheaterLoadHandler.ts @@ -33,28 +33,28 @@ export default class DoubanTheaterLoadHandler extends DoubanAbstractLoadHandler< "director", DataValueType.array, extract.director, - extract.director.map(SchemaOrg.getPersonName).filter(c => c) + (extract.director || []).map(SchemaOrg.getPersonName).filter(c => c) )); variableMap.set("actor", new DataField( "actor", DataValueType.array, extract.actor, - extract.actor.map(SchemaOrg.getPersonName).filter(c => c) + (extract.actor || []).map(SchemaOrg.getPersonName).filter(c => c) )); variableMap.set("author", new DataField( "author", DataValueType.array, extract.author, - extract.author.map(SchemaOrg.getPersonName).map(name => super.getPersonName(name, context)).filter(c => c) + (extract.author || []).map(SchemaOrg.getPersonName).map(name => super.getPersonName(name, context)).filter(c => c) )); variableMap.set("aliases", new DataField( "aliases", DataValueType.array, extract.aliases, - extract.aliases.map(a => a + (extract.aliases || []).map(a => a .trim() .replace(TITLE_ALIASES_SPECIAL_CHAR_REG_G, '_') //replace multiple _ to single _