You've already forked Curso-lenguaje-python
Update Bots Telegram
This commit is contained in:
89
catch-all/06_bots_telegram/02_pruebas_bot/handlers.py
Normal file
89
catch-all/06_bots_telegram/02_pruebas_bot/handlers.py
Normal file
@@ -0,0 +1,89 @@
|
||||
# handlers.py
|
||||
# Este módulo contiene los manejadores de mensajes del bot.
|
||||
|
||||
from telebot import TeleBot
|
||||
from logger import logger
|
||||
import config
|
||||
|
||||
# Mensajes de texto del bot en español
|
||||
text_messages = {
|
||||
'welcome':
|
||||
u'¡Por favor denle la bienvenida a {name}!\n\n'
|
||||
u'Este chat está destinado a preguntas y discusión sobre la pyTelegramBotAPI.\n'
|
||||
u'Para permitir que los miembros del grupo respondan a tus preguntas de forma rápida y precisa, asegúrate de '
|
||||
u'estudiar la documentación del proyecto (https://github.com/eternnoir/pyTelegramBotAPI/blob/master/README.md) '
|
||||
u'y los ejemplos (https://github.com/eternnoir/pyTelegramBotAPI/tree/master/examples) primero.\n\n'
|
||||
u'¡Espero que disfrutes tu estadía aquí!',
|
||||
|
||||
'info':
|
||||
u'Mi nombre es TeleBot,\n'
|
||||
u'Soy un bot que asiste a estas maravillosas personas que crean bots en este chat del grupo de la librería.\n'
|
||||
u'Además, todavía estoy en desarrollo. ¡Por favor, mejora mi funcionalidad haciendo una solicitud de pull! '
|
||||
u'Las sugerencias también son bienvenidas, solo déjalas en este chat del grupo!',
|
||||
|
||||
'wrong_chat':
|
||||
u'¡Hola!\nGracias por probarme. Sin embargo, este bot solo puede usarse en el chat del grupo pyTelegramAPI.\n'
|
||||
u'¡Únete a nosotros!\n\n'
|
||||
u'https://telegram.me/joinchat/067e22c60035523fda8f6025ee87e30b'
|
||||
}
|
||||
|
||||
# Crear una instancia del bot con el token de configuración
|
||||
bot = TeleBot(config.BOT_TOKEN)
|
||||
|
||||
# Manejador para cuando un nuevo participante se une al chat
|
||||
@bot.message_handler(func=lambda m: True, content_types=['new_chat_participant'])
|
||||
def on_user_joins(message):
|
||||
try:
|
||||
# Obtener el nombre del nuevo participante
|
||||
name = message.new_chat_participant.first_name
|
||||
if hasattr(message.new_chat_participant, 'last_name') and message.new_chat_participant.last_name is not None:
|
||||
name += f" {message.new_chat_participant.last_name}"
|
||||
|
||||
if hasattr(message.new_chat_participant, 'username') and message.new_chat_participant.username is not None:
|
||||
name += f" (@{message.new_chat_participant.username})"
|
||||
|
||||
# Enviar mensaje de bienvenida
|
||||
bot.reply_to(message, text_messages['welcome'].format(name=name))
|
||||
except Exception as e:
|
||||
logger.error(f"Error en on_user_joins: {str(e)}")
|
||||
|
||||
# Manejador para los comandos /info y /help
|
||||
@bot.message_handler(commands=['info', 'help'])
|
||||
def on_info(message):
|
||||
try:
|
||||
bot.reply_to(message, text_messages['info'])
|
||||
except Exception as e:
|
||||
logger.error(f"Error en on_info: {str(e)}")
|
||||
|
||||
# Manejador para el comando /ping
|
||||
@bot.message_handler(commands=["ping"])
|
||||
def on_ping(message):
|
||||
try:
|
||||
bot.reply_to(message, "¡Sigo vivo y pateando!")
|
||||
except Exception as e:
|
||||
logger.error(f"Error en on_ping: {str(e)}")
|
||||
|
||||
|
||||
# Manejador para el comando /tq
|
||||
@bot.message_handler(commands=["tq"])
|
||||
def on_ping(message):
|
||||
try:
|
||||
bot.reply_to(message, "¡Te quiero princesa!")
|
||||
except Exception as e:
|
||||
logger.error(f"Error en on_tq: {str(e)}")
|
||||
|
||||
|
||||
# Manejador para el comando /start
|
||||
@bot.message_handler(commands=['start'])
|
||||
def on_start(message):
|
||||
try:
|
||||
bot.reply_to(message, "¡Bienvenido! Usa /info para más información.")
|
||||
except Exception as e:
|
||||
logger.error(f"Error en on_start: {str(e)}")
|
||||
|
||||
# Listener para registrar todos los mensajes recibidos
|
||||
def listener(messages):
|
||||
for m in messages:
|
||||
logger.info(f"Mensaje recibido: {str(m)}")
|
||||
|
||||
bot.set_update_listener(listener)
|
||||
Reference in New Issue
Block a user