From 063bc092e6dd7f8055a7b7c70a7bb05b9cc793fb Mon Sep 17 00:00:00 2001 From: midoks Date: Mon, 31 Oct 2022 02:30:55 +0800 Subject: [PATCH] 0.10.2 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * 修复上次更新的UI问题。 * `FTP存储空间` 备份数据库修复。 * 修复计划任务执行Python脚本的编码问题。 * 添加,修改计划任务参数强校验。 --- README.md | 14 ++--- class/core/config_api.py | 2 +- class/core/crontab_api.py | 59 +++++++++++++++++++ route/static/app/crontab.js | 111 ++++++++++++++++++++++-------------- scripts/update/centos.sh | 2 +- 5 files changed, 135 insertions(+), 53 deletions(-) diff --git a/README.md b/README.md index 4d6aece2d..b89b5c640 100644 --- a/README.md +++ b/README.md @@ -92,16 +92,12 @@ docker run -itd --name mw-server --privileged=true -p 7200:7200 -p 80:80 -p 443: ``` -### 版本更新 0.10.1 - -* MySQL添加外部导入功能。 -* OpenResty添加性能调整功能。 -* 优化ubuntu22.04安装过程。 -* Debian9友好,【SSH终端 1.0】无法使用。 -* phpMyAdmin优化,需要卸载重装。 -* 文件管理解压直接覆盖FIX。 -* 优化文件多选的BUG。 +### 版本更新 0.10.2 +* 修复上次更新的UI问题。 +* `FTP存储空间` 备份数据库修复。 +* 修复计划任务执行Python脚本的编码问题。 +* 添加,修改计划任务参数强校验。 ### JSDelivr安装地址 diff --git a/class/core/config_api.py b/class/core/config_api.py index 1b883b212..2490a3cdd 100755 --- a/class/core/config_api.py +++ b/class/core/config_api.py @@ -15,7 +15,7 @@ from flask import request class config_api: - __version = '0.10.1' + __version = '0.10.2' def __init__(self): pass diff --git a/class/core/crontab_api.py b/class/core/crontab_api.py index 9c0676dca..502a3deba 100755 --- a/class/core/crontab_api.py +++ b/class/core/crontab_api.py @@ -115,6 +115,56 @@ class crontab_api: 'id=?', (sid,)).field(self.field).find() return mw.getJson(data) + # 参数校验 + def cronCheck(self, params): + + if params['stype'] == 'site' or params['stype'] == 'database' or params['stype'] == 'logs': + if params['save'] == '': + return False, '保留份数不能为空!' + + if params['type'] == 'day': + if params['hour'] == '': + return False, '小时不能为空!' + if params['minute'] == '': + return False, '分钟不能为空!' + + if params['type'] == 'day-n': + if params['where1'] == '': + return False, '天不能为空!' + if params['hour'] == '': + return False, '小时不能为空!' + if params['minute'] == '': + return False, '分钟不能为空!' + if params['type'] == 'hour': + if params['minute'] == '': + return False, '分钟不能为空!' + + if params['type'] == 'hour-n': + if params['hour'] == '': + return False, '小时不能为空!' + if params['minute'] == '': + return False, '分钟不能为空!' + + if params['type'] == 'minute-n': + if params['minute'] == '': + return False, '分钟不能为空!' + + if params['type'] == 'week': + if params['hour'] == '': + return False, '小时不能为空!' + if params['minute'] == '': + return False, '分钟不能为空!' + + if params['type'] == 'month': + if params['where1'] == '': + return False, '日不能为空!' + if params['hour'] == '': + return False, '小时不能为空!' + if params['minute'] == '': + return False, '分钟不能为空!' + + return True, 'OK' + def modifyCrondApi(self): sid = request.form.get('id', '') iname = request.form.get('name', '') @@ -147,6 +197,11 @@ class crontab_api: 'sbody': sbody, 'urladdress': urladdress, } + + is_check_pass, msg = self.cronCheck(params) + if not is_check_pass: + return mw.returnJson(is_check_pass, msg) + cuonConfig, get, name = self.getCrondCycle(params) cronInfo = mw.M('crontab').where( 'id=?', (sid,)).field(self.field).find() @@ -210,6 +265,10 @@ class crontab_api: 'urladdress': urladdress, } + is_check_pass, msg = self.cronCheck(params) + if not is_check_pass: + return mw.returnJson(is_check_pass, msg) + addData = self.add(params) if addData > 0: return mw.returnJson(True, '添加成功') diff --git a/route/static/app/crontab.js b/route/static/app/crontab.js index 89811e8df..ddd30da2d 100755 --- a/route/static/app/crontab.js +++ b/route/static/app/crontab.js @@ -68,26 +68,25 @@ function getCronData(page){ } } - cbody += "\ - \ - "+rdata.data[i].name+"\ - "+status+"\ - "+rdata.data[i].type+"\ - "+rdata.data[i].cycle+"\ - "+cron_save +"\ - "+cron_backupto+"\ - "+rdata.data[i].addtime+"\ - \ - 执行 | \ - 编辑 | \ - 日志 | \ - 删除\ - \ - "; + cbody += "\ + "+rdata.data[i].name+"\ + "+status+"\ + "+rdata.data[i].type+"\ + "+rdata.data[i].cycle+"\ + "+cron_save +"\ + "+cron_backupto+"\ + "+rdata.data[i].addtime+"\ + \ + 执行 | \ + 编辑 | \ + 日志 | \ + 删除\ + \ + "; } } $('#cronbody').html(cbody); - $('#softPage').html(rdata.list) + $('#softPage').html(rdata.list); },'json'); } @@ -97,12 +96,18 @@ function setTaskStatus(id,status){ if (index > 0) { var loadT = layer.msg('正在设置状态,请稍后...',{icon:16,time:0,shade: [0.3, '#000']}); $.post('/crontab/set_cron_status',{id:id},function(rdata){ - layer.closeAll(); - layer.close(confirm); - layer.msg(rdata.data,{icon:rdata.status?1:2}); - if(rdata.status) { - getCronData(1); + + if (!rdata.status){ + layer.msg(rdata.msg,{icon:rdata.status?1:2}); + return; } + + showMsg(rdata.msg,function(){ + layer.close(loadT); + layer.close(confirm); + getCronData(1); + },{icon:rdata.status?1:2},2000); + },'json'); } }); @@ -110,22 +115,24 @@ function setTaskStatus(id,status){ //执行任务脚本 function startTask(id){ - layer.msg('正在处理,请稍候...',{icon:16,time:0,shade: [0.3, '#000']}); + var loadT = layer.msg('正在处理,请稍候...',{icon:16,time:0,shade: [0.3, '#000']}); var data='id='+id; $.post('/crontab/start_task',data,function(rdata){ - layer.closeAll(); - layer.msg(rdata.msg,{icon:rdata.status?1:2}); + showMsg(rdata.msg, function(){ + layer.close(loadT); + },{icon:rdata.status?1:2,time:2000}); },'json'); } //清空日志 function closeLogs(id){ - layer.msg('正在处理,请稍候...',{icon:16,time:0,shade: [0.3, '#000']}); + var loadT = layer.msg('正在处理,请稍候...',{icon:16,time:0,shade: [0.3, '#000']}); var data='id='+id; $.post('/crontab/del_logs',data,function(rdata){ - layer.closeAll(); - layer.msg(rdata.msg,{icon:rdata.status?1:2}); + showMsg(rdata.msg, function(){ + layer.close(loadT); + },{icon:rdata.status?1:2,time:2000}); },'json'); } @@ -136,8 +143,8 @@ function planDel(id,name){ var load = layer.msg('正在处理,请稍候...',{icon:16,time:0,shade: [0.3, '#000']}); var data='id='+id; $.post('/crontab/del',data,function(rdata){ - layer.close(load); showMsg(rdata.msg, function(){ + layer.close(load); getCronData(1); },{icon:rdata.status?1:2,time:2000}); },'json'); @@ -234,15 +241,15 @@ function planAdd(){ break; } + var where1 = $('#excode_week b').attr('val'); + $("#set-Config input[name='where1']").val(where1); + if(where1 > is1 || where1 < is2){ $("#ptime input[name='where1']").focus(); layer.msg('表单不合法,请重新输入!',{icon:2}); return; } - where1 = $('#excode_week b').attr('val'); - $("#set-Config input[name='where1']").val(where1); - var hour = $("#ptime input[name='hour']").val(); if(hour > 23 || hour < 0){ $("#ptime input[name='hour']").focus(); @@ -322,20 +329,32 @@ function planAdd(){ var where1 = $("#ptime input[name='where1']").val(); $("#set-Config input[name='where1']").val(where1); } + + if (type == 'day-n'){ + var where1 = $("#ptime input[name='where1']").val(); + $("#set-Config input[name='where1']").val(where1); + } + + if (type == 'hour-n'){ + var where1 = $("#ptime input[name='where1']").val(); + $("#set-Config input[name='hour']").val(where1); + } $("#set-Config input[name='sName']").val(sName); layer.msg('正在添加,请稍候...!',{icon:16,time:0,shade: [0.3, '#000']}); var data = $("#set-Config").serialize() + '&sBody='+sBody + '&urladdress=' + urladdress; - - console.log(data); + // console.log(data); $.post('/crontab/add',data,function(rdata){ if(!rdata.status) { layer.msg(rdata.msg,{icon:2, time:2000}); return; } - layer.closeAll(); - layer.msg(rdata.msg,{icon:rdata.status?1:2}); - getCronData(1); + + showMsg(rdata.msg, function(){ + layer.closeAll(); + getCronData(1); + },{icon:rdata.status?1:2}, 2000); + },'json'); } @@ -829,12 +848,20 @@ function editTaskInfo(id){ obj.from.where1 = obj.from.minute; obj.from.minute = ''; } - layer.msg('正在保存编辑内容,请稍后...',{icon:16,time:0,shade: [0.3, '#000']}); + var loadT = layer.msg('正在保存编辑内容,请稍后...',{icon:16,time:0,shade: [0.3, '#000']}); $.post('/crontab/modify_crond',obj.from,function(rdata){ - layer.closeAll(); - getCronData(1); - layer.msg(rdata.msg,{icon:rdata.status?1:2}); - initDropdownMenu(); + + if (!rdata.status){ + layer.msg(rdata.msg,{icon:rdata.status?1:2}); + return; + } + + showMsg(rdata.msg, function(){ + layer.close(loadT); + getCronData(1); + initDropdownMenu(); + },{icon:rdata.status?1:2}, 2000); + },'json'); }); },100); diff --git a/scripts/update/centos.sh b/scripts/update/centos.sh index ea3c46697..a812d7d47 100755 --- a/scripts/update/centos.sh +++ b/scripts/update/centos.sh @@ -1,7 +1,7 @@ #!/bin/bash PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:~/bin export PATH -LANG=en_US.UTF-8 +export LANG=en_US.UTF-8 if [ -f /etc/motd ];then