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/plugins/webhook/webhook_index.py

68 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不存在!')