// ==UserScript== // @name 富聊审核脚本 // @namespace http://tampermonkey.net/ // @version 18 // @description try to make work easy // @author yinchengnuo // @match http://*/* // @grant none // @downloadURL https://update.greasyfork.icu/scripts/375040/%E5%AF%8C%E8%81%8A%E5%AE%A1%E6%A0%B8%E8%84%9A%E6%9C%AC.user.js // @updateURL https://update.greasyfork.icu/scripts/375040/%E5%AF%8C%E8%81%8A%E5%AE%A1%E6%A0%B8%E8%84%9A%E6%9C%AC.meta.js // ==/UserScript== /* jshint -W097 */ /* 功能概述 */ /* 1 常规文字进审提醒 回车提交 */ /* 2 截屏UI优化 键盘操作 数量统计 推流无弹窗 可选的双击换一批/右键推流/隐藏按钮/图片尺寸 */ /* 3 重点流UI优化 批量叉掉无弹窗 可选的双击换一批 */ /* 4 坐等UI优化 悬浮按钮 可选的双击换一批 */ (function($) { (function($, window, document, undefined) { $(function() { //插件制作 $.fn.Tdrag = function(opt) { var call = { scope: null, //父级 grid: null, //网格 axis: "all", //上下或者左右 pos: false, //是否记住位置 handle: null, //手柄 moveClass: "tezml", //移动时不换位加的class dragChange: false, //是否开启拖拽换位 changeMode: "point", //point & sort cbStart: function() {}, //移动前的回调函数 cbMove: function() {}, //移动中的回调函数 cbEnd: function() {}, //移动结束时候的回调函数 random: false, //是否自动随机排序 randomInput: null, //点击随机排序的按钮 animation_options: { //运动时的参数 duration: 800, //每次运动的时间 easing: "ease-out" //移动时的特效,ease-out、ease-in、linear }, disable: false, //禁止拖拽 disableInput: null //禁止拖拽的按钮 }; var dragfn = new Dragfn(this, opt); if (opt && $.isEmptyObject(opt) == false) { dragfn.options = $.extend(call, opt); } else { dragfn.options = call; } dragfn.firstRandom = true; var ele = dragfn.$element; dragfn.pack(ele, false); if (dragfn.options.randomInput != null) { $(dragfn.options.randomInput).bind("click", function() { dragfn.pack(ele, true); }) } //加载拓展jquery的函数 dragfn.loadJqueryfn() }; //依赖构造函数 var Dragfn = function(ele, opt) { this.$element = ele; this.options = opt; }; //构造函数方法 Dragfn.prototype = { init: function(obj) { var self = this; self.ele = self.$element; self.handle = $(obj); //手柄 self.options = self.options; self.disable = self.options.disable; self._start = false; self._move = false; self._end = false; self.disX = 0; self.disY = 0; self.zIndex = 1000; self.moving = false; self.moves = ""; //父级 self.box = $.type(self.options.scope) === "string" ? self.options.scope : null; //手柄 if (self.options.handle != null) { self.handle = $(obj).find(self.options.handle); } //三个事件 self.handle.on("mousedown", function(ev) { self.start(ev, obj); obj.setCapture && obj.setCapture(); return false; }); if (self.options.dragChange) { $(obj).on("mousemove", function(ev) { self.move(ev, obj); }); $(obj).on("mouseup", function(ev) { self.end(ev, obj); }); } else { $(document).on("mousemove", function(ev) { self.move(ev, obj); }); $(document).on("mouseup", function(ev) { self.end(ev, obj); }); } }, //jquery调取函数时候用 loadJqueryfn: function() { var self = this; $.extend({ //返回按照index排序的回调函数 sortBox: function(obj) { var arr = []; for (var s = 0; s < $(obj).length; s++) { arr.push($(obj).eq(s)); } for (var i = 0; i < arr.length; i++) { for (var j = i + 1; j < arr.length; j++) { if (Number(arr[i].attr("index")) > Number(arr[j].attr("index"))) { var temp = arr[i]; arr[i] = arr[j]; arr[j] = temp; } } } return arr }, //随机排序函数 randomfn: function(obj) { self.pack($(obj), true); }, //开启拖拽 disable_open: function() { self.disable = false; }, //禁止拖拽 disable_cloose: function() { self.disable = true; } }); }, toDisable: function() { var self = this; if (self.options.disableInput != null) { $(self.options.disableInput).bind("click", function() { if (self.disable == true) { self.disable = false } else { self.disable = true } }) } }, start: function(ev, obj) { var self = this; self.moved = obj; if (self.disable == true) { return false } self._start = true; var oEvent = ev || event; self.disX = oEvent.clientX - obj.offsetLeft; self.disY = oEvent.clientY - obj.offsetTop; $(obj).css("zIndex", self.zIndex++); self.options.cbStart(); }, move: function(ev, obj) { var self = this; if (self._start != true) { return false } if (obj != self.moved) { return false } self._move = true; var oEvent = ev || event; var l = oEvent.clientX - self.disX; var t = oEvent.clientY - self.disY; //有父级限制 if (self.box != null) { var rule = self.collTestBox(obj, self.box); if (l > rule.lmax) { l = rule.lmax; } else if (l < rule.lmin) { l = rule.lmin; } if (t > rule.tmax) { t = rule.tmax; } else if (t < rule.tmin) { t = rule.tmin; } } if (self.options.axis == "all") { obj.style.left = self.grid(obj, l, t).left + 'px'; obj.style.top = self.grid(obj, l, t).top + 'px'; } else if (self.options.axis == "y") { obj.style.top = self.grid(obj, l, t).top + 'px'; } else if (self.options.axis == "x") { obj.style.left = self.grid(obj, l, t).left + 'px'; } /* if(self.options.changeWhen=="move") { if (self.options.changeMode == "sort") { self.sortDrag(obj); } else if (self.options.changeMode == "point") { self.pointmoveDrag(obj); } }else{ self.moveAddClass(obj); }*/ if (self.options.pos == true) { self.moveAddClass(obj); } self.options.cbMove(obj, self); }, end: function(ev, obj) { var self = this; if (self._start != true) { return false } if (self.options.changeMode == "sort" && self.options.pos == true) { self.sortDrag(obj); } else if (self.options.changeMode == "point" && self.options.pos == true) { self.pointDrag(obj); } if (self.options.pos == true) { self.animation(obj, self.aPos[$(obj).attr("index")]); } self.options.cbEnd(); if (self.options.handle != null) { $(obj).find(self.options.handle).unbind("onmousemove"); $(obj).find(self.options.handle).unbind("onmouseup"); } else { $(obj).unbind("onmousemove"); $(obj).unbind("onmouseup"); } obj.releaseCapture && obj.releaseCapture(); self._start = false; }, //算父级的宽高 collTestBox: function(obj, obj2) { var self = this; var l1 = 0; var t1 = 0; var l2 = $(obj2).innerWidth() - $(obj).outerWidth(); var t2 = $(obj2).innerHeight() - $(obj).outerHeight(); return { lmin: l1, //取的l最小值 tmin: t1, //取的t最小值 lmax: l2, //取的l最大值 tmax: t2 //取的t最大值 } }, //算父级宽高时候干掉margin grid: function(obj, l, t) { //cur:[width,height] var self = this; var json = { left: l, top: t }; if ($.isArray(self.options.grid) && self.options.grid.length == 2) { var gx = self.options.grid[0]; var gy = self.options.grid[1]; json.left = Math.floor((l + gx / 2) / gx) * gx; json.top = Math.floor((t + gy / 2) / gy) * gy; return json } else if (self.options.grid == null) { return json } else { console.log("grid参数传递格式错误"); return false } }, findNearest: function(obj) { var self = this; var iMin = new Date().getTime(); var iMinIndex = -1; var ele = self.ele; for (var i = 0; i < ele.length; i++) { if (obj == ele[i]) { continue; } if (self.collTest(obj, ele[i])) { var dis = self.getDis(obj, ele[i]); if (dis < iMin) { iMin = dis; iMinIndex = i; } } } if (iMinIndex == -1) { return null; } else { return ele[iMinIndex]; } }, getDis: function(obj, obj2) { var self = this; var l1 = obj.offsetLeft + obj.offsetWidth / 2; var l2 = obj2.offsetLeft + obj2.offsetWidth / 2; var t1 = obj.offsetTop + obj.offsetHeight / 2; var t2 = obj2.offsetTop + obj2.offsetHeight / 2; var a = l2 - l1; var b = t1 - t2; return Math.sqrt(a * a + b * b); }, collTest: function(obj, obj2) { var self = this; var l1 = obj.offsetLeft; var r1 = obj.offsetLeft + obj.offsetWidth; var t1 = obj.offsetTop; var b1 = obj.offsetTop + obj.offsetHeight; var l2 = obj2.offsetLeft; var r2 = obj2.offsetLeft + obj2.offsetWidth; var t2 = obj2.offsetTop; var b2 = obj2.offsetTop + obj2.offsetHeight; if (r1 < l2 || r2 < l1 || t2 > b1 || b2 < t1) { return false; } else { return true; } }, //初始布局转换 pack: function(ele, click) { var self = this; self.toDisable(); if (self.options.pos == false) { for (var i = 0; i < ele.length; i++) { $(ele[i]).css("position", "fixed"); $(ele[i]).css("margin", "0"); self.init(ele[i]); } } else if (self.options.pos == true) { var arr = []; if (self.options.random || click) { while (arr.length < ele.length) { var n = self.rnd(0, ele.length); if (!self.finInArr(arr, n)) { //没找到 arr.push(n); } } } if (self.options.random == false || click != true) { var n = 0; while (arr.length < ele.length) { arr.push(n); n++ } } //如果是第二次以后随机列表,那就重新排序后再随机,因为我智商不够使,不会排了 if (self.firstRandom == false) { var sortarr = []; var n = 0; while (sortarr.length < ele.length) { sortarr.push(n); n++ } for (var i = 0; i < ele.length; i++) { $(ele[i]).attr("index", sortarr[i]); $(ele[i]).css("left", self.aPos[sortarr[i]].left); $(ele[i]).css("top", self.aPos[sortarr[i]].top); } } //布局转化 self.aPos = []; if (self.firstRandom == false) { //不是第一次 for (var j = 0; j < ele.length; j++) { self.aPos[j] = { left: ele[$(ele).eq(j).attr("index")].offsetLeft, top: ele[$(ele).eq(j).attr("index")].offsetTop }; } } else { //第一次 for (var j = 0; j < ele.length; j++) { self.aPos[j] = { left: ele[j].offsetLeft, top: ele[j].offsetTop }; } } //第二个循环布局转化 for (var i = 0; i < ele.length; i++) { $(ele[i]).attr("index", arr[i]); $(ele[i]).css("left", self.aPos[arr[i]].left); $(ele[i]).css("top", self.aPos[arr[i]].top); $(ele[i]).css("position", "absolute"); $(ele[i]).css("margin", "0"); self.init(ele[i]); } self.firstRandom = false; } }, //移动时候加class moveAddClass: function(obj) { var self = this; var oNear = self.findNearest(obj); $(self.$element).removeClass(self.options.moveClass); if (oNear && $(oNear).hasClass(self.options.moveClass) == false) { $(oNear).addClass(self.options.moveClass); } }, //给li排序 sort: function() { var self = this; var arr_li = []; for (var s = 0; s < self.$element.length; s++) { arr_li.push(self.$element[s]); } for (var i = 0; i < arr_li.length; i++) { for (var j = i + 1; j < arr_li.length; j++) { if (Number($(arr_li[i]).attr("index")) > Number($(arr_li[j]).attr("index"))) { var temp = arr_li[i]; arr_li[i] = arr_li[j]; arr_li[j] = temp; } } } return arr_li; }, //点对点的方式换位 pointDrag: function(obj) { var self = this; //先拍序 var oNear = self.findNearest(obj); if (oNear) { self.animation(obj, self.aPos[$(oNear).attr("index")]); self.animation(oNear, self.aPos[$(obj).attr("index")]); var tmp; tmp = $(obj).attr("index"); $(obj).attr("index", $(oNear).attr("index")); $(oNear).attr("index", tmp); $(oNear).removeClass(self.options.moveClass); } else if (self.options.changeWhen == "end") { self.animation(obj, self.aPos[$(obj).attr("index")]); } }, //排序的方式换位 sortDrag: function(obj) { var self = this; //先拍序 var arr_li = self.sort(); //换位置 var oNear = self.findNearest(obj); if (oNear) { if (Number($(oNear).attr("index")) > Number($(obj).attr("index"))) { //前换后 var obj_tmp = Number($(obj).attr("index")); $(obj).attr("index", Number($(oNear).attr("index")) + 1); for (var i = obj_tmp; i < Number($(oNear).attr("index")) + 1; i++) { self.animation(arr_li[i], self.aPos[i - 1]); self.animation(obj, self.aPos[$(oNear).attr("index")]); $(arr_li[i]).removeClass(self.options.moveClass); $(arr_li[i]).attr("index", Number($(arr_li[i]).attr("index")) - 1); } } else if (Number($(obj).attr("index")) > Number($(oNear).attr("index"))) { //后换前 var obj_tmp = Number($(obj).attr("index")); $(obj).attr("index", $(oNear).attr("index")); for (var i = Number($(oNear).attr("index")); i < obj_tmp; i++) { self.animation(arr_li[i], self.aPos[i + 1]); self.animation(obj, self.aPos[Number($(obj).attr("index"))]); $(arr_li[i]).removeClass(self.options.moveClass); $(arr_li[i]).attr("index", Number($(arr_li[i]).attr("index")) + 1); } } } else { self.animation(obj, self.aPos[$(obj).attr("index")]); } }, //运动函数(后期再加参数) animation: function(obj, json) { var self = this; //考虑默认值 var options = self.options.animation_options; /*|| {}; options.duration=self.options.animation_options.duration || 800; options.easing=options.easing.duration.easing || 'ease-out';*/ var self = this; var count = Math.round(options.duration / 30); var start = {}; var dis = {}; for (var name in json) { start[name] = parseFloat(self.getStyle(obj, name)); if (isNaN(start[name])) { switch (name) { case 'left': start[name] = obj.offsetLeft; break; case 'top': start[name] = obj.offsetTop; break; case 'width': start[name] = obj.offsetWidth; break; case 'height': start[name] = obj.offsetHeight; break; case 'marginLeft': start[name] = obj.offsetLeft; break; case 'borderWidth': start[name] = 0; break; //... } } dis[name] = json[name] - start[name]; } var n = 0; clearInterval(obj.timer); obj.timer = setInterval(function() { n++; for (var name in json) { switch (options.easing) { case 'linear': var a = n / count; var cur = start[name] + dis[name] * a; break; case 'ease-in': var a = n / count; var cur = start[name] + dis[name] * a * a * a; break; case 'ease-out': var a = 1 - n / count; var cur = start[name] + dis[name] * (1 - a * a * a); break; } if (name == 'opacity') { obj.style.opacity = cur; obj.style.filter = 'alpha(opacity:' + cur * 100 + ')'; } else { obj.style[name] = cur + 'px'; } } if (n == count) { clearInterval(obj.timer); options.complete && options.complete(); } }, 30); }, getStyle: function(obj, name) { return (obj.currentStyle || getComputedStyle(obj, false))[name]; }, //随机数 rnd: function(n, m) { return parseInt(Math.random() * (m - n) + n); }, //在数组中找 finInArr: function(arr, n) { for (var i = 0; i < arr.length; i++) { if (arr[i] == n) { //存在 return true; } } return false; } } }) })($, window, document); //进审提醒功能 const $refresherInsert = (bool, click) => { //插入自定刷新器 $( '
' ).appendTo("body"); const showTime = $(".refresherCenter"); let timer = null; //定义自定刷新器点击事件 $(".refresh").on("click", "button", function() { if (this.className === "refresherLeft") { clearInterval(timer); const time = parseInt(showTime.val()); if (time && time >= 10) { document.cookie = `time=${time};`; let value = time; timer = setInterval(() => { value--; showTime.val(value); if (value === 0) { if (click) { click.click(); value = document.cookie.match(/time=\d+/g)[0].match(/\d+/g)[0] } else { location.reload(); } } }, 1000); } else { alert("请输入大于等于10的纯数字"); showTime.val("10"); } } else if (this.className === "refresherRight") { clearInterval(timer); showTime.val(""); document.cookie = "time=0;"; } }); //使用说明 $(".refresh").on("contextmenu", () => { alert( " 1 当前自动刷新器可在富聊后台审核系统的部分页面上使用,设定一个不小于10的数字作为自动刷新间隔。不建议过大。设定时间之后点击ON按钮,开始进入自动刷新模式。自动刷新器上面显示的数字就是距离下次页面刷新的时间。点击OFF按钮终止自动刷新。如果当前浏览器打开了多个页面都在使用当前自动刷新器,则对一个页面的刷新间隔修改会影响所有正在使用当前定时刷新器的刷新间隔。(既如果点击了某一个正在运行自的自动刷新器的OFF按钮,则所有正在使用当前定时刷新器的页面会在当前时间间隔结束时退出自动刷新模式。)\n 2 当前自动刷新器的存在主要是为了配合在常规和文字类部分模块审核时增加的进审提醒功能。当设定了固定的自动刷新时间,页面刷新后,如果有新的内容进审则当前选项卡的title会一直闪烁显示进审,提示当前页面有新内容进审。同时自动刷新不会停止。当点击了正在闪烁提醒的选项卡时,自动刷新自动停止,只有当当前进审内容提交之后,自动刷新模式才会重新开启,时间为之前设置的时间间隔。设置了进审提醒的模块有所有常规, 封面审核,私聊广告消息,敏感词报警处理。\n 3 在使用进审提醒时,一些有下级的模块(如头像审核中有“已认证”和“其他”两个下级模块), 应当将这些下级模块都在浏览器的新选项卡打开,(视频介绍和敏感词报警的各四个下级模块也不例外),否则会影响提醒效果!" ); return false; }); //刷新后根据设定值继续刷新 if (document.cookie.match(/time=\d+/g)) { const time = parseInt( document.cookie.match(/time=\d+/g)[0].match(/\d+/g)[0] ); if (time) { let value = time; showTime.val(value); timer = setInterval(() => { value--; showTime.val(value); if (value === 0) { location.reload(); } }, 1000); } } //进审提醒,选定选项卡后停止刷新 if (bool) { const title = $("title").html(); let i = 0; setInterval(function() { if (i % 2 == 0) { $("title").html(title); } else { $("title").html("进审"); } i++; if (document.hidden === false) { clearInterval(timer); } }, 500); } }; //设置直播截屏图片尺寸 const setSize = width => { let bite = 1.8; $("img").filter(function(i, e) { if (e.width > 100) { e.style.width = width + "px"; e.style.height = width * bite + "px"; } else { e.style.float = "right"; e.style.width = "10x"; } }); }; //设置直播截屏按钮尺寸 const setButtonSize = size => { $("table input:visible") .css({ width: size / 3 + "px", padding: "0", margin: "0", float: "left" }) .filter(function(i, e) { if ( e.value == "荐" || e.value == "拉黑" || e.value == "取荐" || e.value == "B级" ) { e.style.display = "none"; } else if (e.value == "推流" || e.value == "禁播") { e.style.width = size / 3 + "px"; e.style.float = "right"; } }); }; //设置直播截屏昵称尺寸 const setTitleSize = size => { $("tbody tr:nth-child(2) td a") .css({ display: "inline-block", width: size / 3 - 6 + "px", height: "12px", "line-height": "12px", overflow: "hidden" }) .each(function(i, e) { $(e) .parent() .parent() .parent() .attr("title", $(e).html()); }); }; //回车提交功能 const enterLogin = btn => { $(document).one("keydown", function(e) { if (e.key === "Enter") { btn.click(); } }); }; //取消动画功能 const cancelAnimate = () => { $(":animated").stop(true, true); }; //推流成功后取消推流弹窗记录审核记录 const retoperateEmpasisUser = response => { var ret = eval("(" + response.responseText + ")"); var roomid = ret.roomid; var userid = ret.userid; if (ret.res == 1) { $("#empasis_" + userid + "_" + roomid).val(1); $("#div_" + userid + "_" + roomid) .find("table input:button") .each(function(i, e) { if (e.value == "推流") { $(e) .css("color", "red") .val("已推"); } }); $(".success").slideDown(66, () => { setTimeout(() => { $(".success").slideUp(66); }, 222); }); } else { alert("操作失败,请关闭插件联系成诺"); } }; //去掉兼容的Ajax对象 const Ajax = { xmlhttp: function() { return new XMLHttpRequest(); } }; //Ajax的请求方法 Ajax.Request = function() { if (arguments.length < 2) return; var para = { asynchronous: true, method: "GET", parameters: "" }; for (var key in arguments[1]) { para[key] = arguments[1][key]; } var _x = Ajax.xmlhttp(); var _url = arguments[0]; if (para["parameters"].length > 0) { para["parameters"] += "&_="; } if (para["method"].toUpperCase() == "GET") { _url += (_url.match(/\?/) ? "&" : "?") + para["parameters"]; } _x.open(para["method"].toUpperCase(), _url, para["asynchronous"]); _x.onreadystatechange = function() { if (_x.readyState == 4) { if (_x.status == 200) para["onComplete"] ? para["onComplete"](_x) : ""; else { para["onError"] ? para["onError"](_x) : ""; } } }; if (para["method"].toUpperCase() == "POST") _x.setRequestHeader("Content-Type", "application/x-www-form-urlencoded"); for (var ReqHeader in para["setRequestHeader"]) { _x.setRequestHeader(ReqHeader, para["setRequestHeader"][ReqHeader]); } _x.send( para["method"].toUpperCase() == "POST" ? para["postBody"] ? para["postBody"] : para["parameters"] : null ); return _x; }; //推流 const addEmpasisUser = (roomid, userid) => { if (roomid == null || roomid <= 0) { alert("直播结束了"); return; } if (userid == null || userid <= 0) { alert("直播结束了"); return; } var arrs = "&roomid=" + roomid + "&userid=" + userid; var myAjax = new Ajax.Request( "videoLiveAuditAction!addEmpasisUser.action", { method: "post", parameters: arrs, onComplete: retoperateEmpasisUser, onError: error } ); }; //重写叉掉重点流的回调函数 const retoperateListOne = response => { var ret = eval("(" + response.responseText + ")"); //得到回执参数 var oldrid = ret.roomid; var uid = ret.userid; var roomids = ret.roomids; if (ret.res != 1 || ret.list == null || ret.list.length == 0) { $("#div_" + uid + "_" + oldrid) .removeClass("marked") .hide(); if (_Xlistturn < _Xlistnode.length) { $(".showNum").html( "本批次剩余" + (_Xlistnode.length - _Xlistturn) + "个" ); _Xlistnode[_Xlistturn].click(); _Xlistturn++; } else if (_Xlistturn == _Xlistnode.length) { $(".showNum") .html("") .hide(); $(".X")[0].onclick = X; _Xlistnode = []; _Xlistturn = 0; } $(".listNull").slideDown(66, () => { setTimeout(() => { $(".listNull").slideUp(66); }, 222); $("table tr:nth-child(4) a").show(); }); return; } //新视频地址与新容器 var stream_url = ""; var stream_url1 = ""; var stream_url2 = ""; var nowuid = ""; var nowroomid = ""; var nowuid1 = ""; var nowuid2 = ""; //页面内容绑定 var table = ""; //循环列表 for (var i = 0; i < ret.list.length; i++) { var obj = ret.list[i]; //绑定视频数据 nowuid = obj.userid; nowroomid = obj.roomid; nowuid1 = obj.userid1; nowuid2 = obj.userid2; stream_url = obj.stream_url; stream_url1 = obj.stream_url1; stream_url2 = obj.stream_url2; if (("," + roomids + ",").indexOf("," + obj.roomid + ",") > -1) { continue; } //去除释放的视频 房间号 roomids = ("," + roomids + ",").replace("," + oldrid + ",", ","); //增加新的房间号 roomids = roomids + obj.roomid; //去除第一个,号 if (roomids.length > 0) { roomids = roomids.substring(1, roomids.length); } //singleRef(${obj.userid}, ${obj.roomid}, 1) table = `
${ obj.name.length > 6 ? obj.name.substring(0, 6) : obj.name } ${ obj.CharmLevel > 0 && obj.CharmLevel > obj.VipLevel ? "M" + obj.CharmLevel + " " : "V" + obj.VipLevel + " " } ${obj.sex == 0 ? "女" : "男"} ${obj.roomrs.toString().fontcolor("blue")}人 ${obj.live_channel == 1 ? "才" : ""}
${obj.remarkinfo} 拉黑
待定
`; if ( obj.userid1 != null && obj.userid1 != "" && obj.stream_url1 != null && obj.stream_url1 != "" ) { table += `
${ obj.name1.length > 6 ? obj.name1.substring(0, 6) : obj.name1 } ${ obj.CharmLevel1 > 0 && obj.CharmLevel1 > obj.VipLevel1 ? "M" + obj.CharmLevel1 + " " : "V" + obj.VipLevel1 + " " } ${obj.sex1 == 0 ? "男" : "女"} 位置1 ${obj.roomrs.toString().fontcolor("blue")}人
${obj.remarkinfo} 拉黑 PK
`; } if ( obj.userid2 != null && obj.userid2 != "" && obj.stream_url2 != null && obj.stream_url2 != "" ) { table += `
${ obj.name2.length > 6 ? obj.name2.substring(0, 6) : obj.name2 } ${ obj.CharmLevel1 > 0 && obj.CharmLevel1 > obj.VipLevel1 ? "M" + obj.CharmLevel1 + " " : "V" + obj.VipLevel1 + " " } ${obj.sex2 == 0 ? "男" : "女"} 位置1 ${obj.roomrs.toString().fontcolor("blue")}人
${obj.remarkinfo} 拉黑 PK
`; } //获得页面所有绑定房间号 $("#roomids").val(roomids); break; } //没有绑定到数据 返回空 if (table == "" || table == null) { $("#div_" + uid + "_" + oldrid).hide(); setTimeout(() => { $(".listNull").slideUp(66); }, 222); return; } //绑定数据 $("#div_" + uid + "_" + oldrid) .html(table) .removeClass("marked") .css("outline", "none"); $("#div_" + uid + "_" + oldrid).attr( "id", "div_" + nowuid + "_" + nowroomid ); $("table tr:nth-child(4) a").show(); if (_Xlistturn < _Xlistnode.length) { $(".showNum").html( "本批次剩余" + (_Xlistnode.length - _Xlistturn) + "个" ); _Xlistnode[_Xlistturn].click(); _Xlistturn++; } else if (_Xlistturn == _Xlistnode.length) { $(".showNum") .html("") .hide(); $(".X")[0].onclick = X; _Xlistnode = []; _Xlistturn = 0; } //绑定视频数据 if ( nowuid != null && nowuid != "" && stream_url != "" && stream_url != null ) { let player = new window.parent.qcVideo.Player( "video_" + nowuid + "_" + nowroomid, { width: 153, height: 270.81, live_url: "" + stream_url + "", volume: 0 } ); } if ( nowuid1 != null && nowuid1 != "" && stream_url1 != "" && stream_url1 != null ) { let player = new window.parent.qcVideo.Player( "video_" + nowuid1 + "_" + nowroomid, { width: 153, height: 270.81, live_url: "" + stream_url1 + "", volume: 0 } ); } if ( nowuid2 != null && nowuid2 != "" && stream_url2 != "" && stream_url2 != null ) { let player = new window.parent.qcVideo.Player( "video_" + nowuid2 + "_" + nowroomid, { width: 153, height: 270.81, live_url: "" + stream_url2 + "", volume: 0 } ); } }; //叉 const singleRef = (userid, roomid, type, mode) => { if (roomid.length <= 0 || userid.length <= 0) { return; } var roomids = $("#roomids").val(); var arrs = "roomid=" + roomid + "&userid=" + userid + "&roomids=" + roomids + "&type=" + type; if (mode == 1) { new Ajax.Request( "videoLiveAuditAction!getvideoliveFlowAuditListSinglejson.action", { method: "post", parameters: arrs, onComplete: retoperateListOne, onError: error } ); } else if (mode == 2) { new Ajax.Request( "videoLiveAuditAction!getvideoliveFlowAuditListSinglejson.action", { method: "post", parameters: arrs, onComplete: retoperateListTwo, onError: error } ); } }; //叉掉重点流后取消队列无人弹窗提示,取消队列有人时的渲染,定义当前批量叉数量,根据数量判断是否是最后一次请求成功,成功后刷新页面 let _Xlistturn = 0; let _Xlistnode = []; const retoperateListTwo = response => { var ret = eval("(" + response.responseText + ")"); var oldrid = ret.roomid; var uid = ret.userid; var roomids = ret.roomids; if (ret.res != 1 || ret.list == null || ret.list.length == 0) { $("#div_" + uid + "_" + oldrid) .removeClass("marked") .hide(); _Xlistturn++; $(".showNum").html( "本批次剩余" + (_Xlistnode.length - _Xlistturn) + "个" ); if (_Xlistnode.length == _Xlistturn) { $(".showNum").hide(); _Xlistturn = 0; _Xlistnode = []; $(".X")[0].onclick = X; } $(".listNull").slideDown(66, () => { setTimeout(() => { $(".listNull").slideUp(66); }, 222); }); return; } _Xlistturn++; $(".showNum").html("本批次剩余" + (_Xlistnode.length - _Xlistturn) + "个"); $("#div_" + uid + "_" + oldrid) .removeClass("marked") .hide(); if (_Xlistnode.length == _Xlistturn) { $(".showNum") .css("width", "200px") .css("margin-left", "-100px") .html("加载等待中的直播队列"); $(".btn_blue") .first() .click(); } }; var X = () => { $(".X")[0].onclick = null; if ($(".marked").length) { if ($("#modeOne").attr("checked")) { //模式一 $(".marked tr:nth-child(4) td a").each((i, e) => { _Xlistnode.push(e); }); $(".showNum") .html("本批次剩余" + _Xlistnode.length + "个") .show(); _Xlistnode[_Xlistturn].click(); _Xlistturn++; } else if ($("#modeTwo").attr("checked")) { //模式二 _Xlistnode = $(".marked tr:nth-child(4) td a"); $(".showNum") .html("本批次剩余" + _Xlistnode.length + "个") .show(); _Xlistnode.each(function(i, e) { let data = this.parentNode.parentNode.parentNode.parentNode.parentNode.id.split( "_" ); singleRef(data[1], data[2], 1, 2); }); } else { alert("请选择批量X模式!!!"); } } else { $(".btn_blue") .first() .click(); } }; //重点流IU渲染 const rander = (width, height) => { $("span").each(function(i, e) { if (e.innerHTML === "才艺") { e.innerHTML = "才"; } else if (e.innerHTML === "PK") { e.innerHTML = ""; } }); setTimeout(() => { $("object") .attr("width", width) .attr("height", height); $("embed") .attr("width", width) .attr("height", height); $(".content td").css("padding", "0"); $('div[id^="div"]:visible') .css("float", "none") .css("display", "inline-block") .css("min-height", "260px"); $('.content_div>table div[id^="div"]>table').css("width", "153px"); $(".content") .css("margin-right", "0px") .css("margin-bottom", "0px"); $('.content_div>table div[id^="div"]>table tr:nth-child(4) td') .children(':visible:not("a")') .css("float", "left") .css("width", "43px") .css("margin", "0"); $('.content_div>table div[id^="div"]>table tr:nth-child(2) a') .css("float", "left") .css("width", "60px") .css("white-space", "nowrap") .css("overflow", "hidden"); $('.content_div>table div[id^="div"]>table tr:nth-child(4) td') .children("a") .css("float", "left"); $('.content_div>table div[id^="div"]>table tr:nth-child(4) td img') .css("width", "20px") .css("height", "20px"); $('.content_div>table div[id^="div"]>table tr:nth-child(4) a').attr( "onclick", "" ); }, 300); }; //小视频视频介绍弹出可拖动播放窗口 const openRight = (src, right, speed) => { if ($('#rightVideo')[0]) { $('#rightVideo')[0].pause(); } $('#rightWrapper').remove(); $('body').append(`
×${speed}×
`); $('#rightVideo')[0].playbackRate = speed; $('#rightVideo')[0].play(); $("#rightWrapper").Tdrag(); $('#rightWrapper>video')[0].onended = () => { $('#rightWrapper>video')[0].pause(); $('#rightWrapper').remove(); }; $('#rightClose').click(() => { $('#rightWrapper>video')[0].pause(); $('#rightWrapper').remove(); }) } const videoLanguage = () => { videojs.addLanguage('zh-CN', { "You aborted the media playback": "直播结束了", "A network error caused the media download to fail part-way.": "直播结束了", "The media could not be loaded, either because the server or network failed or because the format is not supported.": "直播结束了", "The media playback was aborted due to a corruption problem or because the media used features your browser did not support.": "直播结束了" }); //设置video.js语言 } //部分(常规文字)页面进审提醒 if ( location.href.match(/userHeadPicAction!userHeadCheckWomanRenzhen/g) || location.href.match(/userHeadPicAction!userHeadCheckAll/g) || location.href.match(/auditUserAciton!photoNoneblogindex/g) || location.href.match(/groupChatPicAction!listUntreated/g) || location.href.match(/groupAction!auditindex/g) || location.href.match(/videoLivePic!liveAutoReviewList/g) || location.href.match(/userFilterwordAction!index/g) || location.href.match(/videoFile!videoFileAuditList/g) ) { if (location.href.match(/videoFile!videoFileAuditList/g)) { $('input[value="拉黑"]').after(''); $('.openright-now').click((e) => { openRight($(e.target).parent().find('a').eq(1).attr('href') ? $(e.target).parent().find('a').eq(1).attr('href') : $(e.target).parent().parent().prev().find('video').eq(0).attr('src'), 123, $(e.target).attr('speed')) }) } enterLogin( $('a[title="提交"]').first().length ? $('a[title="提交"]').first() : $('a[title="操 作"]').first() ); $("img").length > 2 ? $refresherInsert(true) : $refresherInsert(); } else if (location.href.match(/videoLivePic!getHotLiveVideoList/g)) { $("img").length > 0 ? $refresherInsert(true) : $refresherInsert(); //小视频 } else if (location.href.match(/smallVideoAudit!getAuditList/g)) { enterLogin($('a[title="提交"]').first()); $(".box").length > 0 ? $refresherInsert(true) : $refresherInsert(); $('.box p:nth-child(7)').html('') $('.openright-now').click((e) => { openRight($(e.target).parent().parent().find('video').eq(0).attr('src'), 678, $(e.target).attr('speed')) }) //小视频已通过 } else if (location.href.match(/smallVideoAudit!getPassList/g) || location.href.match(/smallVideoAudit!getUnPassList/g)) { $('tr video').parent().parent().find('td:nth-child(6)').append('
') $('.openright-now').click((e) => { openRight($(e.target).parent().parent().find('video').eq(0).attr('src'), 456, $(e.target).attr('speed')); }) //私聊广告消息进审提醒 } else if (location.href.match(/imMsgAction!toAuditList/g)) { setTimeout(() => { if ( $(".pag")[0].offsetHeight > 51 || $(".pag")[1].offsetHeight > 51 || $(".pag")[2].offsetHeight > 51 ) { $refresherInsert(true); $(".content_div input:button").click(() => { setTimeout(() => { location.reload(); }, 500); }); } else { $refresherInsert(); } }, 500); //直播截屏审核 } else if ( location.href.match(/videoLiveAuditAction!videoliveScreenAuditList/g) ) { //提交londing动画 $( '' ).appendTo("body"); //控制面板写入 $( '
如何使用?点击所有图片 当前页面停留时间:0 刷新次数:0 已审核:0(px)    
' ).appendTo(".toolbar:last"); $( '' ).appendTo("body"); //弹出使用说明 $(".how").click(function() { alert( " 1 图片尺寸设置即直播截屏宽度设置,设置不同的宽度会按照图片原有比例对应设置图片高度。。可根据个人喜好和电脑屏幕宽高设置,设置自定义宽度须先点击自定义按钮,随后进行设置。设置值为大于等于130小于等于25的纯阿拉伯数字。\n 2当前脚本对截屏审核界面做了比较大的改动,为了尽可能多的展示图片内容。隐藏掉了 拉黑 推荐 按钮,并且将用户昵称,才艺,PK中,接收方,发起方这些文字信息做了简短处理。但是如果想查看完整的用户昵称信息,只需要将鼠标悬停在经过处理的昵称上就可以了。\n 4 双击页面换一批为,当选中开启后,在页面的任意地方双击会触发 换一批 按钮的单击执行。默认为关闭!\n 以上所有效果均为在当前页面设置,在提交 换一批 之后的所有此页面上生效。关闭当前选项卡之后所有设置的参数会被清空,再次打开请重新设置!\n 5 当鼠标移动到需要处罚的用户时,可以触发快捷键。鼠标移出时失效Q警告,W下榜E禁播R推流T换一批,同时键盘回车可以换一批,鼠标右键也可以推流\n 6 隐藏按钮为当选中后用户界面的处罚按钮都会会被隐藏。此时,你可以选择用键盘操作处罚或者将鼠标移到要处罚的用户点击鼠标中键显示按钮!" ); }); $(".C").click(() => { $("img").click(); }); //定义参数变量 let keepTime = 0, size, db, hd, refreshTimes = 0, demon = 0, total = 0, rp; //当前页面停留时间开始计时 setInterval(() => { $(".keepTime").html(keepTime); keepTime++; if (keepTime === 9999) { $(".btn_blue") .first() .click(); } }, 1000); $(".toolbar .btn_blue:not('.C')").click(function() { $(".toolbar .btn_blue").hide(); $(".loading").css("display", "block"); let i = 0; setInterval(() => { if (i % 4 == 0) { $(".loading").html("提交中,请稍后"); } else if (i % 4 == 1) { $(".loading").html(". 提交中,请稍后 ."); } else if (i % 4 == 2) { $(".loading").html(". . 提交中,请稍后 . ."); } else if (i % 4 == 3) { $(".loading").html(". . . 提交中,请稍后 . . ."); } i++; }, 200); //记录审核刷新次数和已审核 document.cookie = `refreshTimes=${parseInt( document.cookie.match(/refreshTimes=\d+/g)[0].match(/\d+/g)[0] ) + 1};`; document.cookie = `total=${parseInt( document.cookie.match(/total=\d+/g)[0].match(/\d+/g)[0] ) + $(".content_div table").length};`; }); //页面加载完成后对图片进行重新渲染 document.onreadystatechange = () => { if (document.readyState == "complete") { //取消出发弹窗动画 $(".close").hide(); $(".showpic tbody tr:nth-child(3) input:visible").click(function() { setTimeout(() => { cancelAnimate(); var target = this.parentNode.parentNode.parentNode.parentNode; var offset = $(target).offset(); if ( offset.left + target.offsetWidth + 300 > document.body.offsetWidth ) { $(".showbox:visible")[0].style.left = offset.left - 300 + "px"; $(".showbox:visible")[0].style.top = offset.top + "px"; } else { $(".showbox:visible")[0].style.left = offset.left + target.offsetWidth + "px"; $(".showbox:visible")[0].style.top = offset.top + "px"; } $(".showbox:visible").on("click", "input", function(e) { cancelAnimate(); }); }, 10); }); //根据设定参数添加相应功能 if ( document.cookie.match(/size=\d+/g) && document.cookie.match(/db=\d/g) && document.cookie.match(/hd=\d/g) && document.cookie.match(/refreshTimes=\d+/g) && document.cookie.match(/total=\d+/g) && document.cookie.match(/rp=\d/g) ) { size = parseInt( document.cookie.match(/size=\d+;/g)[0].match(/\d+/g)[0] ); db = parseInt(document.cookie.match(/db=\d/g)[0].match(/\d/g)[0]); hd = parseInt(document.cookie.match(/hd=\d/g)[0].match(/\d/g)[0]); rp = parseInt(document.cookie.match(/rp=\d/g)[0].match(/\d/g)[0]); refreshTimes = parseInt( document.cookie.match(/refreshTimes=\d+/g)[0].match(/\d+/g)[0] ); total = parseInt( document.cookie.match(/total=\d+/g)[0].match(/\d+/g)[0] ); $(".refreshTimes").html(refreshTimes); //刷新次数 $(".total").html(total); //已审核 setSize(size); //设置图片尺寸 setButtonSize(size); //设置按钮尺寸 setTitleSize(size); //设置昵称 $("#autInput").val(size); if (db) { //是否双击换一批 $("#dbClick").attr("checked", true); $(document).one("dblclick", () => { $(".btn_blue") .first() .click(); }); } if (hd) { //是否隐藏按钮 $("#hdButton").attr("checked", true); $("table input:visible") .add(".showpic tbody tr:nth-child(3)") .addClass("hidebtn") .hide(); } if (rp) { //是否鼠标右键推流 $("#rightPush").attr("checked", true); } //首次开启截屏审核的默认样式 } else { document.cookie = "size=131;"; document.cookie = "db=0;"; document.cookie = "hd=0;"; document.cookie = "rp=0;"; document.cookie = "refreshTimes=0;"; document.cookie = "demon=0;"; document.cookie = "total=0;"; $("#autInput").val(131); setSize(131); setButtonSize(130); setTitleSize(130); } //控制面板事件处理 $(".mytool").on("click", "input", function(e) { if (this.id === "dbClick") { if ($(this).is(":checked")) { document.cookie = "db=1;"; } else { document.cookie = "db=0;"; } } else if (this.id === "hdButton") { if ($(this).is(":checked")) { document.cookie = "hd=1;"; } else { document.cookie = "hd=0;"; } } else if (this.id === "rightPush") { if ($(this).is(":checked")) { document.cookie = "rp=1;"; } else { document.cookie = "rp=0;"; } } }); //自定义图片尺寸处理 $("#autInput").mousedown(function() { this.value = ""; }); $("#autInput") .prev() .mousedown(function() { $("#autInput").val(""); }); $("#autInput").blur(function() { const value = parseInt(this.value); if (value < 130) { document.cookie = "size=130;"; this.value = 130; alert("设定宽度过小,已经为你设置为130px"); } else if (parseInt(this.value.trim()) > 250) { document.cookie = "size=250;"; this.value = 250; alert("设定宽度过大,已经为你设置为250px"); } else if (value >= 130 && value <= 250) { document.cookie = `size=${value};`; this.value = value; } else { this.value = size; alert("请输入设定宽度"); } }); window.scrollTo(0, 72); //页面自动滚动 $("body").css("-webkit-user-select", "none"); //页面内文字不可选 $(".showpic") .each(function(i, e) { $(e).css({ //设定截屏容器最小宽高,修复空白bug margin: "0px 3px", float: "none", display: "inline-block", "margin-right": "-4px", "min-height": "250px", position: "relative", overflow: "hidden" }); if ($(e).find('span:contains("PK")').length) { var oldImg = $(this) .find("img") .first(); let src = oldImg[0].src; let style = oldImg.attr("style"); let id = oldImg.attr("id"); let onclick = oldImg.attr("onclick"); let onload = oldImg.attr("onload"); oldImg.attr("id", id + "-remove"); var newBox = $( `
` ).appendTo(this); var newImg = $("") .attr("id", id) .attr("src", src) .attr("style", style) .attr("onclick", onclick) .attr("onload", onload) .css("width", `${size * 2 + 3}px`) .css("height", `${size * 4.19847328}px`) .css("position", "absolute") .css("top", `${size * -1.08396946}px`) .css("left", "0px") .appendTo(newBox); var atten = $( '
< PK中 >
' ).appendTo(newBox); } }) .children("table") .css({ width: "130px", margin: "0", height: "250px", padding: "0px" }); //去掉性别 $("tbody tr:nth-child(2) td font").each(function(i, e) { e.style.display = "none"; }); //简短用户文字信息 $("span").each(function(i, e) { if (e.innerHTML === "才艺") { e.innerHTML = ""; } else if (e.innerHTML === "PK") { e.style.display = "none"; e.parentNode.className = "pk"; } else if (e.innerHTML === "已推流") { e.innerHTML = "已推"; e.style.float = "right"; e.style.marginRight = "10px"; } }); //键盘操作处理和推流 function enter(that) { that.tabIndex = 0; that.focus(); that.parentNode.style.outline = "blue solid 2px"; if ( $(that).siblings("table").length === 0 || $(that).find(".pk").length ) { if ($(that).find("tr:nth-child(2) input:button").length) { $(that) .find("input:button") .first() .attr("onclick", ""); let data = that.parentNode.id.split("_"); $(that).find("input:button")[0].onclick = function() { addEmpasisUser(data[2], data[1]); }; } } $(that) .find("tr:nth-child(3) input:button:visible") .hover( function() { $(this) .css("color", "blue") .css("font-size", "14px") .css("padding", "0px"); }, function() { $(this) .css("color", "#000") .css("font-size", "12px") .css("padding", "0 10px"); } ); that.onkeydown = function(e) { if (e.code == "KeyQ") { $(that) .find(".btn_blue") .filter(function(i, e) { if (e.value == "警告") { $(e).click(); } }); } else if (e.code == "KeyW") { $(that) .find(".btn_blue") .filter(function(i, e) { if (e.value == "下榜") { $(e).click(); } }); } else if (e.code == "KeyE") { $(that) .find(".btn_blue") .filter(function(i, e) { if (e.value == "禁播") { $(e).click(); } }); } else if (e.code == "KeyR") { $(that) .find(".btn_blue") .filter(function(i, e) { if (e.value == "推流") { $(e).click(); } }); } else if (e.code == "KeyT") { that.onkeydown = null; $(".btn_blue") .first() .click(); } }; if (rp) { that.oncontextmenu = () => { $(that) .find(".btn_blue") .filter(function(i, e) { if (e.value == "推流") { $(e).click(); } }); return false; }; } that.onmousedown = e => { if (e.button == 1) { if (hd) { let newheight = parseInt( $(that) .find("img") .first() .css("height") ) - 23; $(that) .find("img") .first() .css("height", newheight + "px"); $(that) .find(".hidebtn") .show(); that.onmousedown = null; return false; } } }; } function out(that) { that.tabIndex = 9999; that.blur(); that.parentNode.style.outline = "none"; that.onkeydown = null; that.oncontextmenu = null; that.onmousedown = null; } $(".content_div").on("mouseover", "table", function(e) { var that = this; enter(that, 1); }); $(".content_div").on("mouseleave", "table", function(e) { var that = this; out(that, 1); }); $(".content_div").on("mouseover", 'div[class="newBox"]', function(e) { var that = $(this) .parent() .children("table:first")[0]; enter(that, 0); if ( $(that).siblings("table").length === 0 || $(that).find(".pk").length ) { if ($(that).find("tr:nth-child(2) input:button").length) { let data = that.parentNode.id.split("_"); $(that) .find("input:button") .first() .attr("onclick", "") .click(function() { addEmpasisUser(data[2], data[1]); }); } } if (rp) { this.oncontextmenu = () => { $(this.parentNode) .find("tr:nth-child(2):first input:button") .filter(function(i, e) { if (e.value == "推流") { $(e).click(); } }); return false; }; } this.onmousedown = e => { if (e.button == 1) { if (hd) { let newheight = parseInt( $(this.parentNode) .find(".newBox") .css("height") ) - 26; $(this.parentNode) .find(".newBox") .css("height", newheight + "px"); $(this.parentNode).find("img")[0].style.height = newheight + "px"; $(this.parentNode).find("img")[1].style.height = newheight + "px"; $(this.parentNode) .find(".hidebtn") .show(); this.onmousedown = null; return false; } } }; }); $(".content_div").on("mouseleave", 'div[class="newBox"]', function(e) { var that = $(this) .parent() .children("table:first")[0]; out(that, 0); }); //压缩表格行高 $(".showpic tbody tr:nth-child(1)").css("height", "190px"); $(".showpic tbody tr:nth-child(2)").css("height", "10px"); $(".showpic tbody tr:nth-child(3)").css("height", "10px"); $(".showpic tbody tr:nth-child(4)").css("height", "10px"); $(".showpic tbody tr td").css("padding", "0px"); } }; //一对一坐等 } else if (location.href.match(/videoLivePic!getSingleVideoLiveAuditList/g)) { let width = 132; let height = width * 1.77; $( '
如何使用? 当前页面停留时间:0 s       
' ).appendTo("body"); $( '' ).appendTo("body"); let keepTime = 0; setInterval(() => { $(".keepTime").html(keepTime); keepTime++; }, 1000); enterLogin($(".btn_blue").first()); $("body").css("-webkit-user-select", "none"); $("font").each(function(i, e) { if (e.innerHTML == "男") { $(e) .css("color", "blue") .parent() .css("background", "#f40"); } }); setTimeout(() => { if (document.cookie.match(/dbY=\d/g)) { db = parseInt(document.cookie.match(/dbY=\d/g)[0].match(/\d/g)[0]); if (db) { $("#dbClick").attr("checked", true); $(document).one("dblclick", () => { $(".btn_blue") .first() .click(); }); } } else { document.cookie = "dbY=0;"; } $("object") .attr("width", width) .attr("height", height); $("embed") .attr("width", width) .attr("height", height); $('div[id^="video"]').css("position", "relative"); $('div[id^="div"]') .css("float", "none") .css("display", "inline-block") .css("min-height", "260px"); $('.content_div>div>table div[id^="div"]>table').css("width", "130px"); $(".content") .css("margin-right", "0px") .css("margin-bottom", "0px"); $(".content_div>div>table").on("mouseenter", "table", function() { $(this) .find('div[id^="video"]') .append( '
' ); $(".warn").hover( function() { $(this) .css("color", "#2ae") .css("background-color", "#fff"); }, function() { $(this) .css("color", "#fff") .css("background-color", "#2ae"); } ); $(".black").hover( function() { $(this) .css("color", "black") .css("background-color", "#fff"); }, function() { $(this) .css("color", "#fff") .css("background-color", "black"); } ); $(".sex").hover( function() { $(this) .css("color", "#f0f") .css("background-color", "#fff"); }, function() { $(this) .css("color", "#fff") .css("background-color", "#f0f"); } ); $(".warn").click(function() { $(this) .parent() .parent() .parent() .parent() .parent() .find("input:button:nth-child(1)") .click(); }); $(".black").click(function() { $(this) .parent() .parent() .parent() .parent() .parent() .find("input:button:nth-child(2)") .click(); }); $(".sex").click(function() { $(this) .parent() .parent() .parent() .parent() .parent() .find("input:button:nth-child(3)") .click(); }); }); $(".content_div>div>table").on("mouseleave", "table", function() { $(".hoverbutton").hide(); this.oncontextmenu = null; }); $( '.content_div>div>table div[id^="div"]>table tbody tr:nth-child(2) td a:nth-child(2)' ).hide(); $( '.content_div>div>table div[id^="div"]>table tbody tr:nth-child(3)' ).hide(); $( '.content_div>div>table:nth-child(2) div[id^="div"]>table tr:nth-child(4)' ).hide(); $(".mytool").on("click", "input", function(e) { if (this.id === "dbClick") { if ($(this).is(":checked")) { document.cookie = "dbY=1;"; } else { document.cookie = "dbY=0;"; } } }); $(".how").click(function() { alert("参考直播截屏审核插件使用方法"); }); }, 666); $(".toolbar .btn_blue") .first() .click(function() { $(".loading").css("display", "block"); let i = 0; setInterval(() => { if (i % 4 == 0) { $(".loading").html("提交中,请稍后"); } else if (i % 4 == 1) { $(".loading").html(". 提交中,请稍后 ."); } else if (i % 4 == 2) { $(".loading").html(". . 提交中,请稍后 . ."); } else if (i % 4 == 3) { $(".loading").html(". . . 提交中,请稍后 . . ."); } i++; }, 200); }); //重点流 } else if ( location.href.match(/videoLiveAuditAction!videoliveFlowAuditList/g) ) { let width = 153; //设置重点流UI let height = width * 1.77; rander(width, height); $("body").css("-webkit-user-select", "none"); $( '
如何使用?          
' ).appendTo("body"); $( '' ).appendTo("body"); $( '' ).appendTo("body"); $( '' ).appendTo("body"); let db, mode; if (document.cookie.match(/mode=\d/g)) { mode = parseInt(document.cookie.match(/mode=\d/g)[0].match(/\d/g)[0]); if (mode == 1) { $("#modeOne").attr("checked", "checked"); } else if (mode == 2) { $("#modeTwo").attr("checked", "checked"); } } if (document.cookie.match(/dbZ=\d/g)) { db = parseInt(document.cookie.match(/dbZ=\d/g)[0].match(/\d/g)[0]); if (db) { //是否双击换一批 $("#dbClick").attr("checked", true); $(document).one("dblclick", () => { $(".btn_blue") .first() .click(); }); } } else { document.cookie = "dbZ=0;"; } $(".mytool").on("click", "input", function(e) { if (this.id === "dbClick") { if ($(this).is(":checked")) { document.cookie = "dbZ=1"; } else { document.cookie = "dbZ=0"; } } }); $("#modeOne").click(function() { document.cookie = "mode=1"; }); $("#modeTwo").click(function() { document.cookie = "mode=2"; }); //使用说明 $(".how").click(function() { alert( " 鼠标右键标记/取消标记需要叉掉的用户。选好后点击右上角 批量X 即可,如果没有标记需要批量叉掉的用户,点击 批量叉 等同于点击 换一批 按钮 \n ps: 批量叉掉功能是通过插件重写了原来网页的部分回调函数,复制并简化了公司自定义的ajax对象使得我们可以通过插件与服务器通信提交各种审核数据,因此在功能上与逻辑上和以前没有本质区别。同时因为都涉及到网络通信接受发送,所以从点击叉掉到服务器接收到请求都是需要一定时间的,尤其是选择批量叉掉的数量较多时。因此,对于如何批量叉掉就有了两种解决方案,也就是模式一和模式二。这两种模式的基本逻辑基本一致,都是通过插件代码逻辑遍历当前批次用户并逐个向服务器发送数据并接受响应,而且在直播队列无等待人数时的表现行为一致,都时提示无等待人数。区别就在于直播队列有等待人数时,各自的表现为:\n [模式一]:当当前批次开始遍历时(当选中了几个用户后点击批量叉掉时),后一个要发送的用户数据会在前一个发送的用户数据得到响应并判断响应数据中是否有正在等待的用户信息(如果有则将正在等待的用户插入到页面的相应位置,否则提示当前直播队列无等待人数)后才会发送。因此模式一可以理解为同步的,第一个叉掉后判断有无等待用户,有的话就插入页面,没有就提示无等待。然后才开始叉掉第二个,以此类推。\n 优点:和单个叉掉的表现行为一致,符合审核习惯,易于接受和理解。\n 缺点:需要逐个判断读取插入等操作,阻塞效果明显,速度慢(批次单个平均时间约1.3秒)\n [模式二]当当前批次开始遍历时(当选中了几个用户后点击批量叉掉时),后一个要发送的用户数据不会关注前一个发送的用户数据的任何响应,所以模式二当点击批量叉按钮式,当前批次的用户数据几乎是同时发送出去的,之后等待这批次的响应逐个从服务器返回,如果其中一个响应数据中显示有正在等待的用户,那么程序会在接收到的响应数量等于当前批次叉掉的数量时刷新页面,将等待用户在刷新后的页面上展示。\n 优点:点击批量叉后程序只关注数据的发送和接受响应的数量,把将等待用户渲染到页面的工作留给刷新后的页面,速度快(批次单个平均时间约0.6秒)。\n 缺点: 与原来的审核习惯不符。批量叉掉后刷新出的极个别用户界面不带叉(原因未知),但是插件对此进行了修复,当鼠标移入到没有叉的用户时,插件会自动为你创建一个可用的叉!!!" ); }); //批量叉掉,根据标记确定边框颜色 $(".content_div>table").on("mouseenter", "table", function() { if ( $(this) .parent() .hasClass("marked") ) { this.parentNode.style.outline = "#f40 solid 2px"; } else { this.parentNode.style.outline = "blue solid 2px"; } this.oncontextmenu = function() { return false; }; let data = this.parentNode.id.split("_"); if ($(this).find("tr:nth-child(4) a").length) { $(this).find("tr:nth-child(4) a")[0].onclick = function() { singleRef(data[1], data[2], 1, 1); $("table tr:nth-child(4) a").hide(); }; } else { $(this) .find("tr:nth-child(4) td") .append( `` ); $(".newX").click(function() { singleRef(data[1], data[2], 1, 1); }); } this.onmousedown = function(e) { if (e.buttons == 2) { if ( $(this) .parent() .hasClass("marked") ) { $(this) .parent() .removeClass("marked"); this.parentNode.style.outline = "blue solid 2px"; } else { if ($(this).find("tr:nth-child(4) td a").length) { $(this) .parent() .addClass("marked"); this.parentNode.style.outline = "#f40 solid 2px"; } } } }; $(this) .find("input:button:visible") .hover( function() { $(this) .css("color", "blue") .css("font-size", "14px") .css("padding", "0px"); }, function() { $(this) .css("color", "#000") .css("font-size", "12px") .css("padding", "0 10px"); } ); }); $(".content_div>table").on("mouseleave", "table", function() { if ( $(this) .parent() .hasClass("marked") ) { this.parentNode.style.outline = "#f40 solid 2px"; } else { this.parentNode.style.outline = "none"; } }); $(".X")[0].onclick = X; $(".toolbar .btn_blue") .first() .click(function() { $(".loading").css("display", "block"); let i = 0; setInterval(() => { if (i % 4 == 0) { $(".loading").html("加载中,请稍后"); } else if (i % 4 == 1) { $(".loading").html(". 加载中,请稍后 ."); } else if (i % 4 == 2) { $(".loading").html(". . 加载中,请稍后 . ."); } else if (i % 4 == 3) { $(".loading").html(". . . 加载中,请稍后 . . ."); } i++; }, 200); }); //直播流 } else if (location.href.match(/videoLivePic!getPopuLiveVideoListAudit/g)) { let width = 154; let height = width * 1.77; window.scrollTo(0, 10); //页面自动滚动 setTimeout(() => { $("object") .attr("width", width) .attr("height", height); $("embed") .attr("width", width) .attr("height", height); $(".content td").css("padding", "0"); $('.content_div div[id^="div"]>table') .css("width", "130px") .css("margin", "0") .css("margin-left", "1.5px"); $('.content_div div[id^="div"]>table').each(function(i, e) { if ($(e).find('img[src="/images/down.png"]').length > 0) { $(e) .find("tr:nth-child(2) td") .append( '' ); } else if ($(e).find('img[src="/images/link.png"]').length > 0) { $(e) .find("tr:nth-child(2) td") .append( '' ); } }); ////////////////////////////////////////////////// setButtonSize(150); $("span").each(function(i, e) { if (e.innerHTML === " 才艺 ") { e.innerHTML = ""; } else if (e.innerHTML === " PK中 ") { e.innerHTML = ""; } else if (e.innerHTML === " 接收方 ") { e.innerHTML = "接"; } else if (e.innerHTML === " 发起方 ") { e.innerHTML = "发"; } }); $('.content_div div[id^="div"] table tr:nth-child(3)').css( "display", "none" ); $('.content_div div[id^="div"] table tr:nth-child(4) a').css( "display", "none" ); }, 300); $( '
如何使用? 当前页面停留时间:0 s       
' ).appendTo("body"); $( '' ).appendTo("body"); let keepTime = 0; setInterval(() => { $(".keepTime").html(keepTime); keepTime++; }, 1000); let arrlist = []; let getobj = {}; getobj["name"] = document.cookie.match(/username=\w+/)[0].split("=")[1]; $('div[id^="div"] table a').each(function(i, e) { if (i % 3 == 0) { getobj[ `${e.innerHTML.trim()}` ] = e.parentNode.parentNode.parentNode.parentNode.parentNode.id.split( "_" )[1]; } }); ////////////////////////// $("input:submit") .first() .click(function() { getobj["time"] = +new Date(); getobj["action"] = "change"; getobj["keeptime"] = keepTime; $.get("http://39.96.73.206:8888/post", getobj); this.style.display = "none"; this.nextSibling.nextSibling.style.display = "none"; $(".loading").css("display", "block"); let i = 0; setInterval(() => { if (i % 4 == 0) { $(".loading").html("加载中,请稍后"); } else if (i % 4 == 1) { $(".loading").html(". 加载中,请稍后 ."); } else if (i % 4 == 2) { $(".loading").html(". . 加载中,请稍后 . ."); } else if (i % 4 == 3) { $(".loading").html(". . . 加载中,请稍后 . . ."); } i++; }, 200); }); $("input:button") .first() .click(function() { getobj["time"] = +new Date(); getobj["action"] = "close"; getobj["keeptime"] = keepTime; $.get("http://39.96.73.206:8888/post", getobj); }); //总榜 } else if (location.href.match(/videoLivePic!getPopuLiveVideoList.action/g)) { let width = 154; let height = width * 1.77; setTimeout(() => { $("span").each(function(i, e) { if (e.innerHTML === "才艺") { e.innerHTML = "才"; } else if (e.innerHTML === "PK") { e.innerHTML = ""; } }); $("object") .attr("width", width) .attr("height", height); $("embed") .attr("width", width) .attr("height", height); $(".content td").css("padding", "0"); $('.content_div div[id^="div"]>table') .css("width", "130px") .css("margin", "0") .css("margin-left", "1.5px"); $('.content_div div[id^="div"]>table tr:nth-child(2) a') .css("float", "left") .css("width", "60px") .css("white-space", "nowrap") .css("overflow", "hidden") .each(function(i, e) { $(e) .parent() .parent() .parent() .attr("title", $(e).html()); }); $('.content_div div[id^="div"] table tr:nth-child(3) td input:visible') .css("float", "left") .css("width", "50px") .css("margin", "0"); }, 300); //pk } else if (location.href.match(/videoLiveAuditAction!videolivePKFlowList/g)) { window.qcVideo = null $('