您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
弹幕屏蔽Pro+
// ==UserScript== // @name pakku advanced filter // @namespace http://s.xmcp.ml/pakkujs/ // @version 0.3 // @description 弹幕屏蔽Pro+ // @author xmcp // @match *://*.bilibili.com/* // @grant none // ==/UserScript== // 请先安装 [pakku](http://s.xmcp.ml/pakkujs/) const NEED_UID = true; // 是否需要使用 cracked_uid 属性(慢) // 屏蔽规则写在这个函数里 function do_filter(D) { var ret = []; D.forEach((d) => { ret.push(d.ir_obj); }); return ret; } (function() { 'use strict'; function comp_ver(ver1, ver2) { ver1 = ver1.split('.').map( s => s.padStart(10) ).join('.'); ver2 = ver2.split('.').map( s => s.padStart(10) ).join('.'); return ver1 < ver2; } function check_ver(ver) { if(comp_ver(ver, '10.0')) alert('此版本的 pakku advanced filter 用户脚本依赖于 pakku 10.0 或更高版本'); } let COMPLETED_TIME=-10000; addEventListener('message', function(e) { if(e.data.type==='pakku_event_danmaku_loaded') { if((+new Date())-COMPLETED_TIME<5000) return; check_ver(e.data.pakku_version||'0'); if(NEED_UID) { postMessage({type: 'pakku_get_danmaku_with_uid'},'*'); } else { postMessage({type: 'pakku_get_danmaku'},'*'); } } else if(e.data.type==='pakku_got_danmaku') { const D=do_filter(e.data.resp); console.log('pakku advanced filter: '+D.length+' danmakus left'); COMPLETED_TIME=(+new Date()); window.postMessage({type: 'pakku_set_danmaku_bounce', danmakus: D},'*'); } }); })();