diff --git a/plugins/memcached/index.py b/plugins/memcached/index.py index 19bfc3078..fe7620775 100755 --- a/plugins/memcached/index.py +++ b/plugins/memcached/index.py @@ -62,13 +62,16 @@ def getArgs(): if args_len == 1: t = args[0].strip('{').strip('}') - t = t.split(':') + if t.strip() == '': + tmp = [] + else: + t = t.split(':') + tmp[t[0]] = t[1] tmp[t[0]] = t[1] elif args_len > 1: for i in range(len(args)): t = args[i].split(':') tmp[t[0]] = t[1] - return tmp diff --git a/plugins/migration_api/index.html b/plugins/migration_api/index.html index 537219fd6..01c8eb482 100755 --- a/plugins/migration_api/index.html +++ b/plugins/migration_api/index.html @@ -223,8 +223,7 @@ label.checkbox_label span {
- 只需在发送数据服务器安装本软件,请填写『 接收数据服务器 』资料, - 迁移教程 + 只需在发送数据服务器安装本软件,请填写『 接收数据服务器 』资料。 ?
@@ -287,7 +286,6 @@ label.checkbox_label span { \ No newline at end of file diff --git a/plugins/migration_api/index.py b/plugins/migration_api/index.py index 15fe59413..8b9ebbedc 100755 --- a/plugins/migration_api/index.py +++ b/plugins/migration_api/index.py @@ -33,26 +33,17 @@ def getInitDFile(): def getConf(): - path = getServerDir() + "/init.d/memcached" + path = getServerDir() + "/ma.cfg" return path -def getConfEnv(): - path = getServerDir() + "/memcached.env" - return path - - -def getConfTpl(): - path = getPluginDir() + "/init.d/memcached.tpl" - return path - +def getCfgData(): + path = getConf() + if not os.path.exists(path): + mw.writeFile(path, '{}') -def getMemPort(): - path = getServerDir() + '/memcached.env' - content = mw.readFile(path) - rep = 'PORT\s*=\s*(\d*)' - tmp = re.search(rep, content) - return tmp.groups()[0] + t = mw.returnJson(path) + return json.loads(t) def getArgs(): @@ -62,13 +53,16 @@ def getArgs(): if args_len == 1: t = args[0].strip('{').strip('}') - t = t.split(':') + if t.strip() == '': + tmp = [] + else: + t = t.split(':') + tmp[t[0]] = t[1] tmp[t[0]] = t[1] elif args_len > 1: for i in range(len(args)): t = args[i].split(':') tmp[t[0]] = t[1] - return tmp @@ -84,163 +78,15 @@ def status(): def initDreplace(): - - file_tpl = getConfTpl() - service_path = mw.getServerDir() - - initD_path = getServerDir() + '/init.d' - if not os.path.exists(initD_path): - os.mkdir(initD_path) - file_bin = initD_path + '/memcached' - - if not os.path.exists(file_bin): - content = mw.readFile(file_tpl) - content = content.replace('{$SERVER_PATH}', service_path) - mw.writeFile(file_bin, content) - mw.execShell('chmod +x ' + file_bin) - - # systemd - systemDir = mw.systemdCfgDir() - systemService = systemDir + '/memcached.service' - systemServiceTpl = getPluginDir() + '/init.d/memcached.service.tpl' - if os.path.exists(systemDir) and not os.path.exists(systemService): - service_path = mw.getServerDir() - se_content = mw.readFile(systemServiceTpl) - se_content = se_content.replace('{$SERVER_PATH}', service_path) - mw.writeFile(systemService, se_content) - mw.execShell('systemctl daemon-reload') - - envFile = getServerDir() + '/memcached.env' - if not os.path.exists(envFile): - wbody = "IP=127.0.0.1\n" - wbody = wbody + "PORT=11211\n" - wbody = wbody + "USER=root\n" - wbody = wbody + "MAXCONN=1024\n" - wbody = wbody + "CACHESIZE=1024\n" - wbody = wbody + "OPTIONS=''\n" - mw.writeFile(envFile, wbody) - - return file_bin - - -def memOp(method): - file = initDreplace() - - if not mw.isAppleSystem(): - data = mw.execShell('systemctl ' + method + ' ' + getPluginName()) - if data[1] == '': - return 'ok' - return data[1] - - data = mw.execShell(file + ' ' + method) - if data[1] == '': - return 'ok' - return data[1] - - -def start(): - return memOp('start') - - -def stop(): - return memOp('stop') - - -def restart(): - return memOp('restart') - - -def reload(): - return memOp('reload') - - -def runInfo(): - # 获取memcached状态 - import telnetlib - import re - port = getMemPort() - try: - tn = telnetlib.Telnet('127.0.0.1', int(port)) - tn.write(b"stats\n") - tn.write(b"quit\n") - data = tn.read_all() - if type(data) == bytes: - data = data.decode('utf-8') - data = data.replace('STAT', '').replace('END', '').split("\n") - result = {} - res = ['cmd_get', 'get_hits', 'get_misses', 'limit_maxbytes', 'curr_items', 'bytes', - 'evictions', 'limit_maxbytes', 'bytes_written', 'bytes_read', 'curr_connections'] - for d in data: - if len(d) < 3: - continue - t = d.split() - if not t[0] in res: - continue - result[t[0]] = int(t[1]) - result['hit'] = 1 - if result['get_hits'] > 0 and result['cmd_get'] > 0: - result['hit'] = float(result['get_hits']) / \ - float(result['cmd_get']) * 100 - - conf = mw.readFile(getServerDir() + '/memcached.env') - result['bind'] = re.search('IP=(.+)', conf).groups()[0] - result['port'] = int(re.search('PORT=(\d+)', conf).groups()[0]) - result['maxconn'] = int(re.search('MAXCONN=(\d+)', conf).groups()[0]) - result['cachesize'] = int( - re.search('CACHESIZE=(\d+)', conf).groups()[0]) - return mw.getJson(result) - except Exception as e: - return mw.getJson({}) - - -def saveConf(): - - args = getArgs() - data = checkArgs(args, ['ip', 'port', 'maxconn', 'maxsize']) - if not data[0]: - return data[1] - - envFile = getServerDir() + '/memcached.env' - - wbody = "IP=" + args['ip'] + "\n" - wbody = wbody + "PORT=" + args['port'] + "\n" - wbody = wbody + "USER=root\n" - wbody = wbody + "MAXCONN=" + args['maxconn'] + "\n" - wbody = wbody + "CACHESIZE=" + args['maxconn'] + "\n" - wbody = wbody + "OPTIONS=''\n" - mw.writeFile(envFile, wbody) - - restart() - return 'save ok' - - -def initdStatus(): - if mw.isAppleSystem(): - return "Apple Computer does not support" - - shell_cmd = 'systemctl status ' + \ - getPluginName() + ' | grep loaded | grep "enabled;"' - data = mw.execShell(shell_cmd) - if data[0] == '': - return 'fail' return 'ok' -def initdInstall(): - if mw.isAppleSystem(): - return "Apple Computer does not support" - - mw.execShell('systemctl enable ' + getPluginName()) - return 'ok' +def stepOne(): + data = getCfgData() + print(data) + return mw.returnJson(True, 'ok') -def initdUinstall(): - if not app_debug: - if mw.isAppleSystem(): - return "Apple Computer does not support" - - mw.execShell('systemctl disable ' + getPluginName()) - return 'ok' if __name__ == "__main__": func = sys.argv[1] @@ -250,21 +96,7 @@ if __name__ == "__main__": print(start()) elif func == 'stop': print(stop()) - elif func == 'restart': - print(restart()) - elif func == 'reload': - print(reload()) - elif func == 'initd_status': - print(initdStatus()) - elif func == 'initd_install': - print(initdInstall()) - elif func == 'initd_uninstall': - print(initdUinstall()) - elif func == 'run_info': - print(runInfo()) - elif func == 'conf_env': - print(getConfEnv()) - elif func == 'save_conf': + elif func == 'step_one': print(saveConf()) else: print('error') diff --git a/plugins/migration_api/info.json b/plugins/migration_api/info.json index 9d6a94b4b..2de0976ff 100755 --- a/plugins/migration_api/info.json +++ b/plugins/migration_api/info.json @@ -1,8 +1,8 @@ { "sort": 7, - "ps": "一键迁移", + "ps": "[潜龙勿用]一键迁移,仅网站数据和MySQL数据", "name": "migration_api", - "title": "一键迁移", + "title": "一键迁移API", "shell": "install.sh", "versions":["1.0"], "updates":["1.0"], diff --git a/plugins/migration_api/js/app.js b/plugins/migration_api/js/app.js index f27044573..13fa9d154 100755 --- a/plugins/migration_api/js/app.js +++ b/plugins/migration_api/js/app.js @@ -58,11 +58,23 @@ function maPostCallbak(method, args, callback){ } +function initStep1(){ + maPost('step_one',{}, function(rdata){ + console.log(rdata); + }); +} + function initStep(){ + console.log($('.infoNext')); $('.infoNext').click(function(){ var step = $('.step_head .active span').text(); console.log(step); + initStep1(); + switch(step){ + '1':initStep1();break; + '2':initStep2();break; + } }); } diff --git a/plugins/redis/index.py b/plugins/redis/index.py index a287af960..62a8686c2 100755 --- a/plugins/redis/index.py +++ b/plugins/redis/index.py @@ -54,13 +54,16 @@ def getArgs(): if args_len == 1: t = args[0].strip('{').strip('}') - t = t.split(':') + if t.strip() == '': + tmp = [] + else: + t = t.split(':') + tmp[t[0]] = t[1] tmp[t[0]] = t[1] elif args_len > 1: for i in range(len(args)): t = args[i].split(':') tmp[t[0]] = t[1] - return tmp diff --git a/plugins/webhook/index.py b/plugins/webhook/index.py index 106da859b..4fb14d030 100755 --- a/plugins/webhook/index.py +++ b/plugins/webhook/index.py @@ -34,13 +34,16 @@ def getArgs(): if args_len == 1: t = args[0].strip('{').strip('}') - t = t.split(':') + if t.strip() == '': + tmp = [] + else: + t = t.split(':') + tmp[t[0]] = t[1] tmp[t[0]] = t[1] elif args_len > 1: for i in range(len(args)): t = args[i].split(':') tmp[t[0]] = t[1] - return tmp diff --git a/plugins/webssh/index.py b/plugins/webssh/index.py index 69d748ba5..3acf2c530 100755 --- a/plugins/webssh/index.py +++ b/plugins/webssh/index.py @@ -43,13 +43,16 @@ class App(): if args_len == 1: t = args[0].strip('{').strip('}') - t = t.split(':') + if t.strip() == '': + tmp = [] + else: + t = t.split(':') + tmp[t[0]] = t[1] tmp[t[0]] = t[1] elif args_len > 1: for i in range(len(args)): t = args[i].split(':') tmp[t[0]] = t[1] - return tmp def checkArgs(self, data, ck=[]): diff --git a/requirements.txt b/requirements.txt index 135d82cb1..a68c1c80c 100644 --- a/requirements.txt +++ b/requirements.txt @@ -14,7 +14,7 @@ psutil==5.9.1 chardet==3.0.4 flask-sqlalchemy==2.3.2 pyOpenSSL==22.0.0 -cryptography==36.0.1 +cryptography==39.0.1 configparser==5.2.0 python-engineio==4.3.2 python-socketio>=4.2.0 @@ -28,4 +28,4 @@ Jinja2>=2.11.2 flask-caching>=1.10.1 bcrypt==3.1.3 PyMySQL==1.0.2 -whitenoise==5.3.0 \ No newline at end of file +whitenoise==5.3.0