2021-04-01 14:44:02 +08:00
|
|
|
|
<!DOCTYPE html>
|
|
|
|
|
<html lang="en">
|
|
|
|
|
<head>
|
|
|
|
|
<meta charset="UTF-8">
|
|
|
|
|
<title>UP主管理</title>
|
|
|
|
|
<link rel="stylesheet" href="/layui/css/layui.css">
|
|
|
|
|
</head>
|
|
|
|
|
<body>
|
|
|
|
|
<div class="layui-layout layui-layout-admin">
|
|
|
|
|
<div id="header"></div>
|
|
|
|
|
<div class="layui-body" style="left: 0px;">
|
|
|
|
|
<div style="width: 50%;margin-left: 25%; margin-top: 2%;">
|
|
|
|
|
<blockquote class="layui-elem-quote">
|
|
|
|
|
在这里添加需要监控的UP主,添加请填入直播地址或房间号
|
|
|
|
|
<div id="temp"></div>
|
|
|
|
|
</blockquote>
|
|
|
|
|
</div>
|
|
|
|
|
<div style="width: 80%;margin-left: 10%; margin-top: 2%;">
|
|
|
|
|
<form class="layui-form" action="" lay-filter="myForm">
|
|
|
|
|
|
|
|
|
|
<div class="layui-tab layui-tab-card" lay-filter="type" lay-allowclose="true">
|
|
|
|
|
<ul class="layui-tab-title">
|
|
|
|
|
</ul>
|
|
|
|
|
<div class="layui-tab-content">
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
</form>
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
<div id="footer"></div>
|
|
|
|
|
</div>
|
|
|
|
|
<script src="/layui/layui.js"></script>
|
|
|
|
|
<script src="/js/jquery-3.2.1.js"></script>
|
|
|
|
|
<script type="text/html" id="topTools">
|
|
|
|
|
<a class="layui-btn layui-btn-xs" lay-event="addAddress">新增</a>
|
|
|
|
|
<scan id="online">当前正在直播:0</scan>
|
|
|
|
|
</script>
|
|
|
|
|
<script type="text/html" id="listTools">
|
|
|
|
|
<a class="layui-btn layui-btn-xs" lay-event="edit">编辑</a>
|
|
|
|
|
<a class="layui-btn layui-btn-danger layui-btn-xs" lay-event="del">删除</a>
|
|
|
|
|
</script>
|
|
|
|
|
<script type="text/html" id="upInfoCheckToOfflineListening">
|
|
|
|
|
{{# if(d.offlinelistening==1){}}
|
|
|
|
|
<div><input name="offlineListeningCheckbox" lay-filter="offlineListeningCheckbox" type="checkbox" lay-skin="switch"
|
|
|
|
|
lay-text="开启|关闭" value="{{d.roomid}}" checked></div>
|
|
|
|
|
{{# } else { }}
|
|
|
|
|
<div><input name="offlineListeningCheckbox" lay-filter="offlineListeningCheckbox" type="checkbox" lay-skin="switch"
|
|
|
|
|
lay-text="开启|关闭" value="{{d.roomid}}"></div>
|
|
|
|
|
{{# }}}
|
|
|
|
|
</script>
|
|
|
|
|
<script type="text/html" id="upInfoCheckToEnable">
|
|
|
|
|
{{# if(d.enable==1){}}
|
|
|
|
|
<div><input name="enableCheckbox{{d.roomid}}" lay-filter="enableCheckbox" type="checkbox" lay-skin="switch"
|
|
|
|
|
lay-text="启用|关闭"
|
|
|
|
|
value="{{d.roomid}}" checked></div>
|
|
|
|
|
{{# } else { }}
|
|
|
|
|
<div><input name="enableCheckbox{{d.roomid}}" lay-filter="enableCheckbox" type="checkbox" lay-skin="switch"
|
|
|
|
|
lay-text="启用|关闭"
|
|
|
|
|
value="{{d.roomid}}"></div>
|
|
|
|
|
{{# }}}
|
|
|
|
|
</script>
|
|
|
|
|
<script type="text/html" id="upInfoCheckToSaveLive">
|
|
|
|
|
{{# if(d.savelive==1){}}
|
|
|
|
|
<div><input name="saveLiveCheckbox{{d.roomid}}" lay-filter="saveLiveCheckbox" type="checkbox"
|
|
|
|
|
lay-skin="switch"
|
|
|
|
|
lay-text="启用|关闭"
|
|
|
|
|
value="{{d.roomid}}" checked></div>
|
|
|
|
|
{{# } else { }}
|
|
|
|
|
<div><input name="saveLiveCheckbox{{d.roomid}}" lay-filter="saveLiveCheckbox" type="checkbox"
|
|
|
|
|
lay-skin="switch"
|
|
|
|
|
lay-text="启用|关闭"
|
|
|
|
|
value="{{d.roomid}}"></div>
|
|
|
|
|
{{# }}}
|
|
|
|
|
|
|
|
|
|
</script>
|
|
|
|
|
<script type="text/html" id="upInfoCheckTolive">
|
|
|
|
|
<div><input id="live" name="liveCheckbox{{d.roomid}}" lay-filter="liveCheckbox" type="checkbox" lay-skin="switch"
|
|
|
|
|
lay-text="直播|自闭"
|
|
|
|
|
value="{{d.roomid}}"></div>
|
|
|
|
|
</script>
|
|
|
|
|
<script type="text/html" id="upInfoCheckToSaveDanmu">
|
|
|
|
|
{{# if(d.savedanmu==1){}}
|
|
|
|
|
<div><input name="saveDanmuCheckbox" lay-filter="saveDanmuCheckbox" type="checkbox" lay-skin="switch"
|
|
|
|
|
lay-text="开启|关闭" value="{{d.roomid}}" checked></div>
|
|
|
|
|
{{# } else { }}
|
|
|
|
|
<div><input name="saveDanmuCheckbox" lay-filter="saveDanmuCheckbox" type="checkbox" lay-skin="switch"
|
|
|
|
|
lay-text="开启|关闭" value="{{d.roomid}}"></div>
|
|
|
|
|
{{# }}}
|
|
|
|
|
</script>
|
|
|
|
|
<script>
|
|
|
|
|
let form = layui.form;
|
|
|
|
|
$('#header').load("/html/header.html");
|
|
|
|
|
$('#footer').load("/html/footer.html");
|
|
|
|
|
layui.use(['layer', 'form', 'element', 'table'], function () {
|
|
|
|
|
let layer = layui.layer
|
|
|
|
|
, form = layui.form
|
|
|
|
|
, table = layui.table
|
|
|
|
|
, element = layui.element;
|
|
|
|
|
element.tabAdd('type', {
|
|
|
|
|
title: "BiliBili"
|
|
|
|
|
, content: '<table id="bili_up" lay-filter="listTools"></table>'
|
|
|
|
|
, id: 1
|
|
|
|
|
})
|
|
|
|
|
element.on('tab(type)', function (data) {
|
|
|
|
|
|
|
|
|
|
table.render({
|
|
|
|
|
elem: "#bili_up"
|
|
|
|
|
, url: '/upinfo/get/list.do'
|
|
|
|
|
, toolbar: '#topTools'
|
|
|
|
|
, page: true
|
|
|
|
|
, cols: [[
|
|
|
|
|
{field: "id", title: "id", width: 80, sort: true, fixed: 'left'}
|
|
|
|
|
, {
|
|
|
|
|
field: 'name',
|
|
|
|
|
title: '标题 <i class="layui-icon" id="htitle"></i>',
|
|
|
|
|
width: 150,
|
|
|
|
|
templet: '<div><span id="{{d.roomid}}">{{d.name}}</span></div>'
|
|
|
|
|
}
|
|
|
|
|
, {field: 'roomid', title: 'roomid', width: 100}
|
|
|
|
|
, {
|
|
|
|
|
field: 'url',
|
|
|
|
|
title: '直播地址',
|
|
|
|
|
width: 250,
|
|
|
|
|
templet: '<div><a href="{{d.url}}" target="_blank">{{d.url}}</a></div>'
|
|
|
|
|
}
|
|
|
|
|
, {
|
|
|
|
|
field: 'offlinelistening',
|
|
|
|
|
title: '24小时监控 <i class="layui-icon" id="h24"></i> ',
|
|
|
|
|
width: 150,
|
|
|
|
|
templet: '#upInfoCheckToOfflineListening'
|
|
|
|
|
}
|
|
|
|
|
, {
|
|
|
|
|
field: 'enable',
|
|
|
|
|
title: '统计 <i class="layui-icon" id="hdata"></i>',
|
|
|
|
|
width: 100,
|
|
|
|
|
templet: '#upInfoCheckToEnable'
|
|
|
|
|
}
|
|
|
|
|
, {
|
|
|
|
|
field: 'saveLive',
|
|
|
|
|
title: '录制 <i class="layui-icon" id="hsave"></i>',
|
|
|
|
|
width: 120,
|
|
|
|
|
templet: '#upInfoCheckToSaveLive'
|
|
|
|
|
}
|
|
|
|
|
, {
|
|
|
|
|
field: 'live',
|
|
|
|
|
title: '直播状态 <i class="layui-icon" id="hlive"></i>',
|
|
|
|
|
width: 120,
|
|
|
|
|
templet: '#upInfoCheckTolive'
|
|
|
|
|
}
|
|
|
|
|
, {
|
|
|
|
|
field: 'saveDanmu',
|
|
|
|
|
title: '保存弹幕 <i class="layui-icon" id="hdanmu"></i>',
|
|
|
|
|
width: 120,
|
|
|
|
|
templet: '#upInfoCheckToSaveDanmu'
|
|
|
|
|
}
|
|
|
|
|
, {field: "right", width: 200, toolbar: '#listTools'}
|
|
|
|
|
]]
|
|
|
|
|
, done: function (res, curr, count) {
|
|
|
|
|
let index=layer.load()
|
|
|
|
|
$('#htitle').on('click', function () {
|
|
|
|
|
var that = this;
|
|
|
|
|
layer.tips('当名字变成绿色则代表后台正在统计中,为黑色则代表未统计,如果需要统计请打开统计开关后刷新查看结果', that, {
|
|
|
|
|
tpis: 4
|
|
|
|
|
});
|
|
|
|
|
});
|
|
|
|
|
$('#h24').on('click', function () {
|
|
|
|
|
var that = this;
|
|
|
|
|
layer.tips('只有开启24小时监控才会自动统计数据或录制', that, {
|
|
|
|
|
tpis: 4
|
|
|
|
|
});
|
|
|
|
|
});
|
|
|
|
|
$('#hdata').on('click', function () {
|
|
|
|
|
var that = this;
|
|
|
|
|
layer.tips('启动统计数据,仅在主播正在直播时可用,如需统计未直播时段,请开启24小时监控', that, {
|
|
|
|
|
tpis: 4
|
|
|
|
|
});
|
|
|
|
|
});
|
|
|
|
|
$('#hsave').on('click', function () {
|
|
|
|
|
var that = this;
|
|
|
|
|
layer.tips('在主播直播时录制视频,在统计为开启时才可用,录像文件在UP管理-录像中查看', that, {
|
|
|
|
|
tpis: 4
|
|
|
|
|
});
|
|
|
|
|
});
|
|
|
|
|
$('#hlive').on('click', function () {
|
|
|
|
|
var that = this;
|
|
|
|
|
layer.tips('主播当前直播状态,显示直播时并不代表在统计和录制视频,该状态仅代表主播是否正在直播', that, {
|
|
|
|
|
tpis: 4
|
|
|
|
|
});
|
|
|
|
|
});
|
|
|
|
|
$('#hdanmu').on('click', function () {
|
|
|
|
|
var that = this;
|
|
|
|
|
layer.tips('在统计为启用时保存弹幕信息,该功能可能占用大量储存空间请注意,保存文件为sqlite', that, {
|
|
|
|
|
tpis: 4
|
|
|
|
|
});
|
|
|
|
|
});
|
|
|
|
|
$.post('/upinfo/get/liveInfo.do', function (json) {
|
|
|
|
|
if (json.code === 0) {
|
|
|
|
|
$('#online').text("当前正在直播:" + json.data.online)
|
|
|
|
|
for (let i in json.data.info) {
|
|
|
|
|
console.log('input[name="liveCheckbox' + json.data.info[i].roomid + '"]')
|
|
|
|
|
$('input[name="liveCheckbox' + json.data.info[i].roomid + '"]').prop('checked', true);
|
|
|
|
|
}
|
|
|
|
|
for (let i in json.data.live) {
|
|
|
|
|
$('#' + json.data.live[i].roomid).css('color', '#8FE18F')
|
2021-04-01 21:11:15 +08:00
|
|
|
|
console.log('绿了:'+json.data.live[i].roomid)
|
2021-04-01 14:44:02 +08:00
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
$.post('/user/get/test.do',function (json) {
|
|
|
|
|
console.log(json.data.power)
|
|
|
|
|
if(json.data.power.indexOf(-1)===-1&&json.data.power.indexOf(4)===-1){
|
|
|
|
|
$('input[type="checkbox"]').prop('disabled',true)
|
|
|
|
|
}
|
|
|
|
|
layer.close(index);
|
|
|
|
|
form.render();
|
|
|
|
|
|
|
|
|
|
})
|
|
|
|
|
}else{
|
|
|
|
|
layer.msg("close")
|
|
|
|
|
layer.close();
|
|
|
|
|
}
|
|
|
|
|
})
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
});
|
|
|
|
|
})
|
|
|
|
|
/* $('#h24').on('click', function(){
|
|
|
|
|
var that = this;
|
|
|
|
|
layer.tips('只有开启24小时监控才会自动统计数据或录制', that);
|
|
|
|
|
|
|
|
|
|
});*/
|
|
|
|
|
|
|
|
|
|
table.on('toolbar(listTools)', function (obj) {
|
|
|
|
|
if (obj.event === 'addAddress') {
|
|
|
|
|
layer.prompt({
|
|
|
|
|
formType: 2,
|
|
|
|
|
value: '',
|
|
|
|
|
title: '请输入房间号或直播地址(直播地址请勿包含参数 如http://live.bilibili.com/110?abcd)',
|
|
|
|
|
area: ['350px', '30px'] //自定义文本域宽高
|
|
|
|
|
}, function (value, index, elem) {
|
|
|
|
|
$.post("/user/up/set/add.do", {"url": value}, function (json) {
|
|
|
|
|
layer.msg(json.msg)
|
|
|
|
|
layer.close(index)
|
|
|
|
|
})
|
|
|
|
|
});
|
|
|
|
|
}
|
|
|
|
|
})
|
|
|
|
|
table.on('tool(listTools)', function (obj) {
|
|
|
|
|
let event = obj.event;
|
|
|
|
|
switch (event) {
|
|
|
|
|
case "edit":
|
|
|
|
|
layer.prompt({
|
|
|
|
|
formType: 2,
|
|
|
|
|
value: '',
|
|
|
|
|
title: '请输入房间号或直播地址(直播地址请勿包含参数 如http://live.bilibili.com/110?abcd)',
|
|
|
|
|
area: ['350px', '30px'] //自定义文本域宽高
|
|
|
|
|
}, function (value, index, elem) {
|
|
|
|
|
let dialogIndex=layer.load();
|
|
|
|
|
queryUpInfo(obj.data.roomid, function (udata) {
|
|
|
|
|
udata.url = value;
|
|
|
|
|
udata.offlinelistening = udata.offlinelistening ? 1 : 0;
|
|
|
|
|
udata.live = udata.live ? 1 : 0;
|
|
|
|
|
udata.saveDanmu = udata.saveDanmu ? 1 : 0;
|
|
|
|
|
console.log(udata)
|
|
|
|
|
$.post("/upinfo/update.do", udata, function (json) {
|
|
|
|
|
layer.close(dialogIndex);
|
|
|
|
|
layer.msg(json.msg,function () {
|
|
|
|
|
window.location.reload();
|
|
|
|
|
})
|
|
|
|
|
layer.close(index)
|
|
|
|
|
|
|
|
|
|
})
|
|
|
|
|
})
|
|
|
|
|
|
|
|
|
|
});
|
|
|
|
|
break;
|
|
|
|
|
case "del":
|
|
|
|
|
layer.open({
|
|
|
|
|
title: '提示!'
|
|
|
|
|
, content: '确定是否删除' + obj.data.name + '直播间?删除后已保存数据并不会一并删除!'
|
|
|
|
|
, btn: ['确定', '取消']
|
|
|
|
|
, yes: function (index, layero) {
|
|
|
|
|
$.post('/upinfo/set/delete.do', {'roomid': obj.data.roomid}, function (json) {
|
|
|
|
|
layer.msg(json.msg)
|
|
|
|
|
})
|
|
|
|
|
layer.close(index); //如果设定了yes回调,需进行手工关闭
|
|
|
|
|
}
|
|
|
|
|
});
|
|
|
|
|
break;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
})
|
|
|
|
|
form.on('switch(offlineListeningCheckbox)', function (data) {
|
|
|
|
|
let roomid = data.value;
|
|
|
|
|
let flag = data.elem.checked ? 1 : 0;
|
|
|
|
|
queryUpInfo(roomid, function (udata) {
|
|
|
|
|
udata.offlinelistening = flag;
|
|
|
|
|
udata.live = udata.live ? 1 : 0;
|
|
|
|
|
udata.saveDanmu = udata.saveDanmu ? 1 : 0;
|
|
|
|
|
$.post('/upinfo/set/update.do', udata, function (json) {
|
|
|
|
|
layer.msg(json.msg)
|
|
|
|
|
})
|
|
|
|
|
})
|
|
|
|
|
|
|
|
|
|
});
|
|
|
|
|
form.on('switch(liveCheckbox)', function (data) {
|
|
|
|
|
let roomid = data.value;
|
|
|
|
|
let flag = data.elem.checked ? 1 : 0;
|
|
|
|
|
queryUpInfo(roomid, function (udata) {
|
|
|
|
|
udata.live = flag;
|
|
|
|
|
udata.offlinelistening = udata.offlinelistening ? 1 : 0;
|
|
|
|
|
udata.saveDanmu = udata.saveDanmu ? 1 : 0;
|
|
|
|
|
$.post('/upinfo/set/update.do', udata, function (json) {
|
|
|
|
|
layer.msg(json.msg)
|
|
|
|
|
})
|
|
|
|
|
})
|
|
|
|
|
});
|
|
|
|
|
form.on('switch(enableCheckbox)', function (data) {
|
|
|
|
|
let roomid = data.value;
|
|
|
|
|
let flag = data.elem.checked ? 1 : 0;
|
|
|
|
|
queryUpInfo(roomid, function (udata) {
|
|
|
|
|
udata.enable = flag;
|
|
|
|
|
udata.offlinelistening = udata.offlinelistening ? 1 : 0;
|
|
|
|
|
udata.saveDanmu = udata.saveDanmu ? 1 : 0;
|
|
|
|
|
console.log(udata)
|
|
|
|
|
$.post('/upinfo/set/update.do', udata, function (json) {
|
|
|
|
|
layer.msg(json.msg)
|
|
|
|
|
})
|
|
|
|
|
})
|
|
|
|
|
});
|
|
|
|
|
form.on('switch(saveLiveCheckbox)', function (data) {
|
|
|
|
|
let roomid = data.value;
|
|
|
|
|
let flag = data.elem.checked ? 1 : 0;
|
|
|
|
|
queryUpInfo(roomid, function (udata) {
|
|
|
|
|
udata.savelive = flag;
|
|
|
|
|
udata.offlinelistening = udata.offlinelistening ? 1 : 0;
|
|
|
|
|
udata.saveDanmu = udata.saveDanmu ? 1 : 0;
|
|
|
|
|
$.post('/upinfo/set/update.do', udata, function (json) {
|
|
|
|
|
layer.msg(json.msg)
|
|
|
|
|
})
|
|
|
|
|
})
|
|
|
|
|
});
|
|
|
|
|
form.on('switch(saveDanmuCheckbox)', function (data) {
|
|
|
|
|
if (data.elem.checked) {
|
|
|
|
|
layer.open({
|
|
|
|
|
title: '警告!'
|
|
|
|
|
, content: '保存弹幕可能会占用大量硬盘空间,也可能会降低数据库查询时间,请谨慎使用(建议手动控制时段开关)'
|
|
|
|
|
, btn: ['确定', '取消']
|
|
|
|
|
, yes: function (index, layero) {
|
|
|
|
|
let roomid = data.value;
|
|
|
|
|
let flag = data.elem.checked ? 1 : 0;
|
|
|
|
|
queryUpInfo(roomid, function (udata) {
|
|
|
|
|
udata.savedanmu = flag;
|
|
|
|
|
$.post('/upinfo/set/update.do', udata, function (json) {
|
|
|
|
|
layer.msg(json.msg)
|
|
|
|
|
})
|
|
|
|
|
})
|
|
|
|
|
layer.close(index); //如果设定了yes回调,需进行手工关闭
|
|
|
|
|
}
|
|
|
|
|
, btn2: function (index, layero) {
|
|
|
|
|
console.log('off')
|
|
|
|
|
$('input[name="saveDanmuCheckbox"]').prop('checked', false)
|
|
|
|
|
form.render();
|
|
|
|
|
layer.close(index)
|
|
|
|
|
}
|
|
|
|
|
, cancel: function (index, layero) {
|
|
|
|
|
console.log('off')
|
|
|
|
|
$('input[name="saveDanmuCheckbox"]').prop('checked', false)
|
|
|
|
|
form.render();
|
|
|
|
|
layer.close(index)
|
|
|
|
|
}
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
} else {
|
|
|
|
|
let roomid = data.value;
|
|
|
|
|
let flag = data.elem.checked ? 1 : 0;
|
|
|
|
|
queryUpInfo(roomid, function (udata) {
|
|
|
|
|
udata.savedanmu = flag;
|
|
|
|
|
$.post('/upinfo/set/update.do', udata, function (json) {
|
|
|
|
|
layer.msg(json.msg)
|
|
|
|
|
})
|
|
|
|
|
})
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
})
|
|
|
|
|
element.tabChange('type', '1');
|
|
|
|
|
|
|
|
|
|
})
|
|
|
|
|
let that;
|
|
|
|
|
|
|
|
|
|
function queryUpInfo(roomid, fun) {
|
|
|
|
|
$.post('/upinfo/get/query.do', {"roomid": roomid}, function (data) {
|
|
|
|
|
fun(data)
|
|
|
|
|
})
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
</script>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
</body>
|
|
|
|
|
|
|
|
|
|
</html>
|