后台管理-功能管理增加废弃源清理功能

This commit is contained in:
晚风拂柳颜 2023-07-03 10:41:43 +08:00
parent 70420eccdd
commit 6a4153da36
4 changed files with 55 additions and 2 deletions

View File

@ -21,7 +21,7 @@ from utils.parser import runJScode
from werkzeug.utils import secure_filename from werkzeug.utils import secure_filename
from utils.web import md5 from utils.web import md5
from utils.common_api import js_render from utils.common_api import js_render
from utils.files import get_jar_list from utils.files import get_jar_list, get_jsd_list, get_drop_js
admin = Blueprint("admin", __name__) admin = Blueprint("admin", __name__)
@ -364,6 +364,25 @@ def admin_change_use_py():
msg = f'已修改的配置记录id为:{id},结果为{state}' msg = f'已修改的配置记录id为:{id},结果为{state}'
return R.success(msg) return R.success(msg)
@admin.route('/clear_drop')
def admin_clear_drop():
if not verfy_token():
return R.failed('请登录后再试')
jsd_list = get_jsd_list()
logger.info(f'jsd文件列表:{jsd_list}')
js_list = get_drop_js(jsd_list)
rm_list = []
for i in range(len(js_list)):
js_file = js_list[i]
# shutil.rmtree(js_file, ignore_errors=False, onerror=None)
if os.path.exists(js_file):
os.remove(js_file)
rm_list.append(jsd_list[i][:-1])
logger.info(f'待删除js文件列表:{rm_list}')
rm_str = ','.join(rm_list)
msg = f'清理完毕,本次共计清理{len(rm_list)}\n {rm_str}'
return R.success(msg)
# @admin.route('/get_use_py') # @admin.route('/get_use_py')
# def admin_get_use_py(): # def admin_get_use_py():

View File

@ -1 +1 @@
3.9.45beta3 3.9.45beta4

View File

@ -233,6 +233,22 @@
location.href = '/admin/logtail'; location.href = '/admin/logtail';
}); });
$('#clear_drop').click(function () {
if(confirm('若js目录存在同名的jsd文件则视为该源为废弃源。执行此功能将清理与jsd文件同名的js文件。执行此功能前请确保项目的jsd文件跟仓库一致防止误删。推荐进容器 rm -rf js/*.jsd 后强制升级一次再使用此功能。立即执行则确认否则取消执行')){
$.get("/admin/clear_drop", function (data, status) {
console.log(data);
if (data.code === 200) {
alert(data.msg);
location.reload();
} else {
alert(data.msg);
console.log('清理失败了...');
return false
}
});
}
});
$('#lives').click(function () { $('#lives').click(function () {
location.href = '/admin/lives' location.href = '/admin/lives'
}); });
@ -275,6 +291,7 @@
<li><a href="/layui/index">未来功能</a></li> <li><a href="/layui/index">未来功能</a></li>
<li><a href="javascript:void(0);" class="funcbtn" id="logtail">在线日志</a></li> <li><a href="javascript:void(0);" class="funcbtn" id="logtail">在线日志</a></li>
<li><a href="/vods" class="funcbtn" target="_blank">搜索看板</a></li> <li><a href="/vods" class="funcbtn" target="_blank">搜索看板</a></li>
<li><a href="javascript:void(0);" class="funcbtn" id="clear_drop">废弃源清理</a></li>
</ul> </ul>
</li> </li>

View File

@ -78,6 +78,23 @@ def get_jar_list():
# jar_list = [file.replace('.jar', '') for file in jars] # jar_list = [file.replace('.jar', '') for file in jars]
return jars return jars
def get_drop_js(jsd_list):
base_path = os.path.dirname(os.path.abspath(os.path.dirname(__file__))) # 上级目录
js_path = os.path.join(base_path, 'js')
js_list = [os.path.join(js_path, jsd.replace('jsd','js')) for jsd in jsd_list]
return js_list
def get_jsd_list():
base_path = os.path.dirname(os.path.abspath(os.path.dirname(__file__))) # 上级目录
js_path = os.path.join(base_path, 'js')
if not os.path.exists(js_path):
os.makedirs(js_path, exist_ok=True)
logger.info(f'初始化{js_path}目录')
jsds = os.listdir(js_path)
jsds = list(filter(lambda x: str(x).endswith('.jsd'), jsds))
return jsds
def custom_merge(original:dict,custom:dict): def custom_merge(original:dict,custom:dict):
""" """
合并用户配置 合并用户配置