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