您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
Makes chat whitelisted
// ==UserScript== // @name Cytube white list // @namespace Violentmonkey Scripts // @match https://cytu.be/r/* // @grant none // @require https://cdnjs.cloudflare.com/ajax/libs/jquery/3.5.1/jquery.min.js // @version 1.0.1 // @author - // @description Makes chat whitelisted // ==/UserScript== window.allowset = new Set(JSON.parse(localStorage.whitelist||'[]')); function addcontrol(elem) { console.log('elem',elem); if(elem.controladded) return; elem.controladded=true; var name=elem.innerText; console.log('name',name); var state=allowset.has(name)||false; var control=document.createElement('span'); control.innerText=state?'-':'+'; control.title=state?'Black list':'White list'; var style = control.style; style.paddingLeft='2px'; style.paddingTop='0'; style.paddingRight='2px'; style.paddingBottom='0'; style.marginLeft='2px'; style.backgroundColor='#735757'; style.borderRadius='2px'; elem.appendChild(control); control.addEventListener('mouseup',e=>e.preventDefault()); console.log('first state',state); control.addEventListener('click',e=>{ e.preventDefault(); e.stopPropagation(); console.log('state',state); state=!state; console.log('new state',state); control.innerText=state?'-':'+'; if(state) { window.allowset.add(name); $('.chat-msg-'+name).each((i,e)=>e.style.display='block'); control.title='Black list'; } else { window.allowset.delete(name); $('.chat-msg-'+name).each((i,e)=>e.style.display='none'); control.title='White list'; } var outlist=[]; window.allowset.forEach(e=>outlist.push(e)); localStorage.whitelist=JSON.stringify(outlist); return false; },true); } console.log('violent monkey works'); var userlistinterval=setInterval(()=>{ var userlist=$('#userlist'); if(userlist) { console.log('userlist',userlist,userlist.children()); clearInterval(userlistinterval); userlist.children().each((i,e)=>addcontrol(e)); var observer = new MutationObserver((list,observer)=>{ list.forEach(observation=>{ observation.addedNodes.forEach(n=>addcontrol(n)); console.log('observation',observation); }); }); observer.observe(userlist[0],{childList:true}); } },100); var messagebufferinterval=setInterval(()=>{ var messagebuffer=$('#messagebuffer'); if(messagebuffer) { console.log('messagebuffer',messagebuffer); clearInterval(messagebufferinterval); var observer = new MutationObserver((list,observer)=>{ list.forEach(observation=>{ observation.addedNodes.forEach(n=>{ var className = n.className; if(className.startsWith('chat-msg-')) { var user = className.replace('chat-msg-',''); if(!allowset.has(user)) n.style.display='none'; } }); }); }); observer.observe(messagebuffer[0],{childList:true}); } },100);