def prepare_ping(): j = parse_json_from_file(PROJECT_CONFIG_FILE) manager = Manager(server_file_name=j['servers_file'], binary=j['v2ray_binary']) choices = ["ping all"] l = manager.server_number for i in range(l): s = manager.get_server(i) choices.append(str(i + 1) + " " + s['ps'] + " " + s['host']) prompt = ScrollBar(height=10, choices=choices) result = prompt.launch() index = choices.index(result) print("index ps time") if index == 0: for i in range(l): s = manager.get_server(i) r = ping(host=s['host']) result = str(r) + "ms" if r != -1 else "timeout" print(str(i + 1) + " " + s['ps'] + " " + result) else: s = manager.get_server(index - 1) r = ping(host=s['host']) result = str(r) + "ms" if r != -1 else "timeout" print(str(index) + " " + s['ps'] + " " + result)
def servers_export(index, path): j = parse_json_from_file(PROJECT_CONFIG_FILE) manager = Manager(server_file_name=j['servers_file'], binary=j['v2ray_binary']) s = manager.get_server(index) write_to_file(path, "w", json.dumps(s['config']))
def proxy(index=None, config_file=None): j = parse_json_from_file(PROJECT_CONFIG_FILE) manager = Manager(server_file_name=j['servers_file'], binary=j['v2ray_binary']) daemon = False if "--daemon" in sys.argv or "-d" in sys.argv: daemon = True if index is not None: index = int(index) server = manager.get_server(index - 1) print("Choose: " + server['ps']) ports = [] for c in server['config']['inbounds']: if "port" in c: ports.append(c['port']) print("Local port: " + str(ports)) manager.proxy(config=server['config'], daemon=daemon) elif config_file is not None: config = parse_json_from_file(config_file) ports = [] for c in config['inbounds']: if "port" in c: ports.append(c['port']) print("Local port: " + str(ports)) manager.proxy(config=config, daemon=daemon)
def update_subscribe(**kwargs): j = parse_json_from_file(PROJECT_CONFIG_FILE) manager = Manager(server_file_name=j['servers_file'], subscribe_file_name=j['subscribe_file']) manager.update_subscribe(show_info=True, **kwargs) manager.save_servers()
def add_subscribe(args): v = args.split(',') j = parse_json_from_file(PROJECT_CONFIG_FILE) manager = Manager(subscribe_file_name=j['subscribe_file']) manager.add_subscribe(v[0], v[1]) manager.save_subscribe()
def show_servers(): j = parse_json_from_file(PROJECT_CONFIG_FILE) manager = Manager(server_file_name=j['servers_file']) manager.show_servers()