示例#1
0
    def AgregarCliente(self, nombre):
        cliente = chat.Cliente()
        cliente.nombre = nombre
        cliente.id = len(self.chats)

        # userId : [Cliente, [msgEnviado, msgRecibido]]
        self.chats.append([cliente, [[], []]])

        print("[Info] Cliente registrado - id:",
              str(cliente.id) + ", nombre:", cliente.nombre)
        return cliente
示例#2
0
 def agregarCliente(self):
     while self.username == None:
         temp = input("Ingrese nombre de usuario: ")
         c = chat.Cliente()
         c.username = temp
         code = self.conn.AgregarCliente(c).value
         if code == 1:
             self.username = temp
             return temp
         elif code == 2:
             print("un error a ocurrido intentalo nuevamente")
         elif code == 3:
             print('Este usuario ya existe, prueba con otro nombre')
示例#3
0
    def __init__(self, host, puerto, modo):
        self.conn = rpc.ChatServerStub(
            grpc.insecure_channel(host + ':' + str(puerto)))
        print("[Info] Conexión establecida con el servidor:",
              host + ':' + str(puerto))
        self.modo = modo
        self.cliente = chat.Cliente()
        self.Login()
        threading.Thread(target=self.recibirMensajes, daemon=True).start()
        print("[Info] Sesión iniciada.")

        if self.modo == 0:
            self.enviarMensajesAuto()
        else:
            self.enviarMensajes()
示例#4
0
    def enviarMensajes(self):
        self.Ayuda()
        texto = input()

        while texto != "salir":
            data = texto.split()
            #try:
            if data[0] == "msg":
                mensaje = chat.Mensaje()
                mensaje.receptor.id = int(data[1])
                mensaje.emisor.id = self.cliente.id
                mensaje.emisor.nombre = self.cliente.nombre
                mensaje.valor = data[2]
                mensaje.timestamp = datetime.now().strftime(
                    "%d-%b-%Y %H:%M:%S")
                #res = self.conn.EnviarMensaje(mensaje)
                self.conn.EnviarMensaje.future(mensaje).add_done_callback(
                    self.MensajeEnviado)

            elif data[0] == "clientes":
                # No logré hacer asíncrona esta parte :c
                print(
                    "[Server] Lista de clientes conectados al servidor de chat"
                )
                for i in self.conn.ListaClientes(chat.MensajeVacio()):
                    print(i.id, i.nombre)
            elif data[0] == "historial":
                print(
                    "[Server] Lista de mensajes enviados al servidor de chat")
                mensaje = chat.Cliente()
                mensaje.id = self.cliente.id

                for i in self.conn.ObtenerMensajes(mensaje):
                    print("[" + i.timestamp + "] (" + str(i.id) + ") -",
                          i.receptor.nombre + ":", i.valor)
            else:
                self.Ayuda()

            texto = input()
        else:  # Sí, esto es tan legal como el yield
            print("[Info] Hasta pronto!")
            exit(0)
示例#5
0
    def mensajesEnviados(self):

        c = chat.Cliente()
        c.username = self.username
        for mensaje in self.conn.MensajesEnviadosPor(c):
            print("{}: {}".format(mensaje.usernameReceptor, mensaje.mensaje))
示例#6
0
    def enviarMensajesAuto(self):
        # Temazo
        milHoras = [
            "Hace frío y estoy lejos de casa",
            "Hace tiempo que estoy sentado sobre esta piedra",
            "Yo me pregunto", "Para que sirven las guerras",
            "Tengo un cohete en mi pantalón",
            "Vos estás tan fría como la nieve a mi alrededor",
            "Vos estás tan blanca, que yo no se que hacer",
            "La otra noche te esperé", "bajo la lluvia dos horas",
            "Mil horas como un perro", "Y cuando llegaste me miraste",
            "y me dijiste loco", "Estás mojado, ya no te quiero",
            "En el circo vos ya sos una estrella",
            "Una estrella roja que todo se lo imagina",
            "Si te preguntan, vos no me conocías", "No, no",
            "Tengo un cohete en mi pantalón",
            "Vos estás tan fría como la nieve a mi alrededor",
            "Vos estás tan blanca, que yo no se que hacer",
            "Te esperé bajo la lluvia", "No, no, no, no",
            "La otra noche te esperé", "bajo la lluvia dos horas",
            "Mil horas como un perro", "Y cuando llegaste me miraste",
            "y me dijiste loco", "Estás mojado, ya no te quiero",
            "La otra noche te esperé", "bajo la lluvia dos horas",
            "Mil horas como un perro", "Y cuando llegaste me miraste",
            "y me dijiste loco", "Estás mojado, ya no te quiero"
        ]
        accion = 1
        lastId = 0

        while accion != 0:
            accion = randint(0, 30)

            if accion > 0 and accion <= 10:
                mensaje = chat.Mensaje()
                mensaje.receptor.id = randint(0, lastId)
                mensaje.emisor.id = self.cliente.id
                mensaje.emisor.nombre = self.cliente.nombre
                mensaje.valor = milHoras[randint(0, len(milHoras) - 1)]
                mensaje.timestamp = datetime.now().strftime(
                    "%d-%b-%Y %H:%M:%S")
                #res = self.conn.EnviarMensaje(mensaje)
                self.conn.EnviarMensaje.future(mensaje).add_done_callback(
                    self.MensajeEnviado)
                print("[Cliente] Mensaje enviado")

            elif accion > 10 and accion <= 20:
                print(
                    "[Server] Lista de clientes conectados al servidor de chat"
                )
                for i in self.conn.ListaClientes(chat.MensajeVacio()):
                    print(i.id, i.nombre)
                    lastId = i.id
            elif accion > 20 and accion <= 30:
                print(
                    "[Server] Lista de mensajes enviados al servidor de chat")
                mensaje = chat.Cliente()
                mensaje.id = self.cliente.id

                for i in self.conn.ObtenerMensajes(mensaje):
                    print("[" + i.timestamp + "] (" + str(i.id) + ") -",
                          i.receptor.nombre + ":", i.valor)
            time.sleep(2)
        print("[Info] Hasta pronto!")
        exit(0)