@dan-uni/dan-any-plugin-detaolu
v2.2.3-2
Published
A filter, dedupe and anti-spam plugin of dan-any, a danmaku transformer lib, based on pakku.js.
Maintainers
Readme
@dan-uni/dan-any-plugin-detaolu
@dan-uni/dan-any-plugin-detaolu 基于 pakku.js 的思路实现了一套弹幕去重 / 反套路(反“taolu”)合并插件,用于在 dan-any 数据流中把相似或重复的弹幕聚合为代表弹幕。
主要功能
- 使用相似度算法(编辑距离、2-gram 词频向量、拼音归一化等)识别并合并相近弹幕
- 提供
DetaoluPluginConfigurator作为dan-anyplugin,直接用于chunk.plugin(...) - 暴露可配置项(参见
src/pakku.js/index.ts中的DEFAULT_CONFIG)以调节合并策略
快速开始
vp install
vp test
vp pack使用示例
import { DetaoluPluginConfigurator } from "@dan-uni/dan-any-plugin-detaolu";
// 在 dan-any 的处理链中使用:
const mergedChunk = await chunk.plugin(DetaoluPluginConfigurator({ THRESHOLD: 30 }));
// mergedChunk 包含合并/聚合后的弹幕配置
- 默认配置项位于
src/pakku.js/index.ts中的DEFAULT_CONFIG,包含合并阈值、编辑距离阈值、词频相似度阈值、白名单/黑名单与若干文本预处理选项。
许可与致谢
- 本包采用 GPL-3.0-or-later 许可(详见
package.json)。 - 相似度与合并逻辑源自并改编自开源项目
pakku.js(参见源码注释),请注意原作者许可约束。
贡献
- 欢迎提交 issue 与 PR。提交前请运行
vp check与vp test并确保遵守 GPL 兼容要求。 - 打包使用了wasm插件,会自动处理wasm文件;构建时的
import { readFile } from "node:fs/promises";无法解析报错可以忽略,其会自动被wasm插件构建产出自动运行时检出。 - 测试前须先运行
vp pack以生成测试所需的构建产物(由于wasm构建路径与项目src内路径不同,直接导入src文件进行测试会找不到路径)。
更多
- 源码主要位于
src/pakku.js(实现合并算法与 wasm 加载)和src/index.ts(提供DetaoluPluginConfigurator集成点)。
