您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
bilibili弹幕词云、弹幕分析、弹幕列表
// ==UserScript== // @license MIT // @name 弹幕词云 // @namespace http://tampermonkey.net/ // @version 2.6.3 // @description bilibili弹幕词云、弹幕分析、弹幕列表 // @author You // @match https://www.bilibili.com/bangumi/play/* // @match https://www.bilibili.com/video/* // @grant none // @require https://cdn.jsdelivr.net/npm/[email protected]/index.min.js // @require https://cdn.jsdelivr.net/npm/[email protected]/index.min.js // ==/UserScript== (function() { 'use strict'; function geo(){ console.log("开始") // setInterval(modi,1000); initBase(); init(); } //======变量======= var lastScorllEl; var diag; var diagCon; var canv; var btnTextE; var baocun;//保存按钮 var baocun2;//保存按钮 var holder;//包裹词云 var canvP;//词云div var title; var hasCi = false;//词云是否显示 let s = []//弹幕 let dmlang = []//所有弹幕 let wds = []//所有 let sai = []//词频 let stageSai = []; let dmBar; let pao; let fail = false; let walkPao = false; let tez = [0, 1]//[最大值,最小值,中位数] let count = 350//最大词数 let reqParm = [0, 1] let liFac = 0.5;// let weiFac = 0.5;//字体权重 let dmCount = 0;//总弹幕数量 let colorTable = ['#9794DB', '#8240BF', '#6344C1', '#4840BF', '#444EC1', '#4461C1', '#5E90C9', '#4BABC3', '#66C7CC', '#66CCBD', '#53C69F', '#BDD071', '#C9965E', '#C15444', '#BF4640', '#D13D3D', '#FF533E'] let peiIdx = 0; let sepei = [//背景色,高频色,低频色,遮罩 ['#2775b6', [255, 255, 255], [73, 92, 105], '//i0.hdslb.com/bfs/article/874074999995e6981d7602a7d5a770043a10b932.png@256w_256h.webp', '景泰蓝'], ['#AC1F18', [28, 13, 26], [54, 41, 47], '//i0.hdslb.com/bfs/article/874074999995e6981d7602a7d5a770043a10b932.png@256w_256h.webp', '对联红'], ['#621d34', [226, 225, 228], [97, 113, 114], '//i0.hdslb.com/bfs/article/874074999995e6981d7602a7d5a770043a10b932.png@256w_256h.webp', '鹞冠紫'], ['#ed9db2', [51, 20, 30], [181, 152, 162], '//i0.hdslb.com/bfs/article/874074999995e6981d7602a7d5a770043a10b932.png@256w_256h.webp', '豇豆红'], ['#1ba784', [173, 213, 162], [65, 174, 60], '//i0.hdslb.com/bfs/article/874074999995e6981d7602a7d5a770043a10b932.png@256w_256h.webp', '竹绿'], ['#fed71a', [140, 194, 105], [140, 194, 105], '//i0.hdslb.com/bfs/article/874074999995e6981d7602a7d5a770043a10b932.png@256w_256h.webp', '佛手黄'], ['#f26b1f', [249, 233, 205], [240, 156, 90], '//i0.hdslb.com/bfs/article/874074999995e6981d7602a7d5a770043a10b932.png@256w_256h.webp', '金黄'], ['#500A16', [226, 225, 228], [97, 113, 114], '//i0.hdslb.com/bfs/article/d2bba9afdcd82302d8d387696e076da26050fb37.jpg@1320w_1760h.webp', '浪'], ]//背景+文字颜色2 let levelColor = [ ["#7b7b7b", "#b6b6b6"], ["#dfd7ba", "#dfd7ba"], ["#8eca5e", "#dfd4ae"], ["#9c9c9c", "#9bff74"], ["#ffffff", "#43eced"], ["#ffffff", "#5e0eb4"], [] ] let levelStyle = "font-size: 12px;color:c1;background-color:c2;margin: 0 8px;" let sepeiBtn = []; let yuTuPic=`data:image/png;base64,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` let styleSheet = ` .blura{ animation: 1s animatea 1 linear; } .blura:hover{ animation: 2s animateb 1 linear; } @keyframes animatea{ 0%{ text-shadow: 0 0 0 white; } 50%{ color: rgba(238, 235, 235, 0.8); text-shadow: 0 0 30px rgb(216, 227, 243); } 100%{ text-shadow: 0 0 40px white; } } @keyframes animateb{ 0%{ text-shadow: 0 0 0px rgba(255,255,255,0); } 50%{ color: rgba(255, 255, 255, 0.925); text-shadow: 0 0 10px rgb(184, 245, 242); } 100%{ text-shadow: 0 0 0 white; } } @keyframes ac{ 0%{ color: rgba(33, 33, 33, 0.9); } 50%{color: rgba(238, 235, 235, 0.5);} 100%{ color: rgba(238, 235, 235, 1); } } @keyframes ad{ 0%{ color: rgba(238, 235, 235, 1); } 50%{color: rgba(238, 235, 235, 0.5);} 100%{ color: rgba(33, 33, 33, 0.9); } } .btnBg{ position:relative;top:-17px; /*background: linear-gradient(45deg , #e5c0ff, skyblue);*/ background: linear-gradient(45deg , #df4b4b, #ebda87); border-radius: 4px;filter: blur(15px);width: 100%;height: 100%; } .blr-btn{ color: #fb8561; user-select:none;overflow:hidden;position:fixed;top:56px;z-index:999;left:10px;width: 54px;height: 26px;border-radius: 3px;font-size: 18px;padding: 5px;cursor: pointer; width:fit-content; padding-top: 15px; width:-webkit-fit-content; width:-moz-fit-content; animation: 0.5s ad 1 linear; transition:.5s; } .blr-btn:hover{ animation: 0.5s ac 1 linear; } .blr-btn-on{ border-bottom: 4px solid #07ff7abd; } .fEl{ width: 100%; height: 25px; padding: 1px 0px; transition:.5s; color: cornsilk; } .bar-indicator{ height: 100%; background-color: rgb(76 173 104); width: 80%; } .fEl:hover{ background-color: rgba(96, 160, 243, 0.363); cursor: pointer; } .frequency{ width: 10%; float: right; font-size: 14px; padding: 0px 5px 0 0; text-align: right; text-shadow: -2px -1px 8px #bdfa9d; } .msgBox{ width: 550px; height: 200px; background-color: rgb(249 0 0 / 55%); position: fixed; /* background: linear-gradient(45deg , #e32e2e99, #ffd60b54); */ border-radius: 5px; z-index: 999999; border: 4px solid #ffffffb8; backdrop-filter: blur(20px); box-shadow: 1px 1px 10px 0px #767676bd; display: flex; justify-content: center; } .msgBox>span{ font-size: 30px; color: #fff6b4; line-height: 200px; text-align: center; font-weight: bolder; text-shadow: 0px 0px 7px #ffc800; } .danmu-word{ padding: 5px; font-size: 12px; line-height: 15px; position: relative; top: -22px; } .hid{ opacity: 0; transition: 0.5s; } :root{ --rds: 0px; } *{ border-radius: var(--rds) !important; } *:after{ border-radius: var(--rds) !important; } .roll-entry-btn{ position: absolute; right: 5px; background-color: rgb(245 250 255); top: -5px; padding: 0 4px; cursor: pointer; color: #7c7c7c; } .slow-dh{ transition:1s; } .roll-entry-btn:hover{ background-color: rgb(219 224 255); } .mc-duihua-neirong{ color: #696969; padding: 10px 10px 5px 10px; margin:0 45px; border-radius: 3px; box-shadow: 1px 1px 7px 0px #bababac7; border: 1px solid #88888852; font-size: 14px; } .mc-duihua-neirong:hover{ box-shadow: 1px 1px 7px 0px #ffa40061; } .mc-user-face{ float: left; border-radius: 22px; } .mc-flow-right{ float: right; clear: both; } .mc-comment-info{ color: #99a2aa; line-height: 14px; font-size: 12px; } .mc-link{ background-color: #dedede; color: #ddd; padding: 2px; font-size: 14px; font-family: fangsong,serif; transition: 0.5s; } .mc-link:link { color: #c9acac; text-decoration:none; } .mc-link:visited { color: #a1b8a1; text-decoration:none; } .mc-link:hover { color: #ffffff; text-decoration:none; } .mc-link:active { color:#FFFFFF; text-decoration:none; } .mc-duihua-wrap{ width: 400px; margin: 10px 0; } .mc-user-info{ height: 16px; font-size: 14px; color: #ff4b00; margin: 0 45px; padding: 5px; font-family: monospace; font-weight: 900; } .mc-dh{ transition: 0.5s; } .mc-divider{ border-top: 1px solid #d4d4d4; width: 100%; margin: 5px 0; } .mc-red{ background-color: red; cursor: pointer; } .mc-red:hover{ background-color: #fe4d6d; color: #d4d4d4; } .scrollDiag{ position: relative; transition: 0.2s; width:600px; } .mc-comment-info>.like i{ background-position: -153px -25px; } .mc-comment-info i{ display: inline-block; width: 14px; height: 14px; vertical-align: text-top; margin-right: 5px; background: url(//s1.hdslb.com/bfs/seed/jinkela/commentpc/./img/icons-comment.2f36fc5.png) no-repeat; } .hate i{ background-position: -153px -153px; } .mc-comment-info>span{ cursor: pointer; margin-right: 10px; } .mc-duihua-neirong img{ vertical-align: text-bottom; padding: 0 1px; width: 30px; height: 30px; } .send-box{ width:100%; height:65px; border:1px solid #333; } ` //======基础====== var mbox; function initBase() { mbox = document.createElement("div"); var m = [window.innerHeight / 2 - 100, window.innerWidth / 2 - 275] mbox.style = "top:" + m[0] + "px;left:" + m[1] + "px;" mbox.classList.add('msgBox','hid') mbox.hidden = true; document.body.append(mbox) } function msg(t) { mbox.hidden = false; mbox.innerHTML = ""; let txt = document.createElement('span'); let image=document.createElement('img') image.style='position: absolute;left: -80px;height: 150px;top: -60px;' image.setAttribute('src',yuTuPic); if (t.length > 23) t = t.substr(0, 23) + "..." else if (t.length < 6) txt.style.fontSize = '50px' txt.innerText = t; mbox.append(txt) mbox.append(image) mbox.classList.remove('hid') var outTime = t.length / 6 * 1000 setTimeout(() => { mbox.classList.add('hid') }, outTime) setTimeout(() => { mbox.hidden = true }, outTime + 500) } //======函数====== let linkRegex = /((http[s]?:\/\/)|(ftp)|((?<!\/)www\.)).*?(?=\s)/g function newEl(tag, parent, classList) { let el = document.createElement(tag ? tag : "div"); if (classList) { classList.forEach(x => el.classList.add(x)) } if (parent) parent.append(el) return el; } //时间戳转换方法 date:时间戳数字 function formatDate(date) { let lag = new Date().getTime() - date; if (lag < 1000 * 3600) return parseInt(lag / 1000 / 60) + "分钟前" if (lag < 1000 * 3600 * 12) return parseInt(lag / 3600 / 1000) + "小时前"; var date = new Date(date); var YY = date.getFullYear() + '-'; var MM = (date.getMonth() + 1 < 10 ? '0' + (date.getMonth() + 1) : date.getMonth() + 1) + '-'; var DD = (date.getDate() < 10 ? '0' + (date.getDate()) : date.getDate()); var hh = (date.getHours() < 10 ? '0' + date.getHours() : date.getHours()) + ':'; var mm = (date.getMinutes() < 10 ? '0' + date.getMinutes() : date.getMinutes()) + ':'; var ss = (date.getSeconds() < 10 ? '0' + date.getSeconds() : date.getSeconds()); return YY + MM + DD + " " + hh + mm + ss; } function duiY(data, left) { let root = newEl("div"); root.classList.add("dh", "mc-duihua-wrap"); let userFace = newEl("div", root, ["mc-user-face"]); let userFaceLink = newEl("a", userFace) userFaceLink.href = data.link; userFaceLink.target = "_blank"; let userFaceImg = newEl("img", userFaceLink); userFaceImg.height = 38; userFaceImg.width = 38; userFaceImg.src = data.userFaceImg; let userInfo = newEl("div", root, ["mc-user-info"]); newEl("span", userInfo).innerText = data.userName; let userLevel = newEl("span", userInfo) userLevel.style = levelStyle.replace("c1", levelColor[data.lv - 1][0]).replace("c2", levelColor[data.lv - 1][1]) userLevel.innerText = "lv" + data.lv; let content = newEl("div", root, ["mc-duihua-neirong", "mc-dh"]); let contentTxt = newEl("div", content); let contentTxtDe = data.contentMsg; //处理内容链接 let cap = linkRegex.exec(data.contentMsg); while (cap) { let link = newEl("a", undefined, ["mc-link"]); link.href = cap[0]; link.target = "_blank"; link.innerText = "前往链接" contentTxtDe = contentTxtDe.replaceAll(cap[0], link.outerHTML); cap = linkRegex.exec(data.contentMsg); } if (data.emote) { for (let i in data.emote) { let x = data.emote[i]; let emj = document.createElement("img"); emj.src = x.url; emj.alt = x.text contentTxtDe = contentTxtDe.replaceAll(x.text, emj.outerHTML); } } contentTxt.innerHTML = contentTxtDe; newEl("div", content, ["mc-divider"]) let commentInfo; if (!left) { root.classList.add("mc-flow-right"); userFace.classList.add("mc-flow-right"); userInfo.style.textAlign = "right"; commentInfo = newEl("div", content, ["mc-comment-info"]); } else { let comment = newEl("div", content) comment.style.height = "14px"; commentInfo = newEl("div", comment, ["mc-comment-info", "mc-flow-right"]) } newEl("span", commentInfo, ["time"]).innerText = data.time let commentLike = newEl("span", commentInfo, ["like"]); newEl("i", commentLike) let commentLikeNum = newEl("span", commentLike); commentLikeNum.innerText = data.likeNum; newEl("i", newEl("span", commentInfo, ["hate"])) newEl("span", commentInfo, ["reply"]).innerText = "回复" return root; } //------------------------------------ function drag(obj) { obj.onmousedown = function (e) { // 鼠标点击物体那一刻相对于物体左侧边框的距离=点击时的位置相对于浏览器 // 最左边的距离-物体左边框相对于浏览器最左边的距离,纵向同理 var divX = e.clientX - this.offsetLeft; var divY = e.clientY - this.offsetTop; document.onmousemove = function (e) { var disX = e.clientX - divX; var disY = e.clientY - divY; // 移动时重新得到物体的距离,解决拖动时出现晃动现象 obj.style.top = disY + "px"; obj.style.left = disX + "px"; document.onmouseup = function () { // 鼠标抬起时不再移动 // 预防鼠标弹起来后还会循环(即预防鼠标放上去的时候还会移动) document.onmousedown = document.onmousemove = null; } } } } var init = () => { var sty = document.createElement("style"); sty.innerHTML = styleSheet document.head.append(sty) //按钮 let cibtn = newBtn(document.body, ciw, 10, 54, '词云'); btnTextE = cibtn.tx; let saveBtn = newBtn(document.body, () => { saveDiv(holder) }, 10, 100, '保存') let saveBtn2 = newBtn(document.body, () => { saveDiv(canvP) }, 10, 140, '仅文字保存') sepei.forEach((v, i) => { let themBtn = newBtn(document.body, () => { peiIdx = i; doWordCloud(); }, 10, 240 + i * 50, v[4]) // themBtn.bt.style.background='linear-gradient(45deg , #e5c0ff, '+v[0]+')' themBtn.bt.style.background = v[0] themBtn.bt.style.display = 'none' themBtn.tx.style.color = 'rgb(' + v[1][0] + ',' + v[1][1] + ',' + v[1][2] + ')' themBtn.bt.style.textAlign = 'center'; themBtn.bt.style.width = '70px' sepeiBtn[i] = themBtn.bt; }) let dmBarBtn = newBtn(document.body, () => { if (sai.length == 0) msg('请先生成词云(>_<)') if (dmBar.hidden) { dmBar.hidden = false dmBar.style.display = 'block' dmBar.children.forEach((e,i) => { setTimeout(()=>fadeIn(e),i*10) }) } else { setTimeout(()=>{ dmBar.style.display = 'none'; dmBar.hidden = true; },200) dmBar.children.forEach((e,i) => { setTimeout(()=>fadeOut(e),10) }) } }, 60, 54, '列表') let paopaoBtn = newBtn(document.body, () => { if (!pao.hidden) { pao.hidden = true; return } pao.hidden = false }, 110, 54, '小球') baocun = saveBtn.bt baocun.style.display = 'none' baocun2 = saveBtn2.bt baocun2.style.display = 'none' //词云画布 canv = document.createElement("div"); canvP = document.createElement("div");//背景 canvP.append(canv); canv.style = "height: 100%;width: 100%;" //渐变 // canvP.style="opacity:0.96;border: 5px solid rgb(237 237 237 / 74%);height: 700px;width: 1200px;position:fixed;top:50px;left:60px;z-index:999999;background:linear-gradient(311deg, rgb(234 229 229), rgb(233 241 227), rgb(218 231 230));"; //单色background-image: url(https://i0.hdslb.com/bfs/album/d16f34b89e59174bd066a27101bf6b9c92d16615.jpg); canvP.style = "background-image: url(//i0.hdslb.com/bfs/article/874074999995e6981d7602a7d5a770043a10b932.png@256w_256h.webp);opacity:0.96;border: 5px solid rgb(237 237 237 / 74%);height: 700px;width: 1200px;background-color: rgb(236, 43, 36);"; holder = document.createElement('div') holder.style = "position:fixed;top:40px;left:115px;z-index:999;" holder.setAttribute("hidden", true); title = document.createElement("span") title.style = "font-size:10px;color:rgb(225,235,215);position:absolute;z-index:10;background-color:#888" holder.append(canvP) holder.append(title) document.body.append(holder) drag(holder) //弹幕列表 dmBar = document.createElement('div') dmBar.style = 'background-color: rgb(255 255 255 / 96%);position: absolute;z-index: 998;width: 350px;box-shadow: rgba(113, 113, 113, 0.23) 1px 2px 8px 2px;border: 4px solid rgb(225 225 225);top: 120px;right: 30px;display: block;' dmBar.style.display = 'none' dmBar.hidden = true //泡泡图 pao = document.createElement('div') pao.style = 'pointer-events: none;position: fixed;z-index: 999999;width: ' + window.innerWidth + 'px;height:' + window.innerHeight + 'px;top:0px;' let qiuCanvas = document.createElement('canvas'); qiuCanvas.height = window.innerHeight qiuCanvas.width = window.innerWidth qiuCanvas.setAttribute('id', 'qiuCanvas') pao.append(qiuCanvas); document.body.append(pao) initQiuWorld(); //对话回放板 diag = document.createElement("div"); diag.style.width = '80%' diag.style.zIndex = '9999'; diag.style.position = 'fixed'; diag.style.backgroundColor = '#fffffff2' diag.style.boxShadow = '0px -1px 9px 0px #79787891' diag.style.height = '80vh'; diag.style.top = '50px'; diag.style.left = '50px' diag.innerHTML = ` <div style="width: 100%;height: 22px"> <div class="mc-dh mc-red" id="closeDiag" style="font-size: 14px;float: right;height:22px;width: 44px;padding: 5px;text-align: center">关闭</div> </div>` let diagConCov = newEl("div", diag); diagConCov.style.overflow = 'hidden'; diagConCov.style.height = '500px' diagCon = newEl("div", diagConCov) diagCon.classList.add("scrollDiag") document.body.append(diag) diag.style.display = 'none'; document.getElementById("closeDiag").onclick = () => { diag.style.display = 'none'; } mcDrag(document.getElementById("closeDiag").parentNode, diag, 1) let sendBox = newEl("div", diag, ["send-box"]); diag.onmousewheel = (e) => { if (diagCon.children.length == 0) return let speed = 100 let t = new Number(diagCon.style.top.replace("px", "")) let min = diagCon.parentNode.offsetHeight - (diagCon.lastChild.offsetTop + diagCon.lastChild.clientHeight + 40) if (min > 0) return; if (e.wheelDelta < 0 && t > min) { if (t - speed < min) diagCon.style.top = min + "px"; else diagCon.style.top = t - speed + "px"; } else if (e.wheelDelta > 0 && t < 0) { if (speed + t > 0) diagCon.style.top = "0px"; else diagCon.style.top = (t + speed) + "px"; } } let today=new Date().getTime(); if(today<1675612800000){ let days=16-Math.ceil((1675612800000-today)/3600/24/1000) if(days>-1&&days<16){ let dayCn=['一', '二', '三', '四', '五', '六', '七', '八', '九','十'] let todayFest='除夕'; if(days==15){ todayFest='元宵'; }else if(days>10){ todayFest='十'+dayCn[days-11] }else if(days>0){ todayFest='初'+dayCn[days-1] } msg(todayFest+'玉兔迎春,祝您兔年新春快乐!') } } } function fadeOut(el){ el.style.displayX=el.style.display setTimeout(()=>{ el.style.opacity=0 },5) setTimeout(()=>{ el.style.display='none' },500) } /** * 淡入 */ function fadeIn(el){ el.style.display=''; el.style.opacity=0 el.removeAttribute("hidden") setTimeout(()=>{ el.style.opacity=1 },5) } //产生词云 async function ciw() { if (hasCi) { holder.setAttribute("hidden", true); // $(baocun, baocun2).fadeOut(1000, 'linear', () => { // }) // $(baocun2).fadeOut(1000, 'linear') // $(sepeiBtn).fadeOut(1000, 'linear') fadeOut(baocun) fadeOut(baocun2) sepeiBtn.forEach(x=>fadeOut(x)) btnTextE.innerText = '词云' hasCi = false; return; }; console.log('生成词云'); let pid = reqParm[0] loadParam(); if (sai.length == 0 || pid != reqParm[0]) analysi(); else afterTask.a(); } let afterTask = { a: function () { // peiIdx=peiIdx==sepei.length-1?0:peiIdx+1 改为按钮切换 holder.removeAttribute("hidden"); setTimeout(() => { btnTextE.innerText = '^_^' }, 100) doWordCloud() hasCi = true; btnTextE.innerText = '关闭' // $(baocun).fadeIn(1000, 'linear') // $(baocun2).fadeIn(1000, 'linear') // $(sepeiBtn).fadeIn(1000, 'linear') fadeIn(baocun) fadeIn(baocun2) sepeiBtn.forEach(x=>fadeIn(x)) // pao.hidden=true; }, b: function () { //实际获取弹幕总数 dmCount=dmlang.length wds.forEach(e => { if (e[1] >= 1) { sai.push(e) } }) wds = [] let sTime=new Date().getTime(); sai.sort((a, b) => b[1] - a[1]);//降序 //取前30个或者取数量大于 总弹幕数的0.02倍的生成球 console.log("排序耗时:",new Date().getTime()-sTime+"ms") setTimeout(() => { let unit = 0.2; window.clearQiu(); let qiuCount=sai.length<30?sai.length:30 let minR=sai[qiuCount-1][1] for (let i = 0; i<qiuCount; i++) { // if(a[i][1]>=unit*dmCount){ // if(qiuses[i]){ // //添加Qiu // qiuses[i].r=a[i][1]*20/(unit*dmCount) // }else { // qiuses[i]=window.addQiu(a[i][0],a[i][1]*20/(unit*dmCount)) // } // } //最大直径为窗口1/5+20 let r=(sai[i][1]-minR)/(sai[0][1]-minR)*(window.innerWidth*.1) setTimeout(() => { window.addQiu(sai[i][0],r+20) }, 150*i) } }, 50) //计算weiFac if (sai.length > count) sai.splice(count) let siz = 0; sai.forEach(e => siz += e[0].length * e[1] * e[1]) let bgSize = canvP.style.height.replace("px", "") * canvP.style.width.replace("px", "") weiFac = Math.sqrt(bgSize / siz) tez[0] = sai[0][1] tez[1] = sai.slice(-1)[0][1] tez[2] = sai[parseInt(sai.length / 2)][1] console.log(dmlang) console.log("大小中", tez) console.log("筛选结果:", sai) dmLiebiao()// } } let doWordCloud = () => { backgroundImag() WordCloud([canv], { list: sai, color: colorw, //'random-light' backgroundColor: '', gridSize: 18, weightFactor: weiFac,//200/tez[0],//被除数为最大字号 fontFamily: '楷体', rotateRatio: 0.5, classes: "blura", rotationSteps: 2 }); } //上色 let colorw = (wd, weight) => { //tez[0]红色 #ff0000 //1=>蓝色 #0000ff // console.log(wd,weight,tez[0]) let i = sai.findIndex(e => e[0] == wd); let v = i / sai.length; // let v=parseInt(colorTable.length*i/sai.length) // return colorTable[v]; let s = sepei[peiIdx][1] let e = sepei[peiIdx][2] let colo = 'rgb(' for (let x in s) { colo += (parseInt(s[x] + v * (e[x] - s[x]))) + ',' } return colo.substr(0, colo.lastIndexOf(',')) + ')' } //获取弹幕并分析 let analysi = () => { //清空 s = []; sai = []; reCalcFac() console.log("等待弹幕获取完成") btnTextE.innerText = '>_<'; pao.hidden = false setTimeout(() => { getOneSeg(1) }, 20); } async function getOneSeg(seg) { let regex = /:.(.*?)[�@]/ await fetch('https://api.bilibili.com/x/v2/dm/web/seg.so?type=1&oid=' + reqParm[0] + '&pid=' + reqParm[1] + '&segment_index=' + seg,{ "body": null, "method": "GET", "mode": "cors", "credentials": "include" }).then(x=>x.text()) .catch(err=>{ console.log("失败点:", seg) fail = true afterTask.b(); afterTask.a(); return; }) .then(re=>{ let ss = re.split('\n'); ss.forEach(e => { let dm = regex.exec(e); if (dm && dm[1]) { s.push(dm[1]); dmlang.push([dm[1], 1]) } }) console.log(s); if(s.length<1){ console.log("失败点:", seg) fail = true afterTask.b(); afterTask.a(); return; } //分析进行 let t1 = new Date().getTime(); cia() //清空s s = [] wds.sort((a, b) => b[1] - a[1]);//降序 stageSai[stageSai.length] = wds.slice() if (wds.length > count) stageSai[stageSai.length - 1].splice(count) //如果弹幕总数超过1.2万就停止 if(dmlang.length>12000){ console.log("弹幕总数已超过1.2万:",dmlang.length,'停止获取于', seg) fail = true afterTask.b(); afterTask.a(); return; } let t2 = 500 - (new Date().getTime() - t1) if (t2 > 0) sleep(t2) getOneSeg(seg + 1) }) } // 弹幕数量过大时,通过promise缓慢执行 function ciaWait(){ console.log('分析弹幕...') // let wds=[] s.forEach(async e => { //去特殊符号 // e=e.replace(/[\ |\~|\`|\!|\@|\#|\$|\%|\^|\&|\*|\(|\)|\-|\_|\+|\=|\||\\|\[|\]|\{|\}|\;|\:|\"|\'|\,|\<|\.|\>|\/|\?]/g,""); // ctin(wds,e) //异步执行 let ctinSpare= new Promise((resolve, reject) => { setTimeout(() => { ctin(wds, e) if (1) { resolve("ok"); } else { reject(new Error("I am sad")); } }, 20); }); await ctinSpare //展示泡泡 }); } //分析 function cia() { console.log('分析弹幕...') // let wds=[] s.forEach(e => { //去特殊符号 // e=e.replace(/[\ |\~|\`|\!|\@|\#|\$|\%|\^|\&|\*|\(|\)|\-|\_|\+|\=|\||\\|\[|\]|\{|\}|\;|\:|\"|\'|\,|\<|\.|\>|\/|\?]/g,""); // ctin(wds,e) ctin(wds, e) //展示泡泡 }); } // function dmFenxi(dm) { // let join = true // let dmf = [dm, 1] // for (let i in wds) { // if (wds[i][0] == dm) { // join = false; // wds[i][1] += 1 // } else { // jiaQuan(wds[i], dmf) // } // } // if (join == true) { // wds.push(dmf); // } // } // function jiaQuan(a, b) { // if (a[0].indexOf(b[0]) > -1) { // a[1] += b[0].length / a[0].length // b[1] += b[0].length / a[0].length // } else if (b[0].indexOf(a[0]) > -1) { // b[1] += a[0].length / b[0].length // a[1] += a[0].length / b[0].length // } // } function ctin(a, b) { var h = true; for (let i in a) { if (ditIn(a[i], b)) { a[i][1] += 1; h = false; break; } } if (h) { a.push([b, 0]) } } let ditIn = (A, b) => { if (liFac == 1) { if (A[0].indexOf(b) < 0 && b.indexOf(A[0]) < 0) return false; } else if (!xiangsi(A[0], b)) return false; // if(A[0].length>b.length&&b.length>1) A[0]=b;//选择少的 if (b.length == 2 || b.length == 4) A[0] = b;//选择2字4字 return true; } //判断 a b是否相似 let xiangsi = (a, b) => { if (xiangsi0(a, b) || xiangsi0(b, a)) return true; return false; } //判断 a b 是否相似 let xiangsi0 = (a, b) => { let m = a.split('') let c = 0; m.forEach(e => { if (b.indexOf(e) > -1) c++; }) if (c / m.length >= liFac) return true; return false; } //找aid和cid let loadParam = () => { reqParm = [window.cid, window.aid] if (reqParm[0] == undefined) { let x = document.querySelector("#app").__vue__ if(x.cid==undefined){ x=window.__INITIAL_STATE__.epInfo } if(x.cid==undefined){ x=window.__INITIAL_STATE__ } if(x.cid) reqParm = [x.cid, x.aid] else reqParm = [x.cidMap[x.aid].cids[1], x.aid] } console.log('找到参数:', reqParm) } //设置词云宽高和筛选因子 let reCalcFac = () => { let m = 0 m=window?.__INITIAL_STATE__?.videoData?.stat?.danmaku if(m==undefined) try { m = parseInt(document.querySelector('.bilibili-player-video-info-danmaku-number').innerText); } catch (error) { try { m = parseInt(document.querySelector('.bpx-player-video-info-dm-number').innerText); } catch (error) { try { m = parseInt(document.querySelector("#viewbox_report > div > span.dm.item").innerText) } catch (error) { m = parseInt( document.querySelector('#bilibili-player > div > div > div.bpx-player-primary-area > div.bpx-player-sending-area > div > div.bpx-player-video-info > div.bpx-player-video-info-dm') .innerText.replace('已装填', '').replace('条弹幕', '') ); } } } dmCount = m; console.log('弹幕预估总计:',dmCount,'条') let titleEl = document.querySelector('#media_module > div > a') if (!titleEl) titleEl = document.querySelector('#viewbox_report > h1 > span') if (!titleEl) titleEl = document.querySelector('#viewbox_report > h1') if (!titleEl) { titleEl=document.querySelector('#viewbox_report > div.video-info-title > div > h1') } title.innerText = "视频标题:" + titleEl.innerText + " " + new Date() if (m < 1000) { liFac = 0.5 } else { liFac = 0.5 + (m - 1000) / 10000;//上限10000条 if (liFac > 1) liFac = 1; } let w = window.innerWidth - 160; let h = window.innerHeight - 70; canvP.style.width = w + 'px' canvP.style.height = h + 'px' pao.style.width = w + 'px' pao.style.height = h + 'px' holder.style.width = (10 + w) + 'px' holder.style.height = (10 + h + 17.6) + 'px' } let dmLiebiao = () => { dmBar.innerHTML = ''// if (null == dmBar.parent) { let p = document.querySelector('#app > div.v-wrap > div.r-con'); if (null == p) p = document.querySelector('#app > div.plp-r'); if (null == p) p = document.querySelector('#playerAuxiliary > div > div.player-auxiliary-collapse.bui.bui-collapse > div'); if (null == p) p = document.querySelector('#app > div.video-container-v1'); p.append(dmBar) drag(dmBar) // mcDrag(p, dmBar, 1) } let h = 360 * Math.random(); let b = 360 - h; sai.forEach((e,i) => { let fe = document.createElement('div'); fe.style.display='none' fe.className = 'fEl'; let dw = document.createElement('span'); dw.className = 'danmu-word'; dw.innerHTML = e[0] if (e[0].length > 21) { dw.innerText = e[0].substr(0, 21) + "..." } let f = document.createElement('div'); f.className = "frequency"; f.innerText = parseInt(e[1]) let bi = document.createElement('div'); bi.className = 'bar-indicator' bi.style = 'width:' + (Math.round(80 * e[1] / tez[0])) + '%' bi.style.backgroundColor = colorTool.hsla(h, 50*e[1] / sai[0][1]+50, 60, 0.75) fe.append(f) fe.append(bi) fe.append(dw) dmBar.append(fe) }) dmBar.style.backgroundColor =colorTool.hsla(b, 70, 60, 0.7); } let backgroundImag = () => { console.log("主题更改:", sepei[peiIdx][4]) // msg("更改主题:"+sepei[peiIdx][4]) canvP.style.backgroundImage = 'url("' + sepei[peiIdx][3] + '")' canvP.style.backgroundColor = sepei[peiIdx][0] // $.ajax({ // url:'http://zhongguose.com/img/texture.png', // type:'get', // success:(data)=>{ // console.log(daata) // var img=new Blob([data],{type:"png"}) // var url=URL.createObjectURL(img); // canvP.style.backgroundImage='url("'+url+'")' // } // }) } //---------------------------------------------------------------- function initQiuWorld() { var c = pao.firstElementChild // c.width=window.innerWidth;c.height=window.innerHeight; let w = c.width, h = c.height; var ctx = c.getContext("2d"); let xFac = 1; //x方向每米多少像素 let yFac = 1; let domain = []; let ins = window.ins = []; let hand = { x: 0, y: 0, flowIn: false, strength: 20 } window.onload = function () { let dpi = getDPI(); xFac = dpi[0] / 0.0254 / 8 yFac = dpi[1] / 0.0254 / 8 let windBox = { x1: 6 * w / 10, y1: 0, x2: 8 * w / 10, y2: h, eff: function (obj, dt) { //简单效果 if (this.x1 < obj.x && obj.x < this.x2) { obj.vY += (2 * obj.y / (h / 9.98) * yFac) * dt } }, draw: function () { let grd = ctx.createLinearGradient(0, 0, 0, h); grd.addColorStop(0, "#7e6cff33"); grd.addColorStop(1, "#7e6cffaa"); ctx.fillStyle = grd; ctx.fillRect(this.x1, this.y1, this.x2 - this.x1, this.y2 - this.y1); } } let windBox2 = { x1: 8 * w / 10, y1: 0, x2: 9 * w / 10, y2: h, eff: function (obj, dt) { //简单效果 在鼠标吸引时可暂时关闭 if (hand.flowIn) return if (this.x1 < obj.x && obj.x < this.x2) { obj.vY -= (2.5 * obj.y / (h / 9.98) * yFac) * dt } }, draw: function () { let grd = ctx.createLinearGradient(0, 0, 0, h); grd.addColorStop(0, "#ff2b2b33"); grd.addColorStop(1, "#f51c1caa"); ctx.fillStyle = grd; ctx.fillRect(this.x1, this.y1, this.x2 - this.x1, this.y2 - this.y1); } , moveTo: function (x) { this.x1 = x - 1 / 20 * w; this.x2 = x + 1 / 20 * w; } } let handEffect = { eff: function (obj, dt) { //鼠标吸引力 if (hand.flowIn) { let F = new Victor(hand.x - obj.x, hand.y - obj.y).norm().multiply(new Victor(hand.strength, hand.strength)) let compose = new Victor(obj.vX, obj.vY).add(F); obj.vX = compose.x; obj.vY = compose.y } }, draw: function () { } } domain.push(windBox) domain.push(windBox2); domain.push(handEffect); window.renderQiu = () => { ctx.clearRect(0, 0, w, h); ins.forEach((x, i) => { for (let j = i + 1; j < ins.length; j++) { qiuPz(x, ins[j]) } x.positionUpdate() }) } window.clearQiu=() => { ins=[] } window.addEventListener('mousemove', (e) => { windBox2.moveTo(e.clientX) }); (function run() { window.renderQiu() // domain.forEach(x=>x.draw()) requestAnimationFrame(run); })() } function Qiu() { this.x = 100; this.y = 100; this.vX = 1; //一像素 this.vY = 0; this.r = 20; this.sT = new Date().getTime(); this.cT = new Date().getTime(); this.density = 1; this.text = '春风'; this.textColor = ["magenta", "blue", "red"]; this.rv = 0.1; this.rs = [10, 20]; } Qiu.prototype.born = function () { this.x = w-this.r; this.y = h; this.vX = -2 * xFac; this.vY = - 3*xFac; this.draw(); } Qiu.prototype.draw = function () { var radial = ctx.createRadialGradient(this.x, this.y-this.r*.2, 0.75 * this.r, this.x, this.y, this.r); radial.addColorStop(.2, '#ffffff00'); radial.addColorStop(.9, this.textColor[1]); radial.addColorStop(1, this.textColor[2].replace(/%,\.\d{1,2}\)/, "%,.1)")); ctx.fillStyle = radial; ctx.beginPath(); ctx.arc(this.x, this.y, this.r, 0, Math.PI * 2); ctx.fill(); ctx.closePath(); ctx.font = this.r * 2 / 3 + "px Verdana"; // Create gradient var gradient = ctx.createLinearGradient(this.x - this.r, this.y, this.x + this.r, this.y); gradient.addColorStop("0", this.textColor[0]); gradient.addColorStop("0.5", this.textColor[1]); gradient.addColorStop("1.0", this.textColor[2]); // Fill with gradient ctx.fillStyle = gradient; ctx.textAlign = 'center'; ctx.fillText(this.text, this.x,this.y ); //绘制连线 if (hand.flowIn) { ctx.strokeStyle = this.textColor[1]; ctx.lineWidth = .5; ctx.beginPath(); ctx.moveTo(this.x, this.y); ctx.lineTo(hand.x, hand.y); ctx.stroke(); ctx.closePath(); } } Qiu.prototype.erase = function () { // ctx.clearRect(this.x-this.r-2,this.y-this.r-2,this.x+this.r+2,this.y+this.y+2); ctx.clearRect(0, 0, w, h); } Qiu.prototype.speedUpdate = function (dt) {//dt 毫秒 dt = dt / 1000 if ((this.y >= h - this.r && this.vY > 0) || (this.y <= 0 + this.r && this.vY < 0)) this.vY = -this.vY if ((this.x >= w - this.r && this.vX > 0) || (this.x <= 0 + this.r && this.vX < 0)) this.vX = -this.vX speedFun1(this, dt) } Qiu.prototype.positionUpdate = function () { let dT = new Date().getTime() - this.cT; this.x += this.vX * dT / 1000; this.y += this.vY * dT / 1000; if (this.y > h - this.r) this.y = h - this.r this.draw(); this.speedUpdate(dT); if (this.r <= this.rs[1]) this.r += this.rv; this.cT += dT; } function speedFun1(obj, dt) { // if(obj.y+(obj.vY*dt)<h-obj.r){ // obj.vY+=dt*(9.98*yFac) // } domain.forEach(x => { x.eff(obj, dt) }) if (obj.vY != 0) { let dy = Math.abs(obj.vY) * 0.98; if (dy < 1) dy = 0 obj.vY = Math.sign(obj.vY) * dy; } if (obj.vX != 0) { let dx = Math.abs(obj.vX) * 0.99; if (dx < 1) dx = 0; obj.vX = Math.sign(obj.vX) * dx; } } function qiuPz(q1, q2) { let dis = Math.sqrt(Math.pow(q1.x - q2.x, 2) + Math.pow(q1.y - q2.y, 2)) if (dis < q1.r + q2.r) { let s = new Victor(q1.x - q2.x, q1.y - q2.y).normalize(); let v1 = new Victor(q1.vX, q1.vY) let v2 = new Victor(q2.vX, q2.vY) if (v1.clone().subtract(v2).dot(s) < 0) { collide(q1, q2) } } } function willCollide(q1, q2, dt) { let a = q1.x + dt * q1.vX - q2.x let b = q1.y + q1.vY * dt - q2.y let dis = Math.sqrt(Math.pow(a, 2) + Math.pow(b, 2)) if (dis < q1.r + q2.r) { return true; } } function collide(q1, q2) { let m1 = q1.density; let m2 = q2.density; let s = new Victor(q1.x - q2.x, q1.y - q2.y).normalize(); let v1 = new Victor(q1.vX, q1.vY) let v2 = new Victor(q2.vX, q2.vY) let v1s = v1.dot(s.clone().invert()); let v2s = v2.dot(s); let v1sc = (v1s * (m1 - m2) + 2 * m2 * v2s) / (m1 + m2); let v2sc = (v2s * (m2 - m1) + 2 * m1 * v1s) / (m1 + m2); let v1n = v1.dot(s.clone().invert().rotate(Math.PI / 2)) let v2n = v2.dot(s.clone().rotate(Math.PI / 2)) let vv1 = s.clone().multiply(new Victor(v1sc, v1sc)).add(s.clone().rotate(-Math.PI / 2).multiply(new Victor(v1n, v1n))) let vv2 = s.clone().invert().multiply(new Victor(v2sc, v2sc)).add(s.clone().rotate(-Math.PI / 2).multiply(new Victor(v2n, v2n))) q1.vX = vv1.x q1.vY = vv1.y q2.vX = vv2.x q2.vY = vv2.y } function colorWalk2() { let hue = Math.random() * 360; return ['hsla(' + (hue - 45) + ',90%,70%,.8)', 'hsla(' + (hue) + ',90%,90%,.9)', 'hsla(' + (hue + 30) + ',90%,70%,.8)'] } function getDPI() { var arrDPI = new Array(); if (window.screen.deviceXDPI != undefined) { arrDPI[0] = window.screen.deviceXDPI; arrDPI[1] = window.screen.deviceYDPI; } else { var tmpNode = document.createElement("DIV"); tmpNode.style.cssText = "width:1in;height:1in;position:absolute;left:0px;top:0px;z-index:99;visibility:hidden"; document.body.appendChild(tmpNode); arrDPI[0] = parseInt(tmpNode.offsetWidth); arrDPI[1] = parseInt(tmpNode.offsetHeight); tmpNode.parentNode.removeChild(tmpNode); } return arrDPI; } window.addQiu = (text, r) => { let q1 = new Qiu() q1.born(); q1.textColor = colorWalk2(); q1.text = text q1.r = r ins.push(q1); return q1; } window.addEventListener('mousemove', (e) => { hand.x = e.clientX; hand.y = e.clientY; }); window.addEventListener('mousedown', (e) => { hand.flowIn = true; }); window.addEventListener('mouseup', (e) => { hand.flowIn = false; }); //---------------------------------------------------------------- // window.onclick = function(){ // let q1=new Qiu() // q1.born(); // q1.textColor=colorWalk2(); // ins.push(q1); // } } //---------------------------------------------------------------- //保存div内容为png function saveDiv(div) { //1.将div转成svg var divContent = div.innerHTML; let w = div.offsetWidth; let h = div.offsetHeight if (w == 0 || h == 0) { w = div.firstElementChild.offsetWidth h = div.firstElementChild.offsetHeight } var data = "data:image/svg+xml," + "<svg xmlns='http://www.w3.org/2000/svg' width='" + w + "' height='" + h + "'>" + "<foreignObject width='100%' height='100%'>" + "<div xmlns='http://www.w3.org/1999/xhtml' style='font-size:16px;font-family:Helvetica'>" + divContent + "</div>" + "</foreignObject>" + "</svg>"; var img = new Image(); //2.svg转成canvas var canvas = document.createElement('canvas'); //准备空画布 document.body.appendChild(img); img.onload = () => { var dpr = window.devicePixelRatio; canvas.width = img.width; canvas.height = img.height; canvas.style.width = dpr * w + "px" canvas.style.height = dpr * h + "px" var context = canvas.getContext('2d'); //取得画布的2d绘图上下文 context.drawImage(img, 0, 0); var a = document.createElement('a'); let url = canvas.toDataURL('image/png'); window.open(url, '_blank'); console.log(url) a.href = url; //将画布内的信息导出为png图片数据 let titleEl = title a.download = titleEl.innerText + (new Date()).getTime() + ".png"; //设定下载名称 a.click() document.body.removeChild(img) } img.src = data; } let colorTool = { hsla: function (h, s, l, a) { return "hsla(" + h + "," + s + "%," + l + "%," + a + ")"; } } //生产按钮 function newBtn(p, f, left, top, word) { var cibtn = document.createElement("div"); var cibtnBg = document.createElement("div"); cibtnBg.className = 'btnBg' let TextE = document.createElement('span') TextE.innerText = word cibtn.append(TextE) cibtn.className = 'blr-btn' cibtn.append(cibtnBg); cibtn.style.left = left + 'px'; cibtn.style.top = top + 'px'; cibtn.onclick = f; p.append(cibtn) return { bt: cibtn, bg: cibtnBg, tx: TextE } } function sleep(numberMillis) { var now = new Date(); var exitTime = now.getTime() + numberMillis; while (true) { now = new Date(); if (now.getTime() > exitTime) return; } } //---------------------------------------------------------------- //---------------------------------------------------------------- var ban,unattach = !0;function mcDrag(b,c,k){b.onmousedown=function(m){if(!k||m.target==b){var e=c.style.transition;c.style.transition="unset";var d=m.clientX-c.offsetLeft,a=m.clientY-c.offsetTop;document.onmousemove=function(f){var n=f.clientX-d;c.style.top=f.clientY-a+"px";c.style.left=n+"px";document.onmouseup=function(){document.onmousedown=document.onmousemove=null;c.style.transition=e}}}}} function tuoyi(b,c,k,m,e,d){var a=(new Date).getTime();b.onmousedown=function(f){var n=f.clientX,q=f.clientY;a=(new Date).getTime();var r=m();e&&e();document.onmousemove=function(h){var p=h.clientX-n,t=h.clientY-q;200<(new Date).getTime()-a&&c(p,t,r);document.onmouseup=function(){document.onmousemove=null;200>(new Date).getTime()-a&&k(h);d&&d()}}}}function g(b){return document.createElement(b)} function bujie(b){b.classList.add("mc-bujie");setTimeout(function(){b.classList.remove("mc-bujie")},1E3)}function shantishi(b,c,k){b.classList.add(c);setTimeout(function(){b.classList.remove(c)},k)}var LX={wuxian:1,prop:2,bl:3,wb:4}; function MiCan(b,c,k,m){unattach && attachStyle();ban=document.createElement("div");ban.classList.add("mc-b");ban.style.top="200px";ban.style.left="200px";document.body.append(ban);var e=g("div"),d=g("div");d.style.width="100%";ban.append(e);ban.append(d);ban.ti=d;e.classList.add("mc-tou");e.innerText=m;b.forEach(function(a){a[2]==LX.prop?sx(a[0],a[1],k,c,a[3],a[4],a[5]):a[2]==LX.wuxian?wxsx(a[0],a[1],k,c,a[3],a[4]):a[2]==LX.wb?wz(a[0],a[1],k,c):a[2]==LX.bl&&sf(a[0],a[1],k,c)});mcDrag(e,ban,1);return ban} function sx(b,c,k,m,e,d,a){var f=g("div");f.classList.add("mc-sx");ban.ti.append(f);var n=g("div");n.classList.add("mc-title","mc-dh");n.innerText=b;f.append(n);b=g("div");b.style="float: left;width: 170px;height: 30px;";f.append(b);var q=g("div");q.classList.add("mc-sx-op");b.append(q);var r=g("div");r.classList.add("mc-sx-bar");q.append(r);var h=g("input");h.classList.add("mc-sx-input","mc-input","mc-dh");h.value=k(c);b.append(h);var p=g("div");p.classList.add("mc-slider","mc-dh");b.append(p);var t= function(){var l=h.value;l>d?(l=d,bujie(n)):l<e&&(l=e,bujie(n));a&&(l=parseInt(l));h.value=l;r.style.width=q.clientWidth*(l-e)/(d-e)+"px";m(c,l)};tuoyi(p,function(l,v,u){h.value=e+(u+l)/q.clientWidth*(d-e);t()},function(){p.style.display="none";setTimeout(function(){h.focus()},1)},function(){return r.clientWidth},function(){p.classList.add("mc-faguang")},function(){p.classList.remove("mc-faguang")});t();h.onblur=function(){p.style.display="block";t()};return f} function wxsx(b,c,k,m,e,d){function a(l){d&&(l=l.parseInt);h.value=l;m(c,l)}var f=g("div");f.classList.add("mc-sx");ban.ti.append(f);var n=g("div");n.classList.add("mc-title","mc-dh");n.innerText=b;f.append(n);b=g("div");b.style="float: left;width: 170px;height: 30px;";f.append(b);var q=g("div");q.classList.add("mc-sx-op");b.append(q);var r=g("div");r.classList.add("mc-jiantou","mc-z","mc-dh");r.innerText="<";q.append(r);var h=g("input");h.classList.add("mc-sx-input","mc-input","mc-dh");h.style.width= "100px";h.style.top="0px";h.value=k(c);q.append(h);var p=g("div");p.classList.add("mc-jiantou","mc-y","mc-dh");p.innerText=">";q.append(p);var t=g("div");t.classList.add("mc-huakuai-zj","mc-dh");b.append(t);h.onblur=function(){t.style.display="block";a(h.value)};r.onclick=function(){a(h.value-e);shantishi(this,"mc-huodong",500)};p.onclick=function(){a(new Number(h.value)+e);shantishi(this,"mc-huodong",500)};tuoyi(t,function(l,v,u){a(u- -l*e);0>l?(r.classList.add("mc-huodong"),p.classList.remove("mc-huodong")): (p.classList.add("mc-huodong"),r.classList.remove("mc-huodong"))},function(){t.style.display="none";setTimeout(function(){h.focus()},1)},function(){return h.value},function(){q.classList.add("mc-faguang")},function(){q.classList.remove("mc-faguang");r.classList.remove("mc-huodong");p.classList.remove("mc-huodong")})} function wz(b,c,k,m){function e(n){m(c,n);f.value=n}var d=g("div");ban.ti.append(d);d.classList.add("mc-sx");var a=g("div");a.classList.add("mc-title","mc-dh");a.innerText=b;d.append(a);b=g("div");b.style.float="left";b.style.height="100%";d.append(b);d=g("div");d.innerText="\ud83d\udd8a";d.classList.add("mc-tubiao","mc-dh");b.append(d);var f=g("input");f.classList.add("mc-input","mc-dh","mc-bj-danhuang");f.style.width="260px";f.style.textAlign="left";f.value=k(c);b.append(f);f.onblur=function(){m(c, f.value)};d.onclick=function(n){wbsr.hd=e;wbsr.main||initWbsr();xianshi(wbsr.main);wbsr.in.value=f.value}} function sf(b,c,k,m){var e=g("div");e.classList.add("mc-sx");ban.ti.append(e);var d=g("div");d.classList.add("mc-title","mc-dh");d.innerText=b;e.append(d);var a=g("div");a.style="float: left";a.classList.add("mc-title","mc-dh","mc-blue");a.innerText="\u662f";k(c)||(a.innerText="\u5426",a.classList.add("mc-red"),a.classList.remove("mc-blue"));e.append(a);a.onclick=function(){k(c)?(a.classList.add("mc-red"),a.classList.remove("mc-blue"),a.innerText="\u5426",m(c,!1)):(a.classList.remove("mc-red"),a.classList.add("mc-blue"), a.innerText="\u662f",m(c,!0))}}var wbsr={};function xiaoshi(b){b.classList.add("mc-touming");setTimeout(function(){b.classList.add("mc-yincang")},500)}function xianshi(b){b.classList.remove("mc-yincang");b.classList.remove("mc-touming")} function initWbsr(){wbsr.main=g("div");wbsr.main.classList.add("mc-tanchu","mc-dh","mc-yincang","mc-touming");document.body.append(wbsr.main);wbsr.in=g("textarea");wbsr.in.classList.add("mc-wenben");wbsr.main.append(wbsr.in);wbsr.btp=g("div");wbsr.main.append(wbsr.btp);wbsr.quxiao=g("div");wbsr.quxiao.innerText="\u53d6\u6d88";wbsr.quxiao.classList.add("mc-aniu","mc-red");wbsr.quxiao.style.float="left";wbsr.btp.append(wbsr.quxiao);wbsr.queren=g("div");wbsr.queren.innerText="\u786e\u8ba4";wbsr.queren.classList.add("mc-aniu", "mc-blue");wbsr.queren.style.float="right";wbsr.btp.append(wbsr.queren);wbsr.quxiao.onclick=function(){xiaoshi(wbsr.main)};wbsr.queren.onclick=function(){wbsr.hd(wbsr.in.value);xiaoshi(wbsr.main)};mcDrag(wbsr.main,wbsr.main,1)}; function attachStyle(){var a=g("style");document.head.append(a);a.innerText="\n .mc-sx{margin:5px;height:30px;float:left}.mc-tou{width:100%;background-color:rgb(4 4 45);height:25px;text-align:center;line-height:25px;color:cornsilk;font-size:15px}.mc-input{height:24px;color:cornsilk;background-color:inherit;display:block;background:transparent;border:none;padding:3px 10px;text-align:center;font-size:16px}.mc-bj-danhuang{background-color:rgb(68 56 115)}.mc-sx-input{width:150px;float:left;position:relative;top:-30px}.mc-input:focus{border:0px;outline:none;background:rgba(42,165,104,0.425)}.mc-sx-bar{margin: unset;background-color:rgb(163,85,241);width:30px;height:100%}.mc-b{position:fixed;width:800px;background-color:#0a043adb;margin:0;box-shadow:0px 0px 9px 2px#3c35357a;transition:0.5s}.mc-title{background-color:rgb(58 55 110);float:left;line-height:30px;font-size:18px;padding:0px 10px;color:#857cc2}.mc-sx-op{background-color:rgb(86 71 146);height:30px;width:170px}.mc-slider{position:relative;top:-30px;width:170px;height:30px;user-select:none}.mc-huakuai-zj{position:relative;top:-30px;left:25px;width:120px;height:30px;user-select:none}.mc-huakuai-zj:hover{cursor:e-resize}.mc-dh{transition:0.5s linear}.mc-slider:hover{cursor:e-resize}.mc-faguang{box-shadow:0px 0px 8px 3px#ffffffd6}.mc-bujie{background-color:red}.mc-jiantou{background-color:rgb(128,83,173);width:25px;height:100%;font-size:30px;color:#d1c1e0;line-height:26px;cursor:pointer;user-select:none}.mc-z{float:left}.mc-y{float:right}.mc-huodong{background-color:rgb(219,165,245);color:cornsilk}.mc-wenben{border:0;background-color:rgba(233,233,233,0.98);width:355px;height:100px;padding:10px;resize:both;font-size:15px;color:rgb(66,66,64)}.mc-wenben:focus{border:none;outline:none}.mc-tubiao{float:left;height:100%;width:30px;background-color:rgb(89,82,147);color:cornsilk;font-size:18px;line-height:30px;text-align:center;transition:0.5s}.mc-tubiao:hover{cursor:pointer;background-color:rgb(156,127,238)}.mc-aniu{height:30px;line-height:30px;font-size:16px;transition:.4s linear;cursor:pointer;padding:3px 10px;margin:5px;color:cornsilk;user-select:none}.mc-red{cursor:pointer;background-color:rgb(224,68,128)}.mc-blue{cursor:pointer;background-color:rgb(35,245,193)}.mc-red:hover{background-color:rgb(255,0,98)}.mc-blue:hover{background-color:rgb(0,102,255)}.mc-tanchu{position:fixed;background-color:rgba(233,230,218,0.801);top:100px;left:200px;z-index:99}.mc-yincang{display:none}.mc-touming{opacity:0}\n "}; geo(); })();
QingJ © 2025
镜像随时可能失效,请加Q群300939539或关注我们的公众号极客氢云获取最新地址