Source code for twtb.logic.shared.message_handler

"""Module for the :class:`.MessageHandler` class."""
import telethon
from loguru import logger
from telethon.tl.custom.message import Message as TelethonMessage

from twtb.logic.shared.db import Database
from twtb.logic.shared.message_sender import MessageSender


[docs]class MessageHandler: """Handles message to know if they should be sent to user.""" def __init__(self, bot: telethon.TelegramClient) -> None: self._db = Database() self._sender = MessageSender(bot)
[docs] async def handle(self, to_handle: str, message: TelethonMessage) -> None: """Handles message to know if they should be sent to user. Args: to_handle: Message to handle. message: Message to forward. """ logger.info(f"Handling message {message.id} by {message.sender_id}") logger.trace("The message:\n" + to_handle) words_to_look_for = await self._db.get_all_subscribed_words() for word, users in words_to_look_for.items(): if word in to_handle: await self._sender.send_message(users, message)