示例#1
0
def add_user(uuid,
             email,
             security_type=SECURITY_TYPE_LEGACY,
             level=0,
             alter_id=32):
    channel = grpc.insecure_channel('%s:%s' % (SERVER_ADDRESS, SERVER_PORT))
    stub = command_pb2_grpc.HandlerServiceStub(channel)

    resp = stub.AlterInbound(
        command_pb2.AlterInboundRequest(
            tag=INBOUND_TAG,
            operation=typed_message_pb2.TypedMessage(
                type=command_pb2._ADDUSEROPERATION.full_name,
                value=command_pb2.AddUserOperation(user=user_pb2.User(
                    level=level,
                    email=email,
                    account=typed_message_pb2.TypedMessage(
                        type=account_pb2._ACCOUNT.full_name,
                        value=account_pb2.Account(
                            id=uuid,
                            alter_id=alter_id,
                            security_settings=headers_pb2.SecurityConfig(
                                type=security_type)).SerializeToString()))
                                                   ).SerializeToString())))
    print(resp)
示例#2
0
 def add_user(self, inbound_tag, user_id, email, level=0, alter_id=16):
     """
     在一个传入连接中添加一个用户(仅支持 VMess)
     若email已存在,抛出EmailExistsError异常
     若inbound_tag不存在,抛出InboundNotFoundError异常
     """
     stub = command_pb2_grpc.HandlerServiceStub(self._channel)
     try:
         stub.AlterInbound(
             command_pb2.AlterInboundRequest(
                 tag=inbound_tag,
                 operation=to_typed_message(
                     command_pb2.AddUserOperation(user=user_pb2.User(
                         email=email,
                         level=level,
                         account=to_typed_message(
                             account_pb2.Account(id=user_id,
                                                 alter_id=alter_id)))))))
         return user_id
     except _Rendezvous as e:
         details = e.details()
         if details.endswith(f"User {email} already exists."):
             raise EmailExistsError(details, email)
         elif details.endswith(f"handler not found: {inbound_tag}"):
             raise InboundNotFoundError(details, inbound_tag)
         else:
             raise V2RayError(details)
示例#3
0
 def __init__(self, users: list):
     """
     :param users: 包含'email','level','user_id','alter_id'字段的字典
     """
     super(VMessInbound, self).__init__()
     self.message = to_typed_message(
         vmess_inbound_config_pb2.Config(user=[
             user_pb2.User(email=u['email'],
                           level=u['level'],
                           account=to_typed_message(
                               account_pb2.Account(id=u['user_id'],
                                                   alter_id=u['alter_id'])))
             for u in users
         ]))
示例#4
0
 def __init__(self, u):
     """
     :param user: 包含'email','password','user_id','cipher_type'字段的字典
     """
     super(SSInbound, self).__init__()
     self.message = to_typed_message(
         shadowsocks_server_config_pb2.ServerConfig(user=user_pb2.User(
             email=u['email'],
             account=to_typed_message(
                 shadowsocks_server_config_pb2.Account(
                     password=u['password'],
                     cipher_type=u['cipher_type'],
                     ota=Auto,
                 ))),
                                                    udp_enabled=1,
                                                    network=[TCP, UDP]))