pakku advanced filter

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

目前為 2018-05-01 提交的版本,檢視 最新版本

您需要先安裝使用者腳本管理器擴展,如 TampermonkeyGreasemonkeyViolentmonkey 之後才能安裝該腳本。

You will need to install an extension such as Tampermonkey to install this script.

您需要先安裝使用者腳本管理器擴充功能,如 TampermonkeyViolentmonkey 後才能安裝該腳本。

您需要先安裝使用者腳本管理器擴充功能,如 TampermonkeyUserscripts 後才能安裝該腳本。

你需要先安裝一款使用者腳本管理器擴展,比如 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。