diff --git a/controllers/admin.py b/controllers/admin.py index e8192dd..5a66b01 100644 --- a/controllers/admin.py +++ b/controllers/admin.py @@ -21,7 +21,7 @@ from utils.parser import runJScode from werkzeug.utils import secure_filename from utils.web import md5 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__) @@ -364,6 +364,25 @@ def admin_change_use_py(): msg = f'已修改的配置记录id为:{id},结果为{state}' 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') # def admin_get_use_py(): diff --git a/js/version.txt b/js/version.txt index 17675f8..84c94cf 100644 --- a/js/version.txt +++ b/js/version.txt @@ -1 +1 @@ -3.9.45beta3 \ No newline at end of file +3.9.45beta4 \ No newline at end of file diff --git a/templates/admin.html b/templates/admin.html index 74e58fb..8da2af7 100644 --- a/templates/admin.html +++ b/templates/admin.html @@ -233,6 +233,22 @@ 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 () { location.href = '/admin/lives' }); @@ -275,6 +291,7 @@
  • 未来功能
  • 在线日志
  • 搜索看板
  • +
  • 废弃源清理
  • diff --git a/utils/files.py b/utils/files.py index 1343a55..b63be9f 100644 --- a/utils/files.py +++ b/utils/files.py @@ -78,6 +78,23 @@ def get_jar_list(): # jar_list = [file.replace('.jar', '') for file in 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): """ 合并用户配置