pakku advanced filter

弹幕屏蔽Pro+ (依赖于 pakku≥8.7)

当前为 2018-05-01 提交的版本,查看 最新版本

您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey 篡改猴Greasemonkey 油猴子Violentmonkey 暴力猴,才能安装此脚本。

您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey 篡改猴,才能安装此脚本。

您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey 篡改猴Violentmonkey 暴力猴,才能安装此脚本。

您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey 篡改猴Userscripts ,才能安装此脚本。

您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey 篡改猴,才能安装此脚本。

您需要先安装一款用户脚本管理器扩展后才能安装此脚本。

(我已经安装了用户脚本管理器,让我安装!)

您需要先安装一款用户样式管理器扩展,比如 Stylus,才能安装此样式。

您需要先安装一款用户样式管理器扩展,比如 Stylus,才能安装此样式。

您需要先安装一款用户样式管理器扩展,比如 Stylus,才能安装此样式。

您需要先安装一款用户样式管理器扩展后才能安装此样式。

您需要先安装一款用户样式管理器扩展后才能安装此样式。

您需要先安装一款用户样式管理器扩展后才能安装此样式。

(我已经安装了用户样式管理器,让我安装!)

作者
xmcp
评分
0 0 0
版本
0.2
创建于
2018-04-28
更新于
2018-05-01
大小
4.7 KB
许可证
暂无
适用于

这个脚本依赖于 pakku ≥ 8.7。

如果你觉得B站视频的弹幕屏蔽功能太简陋,那就运用你的 JavaScript 知识自己动手写屏蔽规则吧!

示例:

function do_filter(D) {
    return D.filter((d) => {
        const [time, mode, size, color, sendtime, pool, uid_hash, danmaku_id] = d.peers[0].attr;

        // 仅显示白色弹幕
        return parseInt(color)==0xFFFFFF;

        // 不显示底部弹幕,除非它看起来像字幕
        return mode!='5' || /^【.*】$/.test(d.text);

        // 仅显示多条合并的弹幕以及LV3+用户发送的弹幕
        return d.peers.length>1 || (d.sender_info && d.sender_info.level_info.current_level>=3);

        // 仅显示老用户发送的弹幕
        return d.cracked_uid<1000000;

        // ...
    });
}

甚至:

// 只显示每个人发的第一条弹幕
function do_filter(D) {
    let store = {};

    D
        .sort((a, b) => {
            return a.peers[0].time - b.peers[0].time;
        })
        .forEach((d) => {
            const uid_hash = d.peer[0].attr[6];
            if(!store[uid_hash])
                store[uid_hash]=d;
        });

    return Object.values(store);
}

总之,你能想到的需求一定都能实现!

再次强调:这个脚本依赖于 pakku ≥ 8.7。