您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
高亮个别用户的弹幕, 有时候找一些特殊人物(其他直播主出现在直播房间)用
当前为
// ==UserScript== // @name 高亮个别用户的弹幕 // @namespace http://tampermonkey.net/ // @version 0.4 // @description 高亮个别用户的弹幕, 有时候找一些特殊人物(其他直播主出现在直播房间)用 // @author Eric Lam // @include /https?:\/\/live\.bilibili\.com\/(blanc\/)?\d+\??.*/ // @require https://code.jquery.com/jquery-3.5.1.js // @require https://cdnjs.cloudflare.com/ajax/libs/pako/1.0.10/pako.min.js // @require https://greasyfork.org/scripts/417560-bliveproxy/code/bliveproxy.js?version=875812 // @grant none // ==/UserScript== (function() { 'use strict'; console.log('using highlight filter') // 设定 // 高亮用户 ID const highlightUsers = [ 396024008, // 日本兄贵 604890122, // 日本兄贵 623441609, // 凤玲天天 (DD) 1618670884, // 日本兄贵 840358977, // 日本兄贵 406805563, // 乙女音 2299184, // 古守 625255764, // 辻蓝佳音瑠 198297, // 冰糖 1576121, // paryi 203821 ] const settings = { // 颜色 // 颜色列表 https://my.oschina.net/mye/blog/213309 color: 0x66FF00, // 透明度 opacity: 1.0 } // 代码 const reg = /(\d+)$/g bliveproxy.addCommandHandler('DANMU_MSG', command => { const userId = command.info[2][0] //console.debug(userId) if (!highlightUsers.includes(userId)) return console.debug('detected highlighted user: '+userId) command.info[0][3] = settings.color command.info[1] += `(${command.info[2][1]})${userId}` console.debug(`converted danmaku: ${command.info[1]}`) }) const config = { attributes: false, childList: true, subtree: true } function danmakuCheckCallback(mutationsList){ for(const mu of mutationsList){ if (mu.addedNodes.length < 1) continue for (const node of mu.addedNodes){ //console.log(node) const danmaku = node?.innerText?.trim() ?? node?.data?.trim() if (danmaku === undefined || danmaku === '') continue const u = reg.exec(danmaku)?.pop() if (!u) continue if (!highlightUsers.includes(parseInt(u))) continue const dan = danmaku.replaceAll(u, '') console.debug('highlighting danmaku: '+danmaku) const n = node.innerText !== undefined ? node : node.parentElement const jimaku = $(n) jimaku.css('opacity', `${settings.opacity}`) jimaku[0].innerText = dan } } } const danmakuObserver = new MutationObserver((mu, obs) => danmakuCheckCallback(mu)) danmakuObserver.observe($('.bilibili-live-player-video-danmaku')[0], { childList: true, subTree: true}) })();