from telethon import TelegramClient, events from telethon.sessions import StringSession from app.notifier import send_mail from constants import API_HASH, API_ID, BOT_TOKEN, EXAMPLE, SESSION from database.crud import create_database, search_database bot = TelegramClient(StringSession(SESSION), API_ID, API_HASH).start( bot_token=BOT_TOKEN ) @bot.on(events.NewMessage(pattern="/start")) async def start(event): await event.respond( "Hola, muy buenas. Gracias por ponerte en contacto con UGR Tracing Bot. Para poder continuar con el proceso por favor responda a este mensaje con un identificador único (DNI o correo institucional). Muchas gracias." ) raise events.StopPropagation @bot.on(events.NewMessage(pattern=r"^[0-9]{8,8}[A-Za-z]")) @bot.on( events.NewMessage(pattern=r"(^[a-zA-Z0-9_.+-]+@[a-zA-Z0-9-]+\.[a-zA-Z0-9-.]+$)") ) async def identify(event): user = search_database(id=event.raw_text) send_mail(recipient=user["correo_institucional"]) await event.respond( "El usuario se ha identificado con éxito. Se ha mandado una clave alfanumérica a su correo institucional. Por favor envíe la clave para continuar con el proceso." ) if __name__ == "__main__": create_database(data=EXAMPLE) bot.run_until_disconnected()