def del_user(client_index): success, msg = True, "del user {} success!!!".format(client_index) try: loader.load_profile() group_list = loader.profile.group_list group, client_index = find_client(group_list, client_index) nw = NodeWriter() nw.del_user(group, client_index) except Exception as e: success = False msg = str(e) return jsonify(ResponseJson(success, msg).__dict__)
def del_group(group_tag): success, msg = True, "del group {} success!!!".format(group_tag) try: loader.load_profile() group_list = loader.profile.group_list group = list(filter(lambda group: group.tag == group_tag, group_list))[0] nw = NodeWriter() nw.del_port(group) except Exception as e: success = False msg = str(e) return jsonify(ResponseJson(success, msg).__dict__)
def add_user(): success, msg, kw = True, "add user success!!!", dict() try: json_request = json.loads(request.get_data()) group_tag = json_request['group_tag'] kw['email'] = json_request['email'] loader.load_profile() group_list = loader.profile.group_list group = list(filter(lambda group: group.tag == group_tag, group_list))[0] nw = NodeWriter(group.tag, group.index) nw.create_new_user(**kw) except Exception as e: success = False msg = str(e) return jsonify(ResponseJson(success, msg).__dict__)
def add_group(): success, msg, kw, stream_type = True, "add group {} success!!!", dict(), "" try: json_request = json.loads(request.get_data()) port = int(json_request['port']) stream_type = json_request['stream_type'] from utils import stream_list stream_list = stream_list() if stream_type not in [x.value for x in stream_list]: raise ValueError("stream_type {} not found".format(stream_type)) if "data" in json_request: kw = json_request['data'] stream = list( filter(lambda stream: stream.value == stream_type, stream_list))[0] nw = NodeWriter() nw.create_new_port(port, stream, **kw) msg = msg.format(stream_type) except Exception as e: success = False msg = str(e) return jsonify(ResponseJson(success, msg).__dict__)
if not is_email(email): print("不是合格的email格式,请重新输入") continue for loop_group in group_list: for node in loop_group.node_list: if node.user_info == None or node.user_info == '': continue elif node.user_info == email: print("已经有重复的email, 请重新输入") is_duplicate_email = True break if not is_duplicate_email: break nw = NodeWriter(group.tag, group.index) info = {'email': email} nw.create_new_user(**info) elif type(group.node_list[0]) == Socks: print("当前组为socks组, 请输入用户密码创建新的socks用户\n") user = input("请输入socks的用户名: ") password = input("请输入socks的密码: ") if user == "" or password == "": print("socks的用户名或者密码不能为空") exit(-1) info = {"user": user, "pass": password} nw = NodeWriter(group.tag, group.index) nw.create_new_user(**info) elif type(group.node_list[0]) == Mtproto:
password = input("请输入socks的密码: ") if user == "" or password == "": print("socks的用户名或者密码不能为空") exit(-1) info = {"user": user, "pass": password} elif stream == StreamType.SS: sf = SSFactory() info = {"method": sf.get_method(), "password": sf.get_password()} else: salt_stream = [ StreamType.KCP_DTLS, StreamType.KCP_WECHAT, StreamType.KCP_UTP, StreamType.KCP_SRTP ] random.shuffle(salt_stream) stream = salt_stream[0] print( "随机一种 (srtp | wechat-video | utp | dtls) header伪装, 当前生成 {} \n".format( stream.value)) random_port = random.randint(1000, 65535) new_port = input("产生随机端口{}, 回车直接以该端口新建Group, 否则输入自定义端口: ".format(random_port)) if not new_port: new_port = str(random_port) if new_port.isnumeric(): print("\n新端口为: {} \n".format(new_port)) nw = NodeWriter() nw.create_new_port(int(new_port), stream, **info) else: print("\n输入错误,请检查是否为数字")
#!/usr/bin/env python3 # -*- coding: utf-8 -*- import os from writer import NodeWriter from selector import ClientSelector from utils import clean_iptables cs = ClientSelector('删除user') client_index = cs.client_index group = cs.group if group == None: exit(-1) else: print("你选择的user信息:") print(group.show_node(client_index)) choice = input("是否删除y/n:").lower() if choice == 'y': if len(group.node_list) == 1: clean_iptables(group.port) nw = NodeWriter() nw.del_user(group, client_index) else: print("撤销删除")
#!/usr/bin/env python3 # -*- coding: utf-8 -*- import os from writer import NodeWriter from selector import GroupSelector from utils import clean_iptables gs = GroupSelector('删除port') group = gs.group if group == None: pass else: print("你要删除的Group组所有节点信息: ") print(group) choice = input("是否删除y/n:").lower() if choice == 'y': nw = NodeWriter() nw.del_port(group) clean_iptables(group.port) else: print("撤销删除")
password = input("请输入socks的密码: ") if user == "" or password == "": print("socks的用户名或者密码不能为空") exit(-1) info = {"user": user, "pass": password} elif protocol == StreamType.SS: sf = ss.SSFactory() info = {"method": sf.get_method(), "password": sf.get_password()} else: salt_protocol = [ StreamType.KCP_DTLS, StreamType.KCP_WECHAT, StreamType.KCP_UTP, StreamType.KCP_SRTP ] random.shuffle(salt_protocol) protocol = salt_protocol[0] print( "随机一种 (srtp | wechat-video | utp | dtls) header伪装, 当前生成 {} \n".format( protocol.value)) random_port = random.randint(1000, 65535) new_port = input("产生随机端口{}, 回车直接以该端口新建Group, 否则输入自定义端口: ".format(random_port)) if not new_port: new_port = str(random_port) if new_port.isnumeric(): print("\n新端口为: {} \n".format(new_port)) nw = NodeWriter() nw.create_new_port(int(new_port), protocol, **info) else: print("\n输入错误,请检查是否为数字")