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

49 lines
1.9 KiB
Python
Raw 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.")