新增了关键词检测

新增了手动暂停的恢复
This commit is contained in:
2024-11-29 15:45:29 +08:00
parent 31dd9cf1a1
commit e4e5696b70
11 changed files with 298 additions and 33 deletions

View File

@@ -43,6 +43,7 @@
layer.open({
type: 2,
title: "添加新房间",
maxmin: true,
area: ['600px', '500px'],
content: '/html/ui/createConfig.html?roomId=' + roomId
@@ -52,6 +53,7 @@
layer.open({
type: 2,
title: "批量编辑",
maxmin: true,
area: ['600px', '500px'],
content: '/html/ui/createConfig.html?array=' + array
@@ -88,7 +90,7 @@
{ field: 'anchorName', title: '用户名', width: 100, fixed: 'left' },
{ field: 'anchorFace', title: '头像', width: 80, templet: '<div><image src="" onerror="showImage(\'{{= d.anchorFace }}\',this);" style="width: 30px;height: 30px;"></div>' },
{ field: 'live_room_id', title: '房间号', width: 80, templet: '<div><a href="https://live.bilibili.com/{{= d.live_room_id}}" target="_blank">{{= d.live_room_id}}</a>' },
{ field: 'recordPath', title: '保存路径', width: 120 },
{ field: 'keyword', title: '监听关键词', width: 120 },
{ field: 'recordDanmu', title: '录制弹幕', width: 120, sort: true },
{ field: 'recordLive', title: '录制视频', width: 120, sort: true },
{ field: 'syncDanmuForLive', title: '同步录制', width: 120, sort: true },

View File

@@ -1,5 +1,10 @@
<!DOCTYPE html>
<html lang="zh-CN">
<head>
<meta charset="utf-8">
<link rel="stylesheet" href="/layui/css/layui.css">
<link rel="stylesheet" href="/css/inputTag.css">
<style>
.layui-form-label {
width: 120px !important;
@@ -33,7 +38,7 @@
<label class="layui-form-label">录制视频时<br>同步录制弹幕</label>
<div class="layui-input-block"><br>
<input type="checkbox" name="syncDanmuForLive" lay-skin="switch" lay-filter="switchSync" title="启用|禁用">
<i class="layui-icon layui-icon-help layui-text-em " onclick="timeTips2(this)"></i>
<i class="layui-icon layui-icon-help layui-text-em " onclick="timeTips(3,this)"></i>
<br>
<br>
</div>
@@ -51,13 +56,21 @@
<input type="checkbox" name="week_7" title="周日" lay-skin="tag">
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">关键词检测</label>
<div class="layui-input-inline fairy-tag-container" style="width: 60%;">
<input type="text" id="keywordList" name="keywordList" autocomplete="off"
class="layui-input fairy-tag-input ">
</div>
<i class="layui-icon layui-icon-help" onclick="timeTips(4,this)"></i>
</div>
<div class="layui-form-item">
<label class="layui-form-label">弹幕录制时间</label>
<div class="layui-input-inline">
<input type="text" name="recordDanmuDate" id="recordDanmuDate" value="00:00:00 - 23:59:59"
lay-verify="required" autocomplete="off" class="layui-input">
</div>
<div class="layui-form-mid layui-text-em" onclick="timeTips(false,this)"><i
<div class="layui-form-mid layui-text-em" onclick="timeTips(1,this)"><i
class="layui-icon layui-icon-help"></i> </div>
</div>
<div class="layui-form-item">
@@ -66,7 +79,7 @@
<input type="text" name="recordLiveDate" id="recordLiveDate" value="00:00:00 - 23:59:59"
lay-verify="required" autocomplete="off" class="layui-input">
</div>
<div class="layui-form-mid layui-text-em" onclick="timeTips(true,this)"><i
<div class="layui-form-mid layui-text-em" onclick="timeTips(2,this)"><i
class="layui-icon layui-icon-help"></i> </div>
</div>
<div class="layui-inline">
@@ -98,19 +111,20 @@
<script src="/js/jquery-3.2.1.js"></script>
<script src="/js/httpUtils.js"></script>
<script src="/js/CommonConfig.js"></script>
<script src="/js/inputTag.js"></script>
<script>
function timeTips(isLive, that) {
if (isLive) {
layer.tips('是从开始到结束时间范围内,主播开播会启动录制,超过结束范围不会中断正在录制的任务', that);
} else {
layer.tips('仅在当前时间范围内录制,如遇到正在直播,则延迟到下播时停止录制', that);
function timeTips(type, that) {
var tips = ''
switch (type) {
case 1: tips = '仅在时间范围内录制,如遇到正在直播,则延迟到下播时停止录制<p style="color:red;">注:如果启用同步录制功能,那本设置将无效</p>'; break;
case 2: tips = '仅在时间范围内录制,主播开播会启动录制,正在直播时超过结束范围则延迟到下播时停止录制'; break;
case 3: tips = '启用后,录制视频时会同步录制弹幕,下播后会同步停止录制.同时上面录制弹幕按钮将失效<p style="color:red;">启用该选项必须启用录制视频功能才可有效</p>'; break;
case 4: tips = '在监测时间范围内(周X、时段),开播标题包含关键词才会开始录制<p style="color:red;">仅针对录制视频功能,录制弹幕不受关键词影响</p>'; break;
}
layer.alert(tips)
}
function timeTips2(that) {
layer.tips('启用后,录制视频时会同步录制弹幕,下播后会同步停止录制.同时上面录制弹幕按钮将失效', that);
}
var roomId = getParam("roomId");
var editArray = getParam("array")
@@ -119,7 +133,16 @@
var layer = layui.layer;
var laytpl = layui.laytpl;
var laydate = layui.laydate;
var inputTag = layui.inputTag;
var windowsIndex;
var keywordList=[];
inputTag = inputTag.render({
elem: '#keywordList',
data: [],
onChange: function (data, value, type) {
keywordList = data;
}
});
form.render();
// 提交事件
form.on('submit(submit-form)', function (data) {
@@ -136,6 +159,7 @@
weeks.push(i.toString());
}
}
field.keywordList = keywordList
field.weeks = weeks;
console.log(field)
if (editArray === null) {
@@ -230,6 +254,11 @@
for (let i = 0; i < json.weeks.length; i++) {
result[`week_${json.weeks[i]}`] = true;
}
if(json.keyword===undefined||json.keyword===null){
json.keyword=[]
}
keywordList = json.keyword;
inputTag.setData(json.keyword)
form.val('form-filter', result);
if (json.syncDanmuForLive) {
$("[name='recordDanmu']").prop("disabled", true);