From a19a61d949044f302fbd46c05e5aa6e3205d7e97 Mon Sep 17 00:00:00 2001 From: octo-patch Date: Sat, 25 Apr 2026 10:59:14 +0800 Subject: [PATCH] fix(bilibili): filter out null subtitle content to prevent 'null' strings in video summaries When Bilibili subtitle API returns entries with null content values, JavaScript string concatenation converts them to the literal string "null", polluting the subtitle text sent to the AI model. Replace the manual loop with .map().filter().join() to skip null/undefined content entries before building the subtitle string. Fixes #893 Co-Authored-By: Octopus --- src/content-script/site-adapters/bilibili/index.mjs | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/src/content-script/site-adapters/bilibili/index.mjs b/src/content-script/site-adapters/bilibili/index.mjs index b3900368..fc8c221d 100644 --- a/src/content-script/site-adapters/bilibili/index.mjs +++ b/src/content-script/site-adapters/bilibili/index.mjs @@ -51,11 +51,10 @@ export default { const subtitleData = await subtitleResponse.json() const subtitles = subtitleData.body - let subtitleContent = '' - for (let i = 0; i < subtitles.length; i++) { - if (i === subtitles.length - 1) subtitleContent += subtitles[i].content - else subtitleContent += subtitles[i].content + ',' - } + const subtitleContent = subtitles + .map((s) => s.content) + .filter((c) => c != null) + .join(',') return await cropText( `You are an expert video summarizer. Create a comprehensive summary of the following Bilibili video in markdown format, ` +