Simple Linux Panel
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 
mdserver-web/class/core/crontab_api.py

123 lines
4.8 KiB

# coding: utf-8
import psutil
import time
import os
import sys
import public
import re
import json
import pwd
from flask import request
class crontab_api:
def __init__(self):
pass
##### ----- start ----- ###
def listApi(self):
_list = public.M('crontab').where('', ()).field('id,name,type,where1,where_hour,where_minute,echo,addtime,status,save,backup_to,stype,sname,sbody,urladdress').limit(
'0,5').order('id desc').select()
data = []
for i in range(len(_list)):
tmp = _list[i]
if _list[i]['type'] == "day":
tmp['type'] = '每天'
tmp['cycle'] = public.getInfo('每天, {1}{2}分 执行', (str(
_list[i]['where_hour']), str(_list[i]['where_minute'])))
elif _list[i]['type'] == "day-n":
tmp['type'] = public.getInfo(
'{1}', (str(_list[i]['where1']),))
tmp['cycle'] = public.getInfo('每隔{1}天, {2}{3}分 执行', (str(
_list[i]['where1']), str(_list[i]['where_hour']), str(_list[i]['where_minute'])))
elif _list[i]['type'] == "hour":
tmp['type'] = '每小时'
tmp['cycle'] = public.getInfo(
'每小时, 第{1}分钟 执行', (str(_list[i]['where_minute']),))
elif _list[i]['type'] == "hour-n":
tmp['type'] = public.getInfo(
'{1}小时', (str(_list[i]['where1']),))
tmp['cycle'] = public.getInfo('{1}小时, 第{2}分钟 执行', (str(
_list[i]['where1']), str(_list[i]['where_minute'])))
elif _list[i]['type'] == "minute-n":
tmp['type'] = public.getInfo(
'{1}分钟', (str(_list[i]['where1']),))
tmp['cycle'] = public.getInfo(
'每隔{1}分钟执行', (str(_list[i]['where1']),))
elif _list[i]['type'] == "week":
tmp['type'] = '每周'
if not _list[i]['where1']:
_list[i]['where1'] = '0'
tmp['cycle'] = public.getInfo('每周{1}, {2}{3}分执行', (self.toWeek(int(
_list[i]['where1'])), str(_list[i]['where_hour']), str(_list[i]['where_minute'])))
elif _list[i]['type'] == "month":
tmp['type'] = '每月'
tmp['cycle'] = public.getInfo('每月, {1}{2}{3}分执行', (str(_list[i]['where1']), str(
_list[i]['where_hour']), str(_list[i]['where_minute'])))
data.append(tmp)
_ret = {}
_ret['data'] = data
count = public.M('crontab').where('', ()).count()
_page = {}
_page['count'] = count
_page['tojs'] = 'remind'
_ret['page'] = public.getPage(_page)
return public.getJson(_ret)
def logsApi(self):
return public.returnJson(False, '添加失败')
def addApi(self):
name = request.form.get('name', '')
type = request.form.get('type', '')
where1 = request.form.get('where1', '')
hour = request.form.get('hour', '')
minute = request.form.get('minute', '')
save = request.form.get('save', '')
backupTo = request.form.get('backupTo', '')
sType = request.form.get('sType', '')
sName = request.form.get('sName', '')
sBody = request.form.get('sBody', '')
urladdress = request.form.get('urladdress', '')
if len(name) < 1:
return public.returnJson(False, '任务名称不能为空!')
addData = public.M('crontab').add('name,type,where1,where_hour,where_minute,echo,addtime,status,save,backup_to,stype,sname,sbody,urladdress',
(name, type, where1, hour, minute, name,
time.strftime('%Y-%m-%d %X', time.localtime()), 1, save, backupTo, sType, sName, sBody, urladdress))
if addData > 0:
return public.returnJson(True, '添加成功')
return public.returnJson(False, '添加失败')
def delApi(self):
id = request.form.get('id', '')
try:
public.M('crontab').where("id=?", (id,)).delete()
return public.returnJson(True, '添加成功')
except Exception as e:
return public.returnJson(False, '删除失败')
##### ----- start ----- ###
# 转换大写星期
def toWeek(self, num):
wheres = {
0: '',
1: '',
2: '',
3: '',
4: '',
5: '',
6: ''
}
try:
return wheres[num]
except:
return ''