myircbot/plugins/timezone.py
2025-05-29 22:58:53 +02:00

49 lines
1.9 KiB
Python
Raw Permalink Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

import requests
def obtener_hora_zona(zona):
"""Obtiene la hora actual de una zona horaria usando una API."""
try:
response = requests.get(f"http://worldtimeapi.org/api/timezone/{zona}", timeout=10)
if response.status_code == 200:
data = response.json()
datetime_str = data.get("datetime", "").split(".")[0]
return f" La hora en {zona} es {datetime_str.replace('T', ' ')}"
elif response.status_code == 404:
return " Zona horaria no encontrada. Usa `.timezone list` para ver opciones."
else:
return " Error al obtener la hora."
except requests.exceptions.RequestException as e:
return f" Error de conexión: {e}"
def listar_zonas():
"""Lista las zonas horarias disponibles."""
try:
response = requests.get("http://worldtimeapi.org/api/timezone", timeout=10)
if response.status_code == 200:
zonas = response.json()
return " Zonas horarias disponibles:\n" + ", ".join(zonas[:10]) + "...\nUsa `.timezone <zona>` para consultar una."
else:
return " No se pudieron obtener las zonas horarias."
except requests.exceptions.RequestException as e:
return f" Error de conexión: {e}"
def run(sender, *args):
"""Función principal que será ejecutada por el bot."""
if not args:
return " Debes especificar una zona horaria. Usa `.timezone list` para ver opciones."
zona = " ".join(args)
if zona.lower() == "list":
return listar_zonas()
return obtener_hora_zona(zona)
def help():
"""Descripción del plugin para el comando .help"""
return (" Consulta la hora en cualquier zona horaria.\n"
"Uso: `.timezone <zona>`\n"
"**Ejemplo:** `.timezone Europe/Madrid`\n"
"**Otras opciones:**\n"
"- `.timezone list` → Lista algunas zonas horarias disponibles.")