From ee037968d175d81f9a38c526987ecd0649f47263 Mon Sep 17 00:00:00 2001 From: Retr0 <202583450066@nuist.edu.cn> Date: Sun, 21 Jun 2026 13:17:24 +0800 Subject: [PATCH 1/3] =?UTF-8?q?plugin:=E4=BF=AE=E5=A4=8D=E5=BC=B9=E5=B9=95?= =?UTF-8?q?=E4=BF=9D=E7=95=99=E6=95=B0=E9=94=99=E8=AF=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../better_danmaku_filter.js | 23 ++++++++++++------- 1 file changed, 15 insertions(+), 8 deletions(-) diff --git a/plugins/better_danmaku_filter/better_danmaku_filter.js b/plugins/better_danmaku_filter/better_danmaku_filter.js index 266976b..e53da08 100644 --- a/plugins/better_danmaku_filter/better_danmaku_filter.js +++ b/plugins/better_danmaku_filter/better_danmaku_filter.js @@ -1,7 +1,7 @@ const pluginManifest = { id: 'better_danmaku_filter', name: '智能弹幕精选', - version: '1.1.2', + version: '1.2.1', minHostVersion: '1.10.6', description: '智能精选弹幕,过滤低质量弹幕,保留优质内容', author: 'Retr0', @@ -212,6 +212,13 @@ function maxCharRatio(s) { return max / s.length; } +function getTargetKeepCount(totalCount, p) { + if (p.expectedDanmakuCount > 0) { + return Math.max(1, Math.round(p.expectedDanmakuCount * 1000)); + } + return Math.max(1, Math.round(totalCount * p.ratio / 100)); +} + function similarity(a, b) { var la = a.length, lb = b.length; if (!la || !lb) return 0; @@ -423,13 +430,7 @@ function filterDanmaku(items, p) { var candidates = result.filter(function(r) { return !r._prefiltered; }); candidates.sort(function(a, b) { return b._score - a._score; }); - var keepCount; - - if (p.expectedDanmakuCount > 0) { - keepCount = Math.max(1, Math.round(p.expectedDanmakuCount * 1000)); - } else { - keepCount = Math.max(1, Math.round(candidates.length * p.ratio / 100)); - } + var keepCount = getTargetKeepCount(candidates.length, p); var kept = candidates.slice(0, Math.min(keepCount, candidates.length)); @@ -496,6 +497,12 @@ function pluginOnEvent(event) { loadParams(); + var targetKeepCount = getTargetKeepCount(commentsArray.length, params); + if (targetKeepCount >= commentsArray.length) { + ui.showSnackBar('弹幕精选跳过: ' + originalCount + ' 条不超过目标保留数 ' + targetKeepCount); + return; + } + var filtered = filterDanmaku(commentsArray, params); var filteredCount = filtered.length; From 67355de87d355b3324c339f0030d22f1cc787a09 Mon Sep 17 00:00:00 2001 From: Retr0 <202583450066@nuist.edu.cn> Date: Sun, 21 Jun 2026 13:21:41 +0800 Subject: [PATCH 2/3] =?UTF-8?q?=E7=A7=BB=E9=99=A4=E6=B6=88=E6=81=AF?= =?UTF-8?q?=E6=98=BE=E7=A4=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- plugins/better_danmaku_filter/better_danmaku_filter.js | 9 ++------- 1 file changed, 2 insertions(+), 7 deletions(-) diff --git a/plugins/better_danmaku_filter/better_danmaku_filter.js b/plugins/better_danmaku_filter/better_danmaku_filter.js index e53da08..6e80868 100644 --- a/plugins/better_danmaku_filter/better_danmaku_filter.js +++ b/plugins/better_danmaku_filter/better_danmaku_filter.js @@ -1,7 +1,7 @@ const pluginManifest = { id: 'better_danmaku_filter', name: '智能弹幕精选', - version: '1.2.1', + version: '1.2.2', minHostVersion: '1.10.6', description: '智能精选弹幕,过滤低质量弹幕,保留优质内容', author: 'Retr0', @@ -469,11 +469,6 @@ function filterDanmaku(items, p) { return finalKept; } -function pluginOnInitialize() { - loadParams(); - ui.showSnackBar('弹幕精选插件已启用'); -} - function pluginOnDestroy() { ui.showSnackBar('弹幕精选插件已禁用'); } @@ -499,7 +494,7 @@ function pluginOnEvent(event) { var targetKeepCount = getTargetKeepCount(commentsArray.length, params); if (targetKeepCount >= commentsArray.length) { - ui.showSnackBar('弹幕精选跳过: ' + originalCount + ' 条不超过目标保留数 ' + targetKeepCount); + ui.showSnackBar('弹幕精选跳过: ' + originalCount + ' 条不超过期望数数 '); return; } From d01a60cf9435708115cb35397ccbb168e268c4f1 Mon Sep 17 00:00:00 2001 From: Retr0 <202583450066@nuist.edu.cn> Date: Sun, 21 Jun 2026 13:24:29 +0800 Subject: [PATCH 3/3] update version --- plugins/better_danmaku_filter/better_danmaku_filter.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/better_danmaku_filter/better_danmaku_filter.js b/plugins/better_danmaku_filter/better_danmaku_filter.js index 6e80868..9f538a5 100644 --- a/plugins/better_danmaku_filter/better_danmaku_filter.js +++ b/plugins/better_danmaku_filter/better_danmaku_filter.js @@ -1,7 +1,7 @@ const pluginManifest = { id: 'better_danmaku_filter', name: '智能弹幕精选', - version: '1.2.2', + version: '1.1.3', minHostVersion: '1.10.6', description: '智能精选弹幕,过滤低质量弹幕,保留优质内容', author: 'Retr0',