Curso-lenguaje-python/catch-all/06_bots_telegram/02_pruebas_bot/bot.py

44 lines
997 B
Python

"""
Pruebas con un bot de Telegram
Doc: https://github.com/eternnoir/pyTelegramBotAPI
"""
# bot.py
# Este es el script principal que ejecuta el bot de Telegram.
import signal
from termcolor import colored
from handlers import bot
from logger import logger
def def_handler(sig, frame):
"""
Manejador de señal para cerrar el programa de forma segura.
Args:
sig: Señal recibida.
frame: Frame actual.
"""
print(colored(
f"\n\n[!] Saliendo del programa...\n", "red", attrs=["bold"]
))
logger.info("Bot detenido por el usuario.")
bot.stop_polling()
exit(1)
# Configurar el manejador de señal para SIGINT (Ctrl+C)
signal.signal(signal.SIGINT, def_handler)
# Iniciar el bot
if __name__ == "__main__":
try:
logger.info("Bot iniciado.")
bot.infinity_polling()
except Exception as e:
logger.error(f"Error en la ejecución del bot: {str(e)}")
except KeyboardInterrupt:
def_handler(None, None)