mirror of https://github.com/midoks/mdserver-web
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.
67 lines
1.5 KiB
67 lines
1.5 KiB
# coding:utf-8
|
|
|
|
import sys
|
|
import io
|
|
import os
|
|
import time
|
|
import re
|
|
import json
|
|
|
|
web_dir = os.getcwd() + "/web"
|
|
if os.path.exists(web_dir):
|
|
sys.path.append(web_dir)
|
|
os.chdir(web_dir)
|
|
|
|
import core.mw as mw
|
|
|
|
app_debug = False
|
|
if mw.isAppleSystem():
|
|
app_debug = True
|
|
|
|
|
|
def getPluginName():
|
|
return 'webhook'
|
|
|
|
def getPluginDir():
|
|
return mw.getPluginDir() + '/' + getPluginName()
|
|
|
|
|
|
def getServerDir():
|
|
return mw.getServerDir() + '/' + getPluginName()
|
|
|
|
|
|
def getCfgFilePath():
|
|
return getServerDir() + "/cfg.json"
|
|
|
|
|
|
def getCfg():
|
|
cfg = getCfgFilePath()
|
|
if not os.path.exists(cfg):
|
|
initCfg()
|
|
|
|
data = mw.readFile(cfg)
|
|
data = json.loads(data)
|
|
return data
|
|
|
|
|
|
def runShellArgs(args):
|
|
data = getCfg()
|
|
for i in range(len(data)):
|
|
if data[i]['access_key'] == args['access_key']:
|
|
script_dir = getServerDir() + "/scripts"
|
|
shellFile = script_dir + '/' + args['access_key']
|
|
param = args['params']
|
|
if param == '':
|
|
param = 'no-parameters'
|
|
|
|
param = re.sub("\"", '', param)
|
|
|
|
cmd = "bash {} {} >> {}.log 2>&1 &".format(
|
|
shellFile, param, shellFile)
|
|
# print(cmd)
|
|
os.system(cmd)
|
|
data[i]['count'] += 1
|
|
data[i]['uptime'] = int(time.time())
|
|
mw.writeFile(getCfgFilePath(), json.dumps(data))
|
|
return mw.returnJson(True, '运行成功!')
|
|
return mw.returnJson(False, '指定Hook不存在!')
|
|
|