CommentFilter 弹幕过滤器
弹幕过滤器是一套简便的弹幕过滤系统,可以用来调整用户显示的弹幕信息。目前版本的弹幕过滤器提供 了很多功能来辅助过滤弹幕。
注意:过滤器在 send() 之前执行,所以通过 send() 派发的弹幕将不会通过 CommentFilter。
过滤器语法 Filter Syntax
过滤器有两种方式过滤,其中基础过滤是模式黑/白名单而高级过滤列表是基于一系列规则的。
模式过滤 Mode Switches
模式过滤可以通过设置 allowTypes 选择显示或者抛弃的 mode 类型。allowUnknownTypes 则
决定了列表外的类型默认处理方法(默认允许还是默认拒绝)
高级过滤列表 Advanced Rule List
高级过滤列表通过一系列规则过滤弹幕,每一个规则形式如下:
{
"subject": "",
"op": "",
"value": null,
"mode": "accept" | "reject"
}
- Subject: (Subject) 规则绑定的对象
比如
subject=""时,则匹配整个 ICommentData 对象而subject="text"则匹配 弹幕文字。可以通过.来进入子属性,比如subject="text.length"则会匹配cmtData.text.length(cmtData为 ICommentData对象)。 - Op: (Operator) 规则使用的匹配方式
</>: 数字匹配 (value为number)~或regexp: 正则匹配 (value为正则表达式对象)=或eq: 全等匹配 (value为任何对象)NOT: 取反反规则,以前判定true则会返回false (value为rule)AND: 合并规则,只有列表中所有规则都匹配才匹配 (value为rule[])OR: 或合并规则,只要列表中有一个匹配则匹配 (value为rule[])
- Value: (Target value) 规则目标参考值 根据 OP 的取值,可能代表不同含义
- Mode: (Rule mode) 规则类型
accept: 匹配规则才可放行reject: 匹配规则会被舍弃