From f21d31c4e41a0c07fcec133d214895bd140f35d1 Mon Sep 17 00:00:00 2001 From: sunlei Date: Fri, 19 Jun 2026 18:01:53 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E9=99=90=E5=AE=9ABilibili=E9=93=BE?= =?UTF-8?q?=E6=8E=A5=E6=8F=90=E5=8F=96rawEvent=E8=8C=83=E5=9B=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/domain/bilibili-url-extractor.ts | 3 +-- .../bilibili-card/bilibili-url-extractor.spec.ts | 13 +++++++++++++ 2 files changed, 14 insertions(+), 2 deletions(-) diff --git a/src/modules/qqbot/plugins/bilibili-card/src/domain/bilibili-url-extractor.ts b/src/modules/qqbot/plugins/bilibili-card/src/domain/bilibili-url-extractor.ts index ced520c..75a6333 100644 --- a/src/modules/qqbot/plugins/bilibili-card/src/domain/bilibili-url-extractor.ts +++ b/src/modules/qqbot/plugins/bilibili-card/src/domain/bilibili-url-extractor.ts @@ -85,7 +85,7 @@ function createExtractionState(): ExtractionState { } /** - * Collects raw event candidates from explicit OneBot message segments and URL-like fields. + * Collects raw event candidates from explicit OneBot message segments. * @param rawEvent - Raw OneBot event payload from NapCat. * @param state - Mutable extraction state with traversal counters. */ @@ -95,7 +95,6 @@ function collectRawEventCandidates( ) { if (!isRecord(rawEvent)) return; collectMessageSegments(rawEvent.message, state); - collectUrlLikeFields(rawEvent, state, new WeakSet(), 0); } /** diff --git a/test/modules/qqbot/plugins/bilibili-card/bilibili-url-extractor.spec.ts b/test/modules/qqbot/plugins/bilibili-card/bilibili-url-extractor.spec.ts index c5e595f..9ebca74 100644 --- a/test/modules/qqbot/plugins/bilibili-card/bilibili-url-extractor.spec.ts +++ b/test/modules/qqbot/plugins/bilibili-card/bilibili-url-extractor.spec.ts @@ -106,6 +106,19 @@ describe('Bilibili URL extractor', () => { ).toEqual([]); }); + it('does not scan root rawEvent URL-like metadata fields', () => { + expect( + extractBilibiliUrls({ + messageText: '', + rawMessage: '', + rawEvent: { + debugUrl: 'https://www.bilibili.com/video/BV1xx411c7mD', + message: [], + }, + }), + ).toEqual([]); + }); + it('keeps exact cleaned URL dedupe while preserving distinct query URLs', () => { expect( extractBilibiliUrls({