Beispiel #1
0
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'
            }
        }
Beispiel #2
0
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}
Beispiel #3
0
async def api_logs(id):
    logstr = V2ray.logs(id)
    return {"result": True, "message": logstr}
Beispiel #4
0
def api_rtlog():
    logstr = V2ray.rtlog()
    return {"result": True, "message": logstr}
Beispiel #5
0
def api_v2rayApps_fileurl():
    r = V2ray.v2rayApps_fileurl(v2rayApps)
    if r:
        return {"result": True, "message": r}
    else:
        return {"result": False, "message": None}
Beispiel #6
0
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'}
Beispiel #7
0
def api_v2rayUpdate(username: str = Depends(get_current_user)):
    V2ray.update()
    return {"result": True}
Beispiel #8
0

@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)