Skip to content

Commit

Permalink
Merge pull request #44 from SalesianosZaragoza/dev_IBT
Browse files Browse the repository at this point in the history
Closes #31 - Se agrega notificacion de sonido al recibir un mensaje o…
  • Loading branch information
ismaelbernadtello committed Mar 8, 2024
2 parents 3b20e20 + b267f5e commit 678f972
Show file tree
Hide file tree
Showing 4 changed files with 33 additions and 20 deletions.
8 changes: 6 additions & 2 deletions echo-client.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,12 +2,13 @@
from prompt_toolkit import PromptSession
from prompt_toolkit.styles import Style
from prompt_toolkit.patch_stdout import patch_stdout
from playsound import playsound
import socket
import threading
import sys

HOST = "127.0.0.1"
PORT = 65438
PORT = 65439

console = Console()
style = Style.from_dict(
Expand All @@ -25,6 +26,9 @@ def receive_messages(sock):
break
message = data.decode("utf-8").rstrip()
console.print(message, style="green")
if "susurró" in message or "dice" in message:
# Reproduce el sonido cuando se recibe un mensaje
playsound("notificacion.mp3")
except Exception as e:
console.print(f"[red]Error al recibir mensajes: {e}[/red]")
break
Expand Down Expand Up @@ -71,7 +75,7 @@ def main():
" * [bold magenta]/NAME[/] [[bold magenta]nuevoNombre[/bold magenta]] ---- Cambiar el nombre de usuario",
" * [bold magenta]/KICK[/] [[bold magenta]canal[/bold magenta]] [[bold magenta]usuario[/bold magenta]] ---- Expulsar a un usuario del canal",
" * [bold magenta]/HELP[/] ---- Mostrar la lista de comandos disponibles",
]
]

for comando in comandos:
console.print(comando)
Expand Down
43 changes: 26 additions & 17 deletions echo-server.py
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
import sys

HOST = "127.0.0.1"
PORT = 65438
PORT = 65439
TIEMPO_ESPERA = 100 # segundos

# Diccionario para almacenar los canales y usuarios
Expand Down Expand Up @@ -119,7 +119,8 @@ def list_channels(conn):
else:
message_list = "No hay canales disponibles en este momento."
conn.sendall(message_list.encode("utf-8"))



def list_users(conn):
global users
if users:
Expand Down Expand Up @@ -165,7 +166,7 @@ def send_message(conn, input_client, username):
user_conn = user_info["conn"]
try:
user_conn.sendall(
f"{username} (en {channel}): {message_to_send}".encode("utf-8")
f"{username} (dijo en {channel}): {message_to_send}".encode("utf-8")
)
except Exception as e:
print(f"Error al enviar mensaje a {user}: {e}")
Expand All @@ -175,7 +176,9 @@ def send_whisper(conn, input_client, username):
global users
parts = input_client.split(" ", 2)
if len(parts) < 3:
conn.sendall("Formato incorrecto. Usa /WHISPER [nombreUsuario] [mensaje]".encode("utf-8"))
conn.sendall(
"Formato incorrecto. Usa /WHISPER [nombreUsuario] [mensaje]".encode("utf-8")
)
return

recipient_username = parts[1]
Expand All @@ -189,9 +192,15 @@ def send_whisper(conn, input_client, username):
)
except Exception as e:
print(f"Error al enviar mensaje a {recipient_username}: {e}")
conn.sendall(f"No se pudo enviar el mensaje a {recipient_username}.".encode("utf-8"))
conn.sendall(
f"No se pudo enviar el mensaje a {recipient_username}.".encode("utf-8")
)
else:
conn.sendall(f"El usuario {recipient_username} no está disponible o no está registrado.".encode("utf-8"))
conn.sendall(
f"El usuario {recipient_username} no está disponible o no está registrado.".encode(
"utf-8"
)
)


def broadcast_message(conn, input_client, username):
Expand Down Expand Up @@ -260,17 +269,17 @@ def kick_user(conn, input_client, username):

def help_command(conn):
comandos = [
" * [bold magenta]/CREATE[/] [[bold magenta]canal[/bold magenta]] ---- Crear un canal",
" * [bold magenta]/JOIN[/] [[bold magenta]canal[/bold magenta]] ---- Unirse a un canal",
" * [bold magenta]/LIST[/] ---- Listar todos los canales",
" * [bold magenta]/USERS[/] ---- Mostrar todos los usuarios en el canal actual",
" * [bold magenta]/MSG[/] [[bold magenta]canal[/bold magenta]] [[bold magenta]mensaje[/bold magenta]] ---- Mandar mensaje a un canal",
" * [bold magenta]/WHISPER[/] [[bold magenta]nombreUsuario[/bold magenta]] [[bold magenta]mensaje[/bold magenta]] ---- Mandar un mensaje a un usuario",
" * [bold magenta]/QUIT[/] [[bold magenta]canal[/bold magenta]] ---- Abandonar un canal",
" * [bold magenta]/NAME[/] [[bold magenta]nuevoNombre[/bold magenta]] ---- Cambiar el nombre de usuario",
" * [bold magenta]/KICK[/] [[bold magenta]canal[/bold magenta]] [[bold magenta]usuario[/bold magenta]] ---- Expulsar a un usuario del canal",
" * [bold magenta]/HELP[/] ---- Mostrar la lista de comandos disponibles",
]
" * [bold magenta]/CREATE[/] [[bold magenta]canal[/bold magenta]] ---- Crear un canal",
" * [bold magenta]/JOIN[/] [[bold magenta]canal[/bold magenta]] ---- Unirse a un canal",
" * [bold magenta]/LIST[/] ---- Listar todos los canales",
" * [bold magenta]/USERS[/] ---- Mostrar todos los usuarios en el canal actual",
" * [bold magenta]/MSG[/] [[bold magenta]canal[/bold magenta]] [[bold magenta]mensaje[/bold magenta]] ---- Mandar mensaje a un canal",
" * [bold magenta]/WHISPER[/] [[bold magenta]nombreUsuario[/bold magenta]] [[bold magenta]mensaje[/bold magenta]] ---- Mandar un mensaje a un usuario",
" * [bold magenta]/QUIT[/] [[bold magenta]canal[/bold magenta]] ---- Abandonar un canal",
" * [bold magenta]/NAME[/] [[bold magenta]nuevoNombre[/bold magenta]] ---- Cambiar el nombre de usuario",
" * [bold magenta]/KICK[/] [[bold magenta]canal[/bold magenta]] [[bold magenta]usuario[/bold magenta]] ---- Expulsar a un usuario del canal",
" * [bold magenta]/HELP[/] ---- Mostrar la lista de comandos disponibles",
]
help_message = "Ulitice estos comandos para moverse por el chat:\n" + "\n".join(
comandos
)
Expand Down
2 changes: 1 addition & 1 deletion instalacion.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@


def instalar_librerias():
librerias = ["rich", "prompt-toolkit"]
librerias = ["rich", "prompt-toolkit", "playsound"]

for libreria in librerias:
try:
Expand Down
Binary file added notificacion.mp3
Binary file not shown.

0 comments on commit 678f972

Please sign in to comment.