mdserver-web/web/admin/task/__init__.py

92 lines
2.9 KiB
Python
Raw Permalink Normal View History

2024-10-19 09:27:24 -04:00
# coding:utf-8
# ---------------------------------------------------------------------------------
# MW-Linux面板
# ---------------------------------------------------------------------------------
# copyright (c) 2018-∞(https://github.com/midoks/mdserver-web) All rights reserved.
# ---------------------------------------------------------------------------------
# Author: midoks <midoks@163.com>
# ---------------------------------------------------------------------------------
2024-11-25 11:37:55 -05:00
import json
import time
2024-10-19 09:27:24 -04:00
from flask import Blueprint, render_template
2024-10-29 06:47:46 -04:00
from flask import request
2024-10-29 12:55:34 -04:00
from admin.user_login_check import panel_login_required
2024-10-29 06:47:46 -04:00
import core.mw as mw
2024-11-03 05:14:25 -05:00
import utils.task as MwTasks
2024-11-04 06:08:39 -05:00
import thisdb
2024-10-19 09:27:24 -04:00
blueprint = Blueprint('task', __name__, url_prefix='/task', template_folder='../../templates/default')
2024-10-26 14:23:12 -04:00
2024-12-03 11:14:53 -05:00
@blueprint.route('/count', endpoint='task_count',methods=['GET','POST'])
2024-10-29 12:55:34 -04:00
@panel_login_required
2024-10-19 09:27:24 -04:00
def task_count():
2024-12-03 10:26:15 -05:00
return mw.returnData(True, 'ok',thisdb.getTaskUnexecutedCount())
2024-10-29 06:47:46 -04:00
@blueprint.route('/list', endpoint='list', methods=['POST'])
2024-10-29 12:55:34 -04:00
@panel_login_required
2024-10-29 06:47:46 -04:00
def list():
p = request.form.get('p', '1')
limit = request.form.get('limit', '10').strip()
search = request.form.get('search', '').strip()
2024-11-04 12:03:37 -05:00
return MwTasks.getTaskPage(int(p), int(limit))
2024-10-29 06:47:46 -04:00
@blueprint.route('/get_exec_log', endpoint='get_exec_log', methods=['POST'])
2024-10-29 12:55:34 -04:00
@panel_login_required
2024-10-29 06:47:46 -04:00
def get_exec_log():
2024-12-09 14:23:19 -05:00
file = mw.getPanelTaskExecLog()
2024-10-29 06:47:46 -04:00
return mw.getLastLine(file, 100)
@blueprint.route('/get_task_speed', endpoint='get_task_speed', methods=['POST'])
2024-10-29 12:55:34 -04:00
@panel_login_required
2024-10-29 06:47:46 -04:00
def get_task_speed():
2024-11-04 11:46:25 -05:00
count = thisdb.getTaskUnexecutedCount()
2024-10-29 06:47:46 -04:00
if count == 0:
return mw.returnData(False, '当前没有任务队列在执行-2!')
2024-11-04 11:46:25 -05:00
row = thisdb.getTaskFirstByRun()
2024-10-29 06:47:46 -04:00
if row is None:
return mw.returnData(False, '当前没有任务队列在执行-3!')
2024-12-09 14:15:26 -05:00
task_logfile = mw.getPanelTaskExecLog()
2024-10-29 06:47:46 -04:00
data = {}
data['name'] = row['name']
data['cmd'] = row['cmd']
if row['type'] == 'download':
2024-11-25 11:37:55 -05:00
readLine = ''
2024-10-29 06:47:46 -04:00
for i in range(3):
try:
readLine = mw.readFile(task_logfile)
2024-11-25 11:37:55 -05:00
data['msg'] = json.loads(readLine)
data['isDownload'] = True
2024-10-29 06:47:46 -04:00
except Exception as e:
if i == 2:
2024-11-04 11:46:25 -05:00
thisdb.setTaskStatus(row['id'],0)
2024-10-29 06:49:21 -04:00
return mw.returnData(False, '当前没有任务队列在执行-4:' + str(e))
2024-10-29 06:47:46 -04:00
time.sleep(0.5)
else:
data['msg'] = mw.getLastLine(task_logfile, 10)
data['isDownload'] = False
2024-12-02 09:09:34 -05:00
data['count'] = count
2024-12-02 09:08:53 -05:00
data['task'] = thisdb.getTaskRunList(1,6)
2024-10-29 06:47:46 -04:00
return data
2024-11-03 05:14:25 -05:00
@blueprint.route('/remove_task', endpoint='remove_task', methods=['POST'])
@panel_login_required
def remove_task():
task_id = request.form.get('id', '')
if task_id == '':
return mw.returnData(False, '任务ID不能为空!')
return MwTasks.removeTask(task_id)
2024-10-29 06:47:46 -04:00