async def api_applyConfig(items: v2rayItems, username: str = Depends(get_current_user)): if not os.path.exists("/etc/v2ray/config.json"): logging.info("/etc/v2ray/config.json is nonexistent,") return {"result": False, "message": None} items_dict = items.dict().get('config') # print(items_dict) if items_dict: serverConfig: dict = saveconfig("/etc/v2ray/config.json", items_dict) cmdr = V2ray.restart() log.info('restart ' + str(cmdr)) if cmdr: return { "result": True, "message": { "save": 'successful', "apply": 'successful' } } else: return { "result": False, "message": { "save": 'successful', "apply": 'failed' } }
async def api_serverConfig(username: str = Depends(get_current_user)): if not os.path.exists("/etc/v2ray/config.json"): logging.info("/etc/v2ray/config.json is nonexistent,") return {"result": False, "message": None} serverConfig: dict = loadconfig("/etc/v2ray/config.json") stats = V2ray.v2rayStats() return {"result": True, "message": serverConfig, "stats": stats}
async def api_logs(id): logstr = V2ray.logs(id) return {"result": True, "message": logstr}
def api_rtlog(): logstr = V2ray.rtlog() return {"result": True, "message": logstr}
def api_v2rayApps_fileurl(): r = V2ray.v2rayApps_fileurl(v2rayApps) if r: return {"result": True, "message": r} else: return {"result": False, "message": None}
def api_v2rayRestart(username: str = Depends(get_current_user)): cmdr = V2ray.restart() if cmdr: return {"result": True, "message": 'successful'} else: return {"result": False, "message": 'failed'}
def api_v2rayUpdate(username: str = Depends(get_current_user)): V2ray.update() return {"result": True}
@app.get("/api/rtlog") def api_rtlog(): logstr = V2ray.rtlog() return {"result": True, "message": logstr} @app.get("/api/logs/{id}") async def api_logs(id): logstr = V2ray.logs(id) return {"result": True, "message": logstr} if __name__ == '__main__': debug = False # logging.info("启动参数:" + str(sys.argv)) if len(sys.argv) > 1 and sys.argv[1] == '--debug': # (arguments, value) = sys.argv[1].split('=') debug = True if (platform.system() != "Linux"): debug = True else: V2ray.check() logging.info("当前工作路径:" + str(os.getcwd()) + ",启动参数:debug=" + str(debug)) time.sleep(1) # app.mqttc.start() (filename, extension) = os.path.splitext(os.path.basename(__file__)) appStr = filename + ':app' uvicorn.run(appStr, host="127.0.0.1", port=8000, reload=debug)