From afa18099bbacb7eedcb43b27bda26f80779eaea5 Mon Sep 17 00:00:00 2001 From: Yariv Menachem Date: Tue, 31 Dec 2024 15:03:56 +0200 Subject: [PATCH] code arrangement --- .../button_callback_context.py | 34 ++++++++++++------- .../telegram_callback_handler.py | 10 +----- 2 files changed, 22 insertions(+), 22 deletions(-) diff --git a/src/telegram_handler/button_callback/button_callback_context.py b/src/telegram_handler/button_callback/button_callback_context.py index afc1a91..7530ac7 100644 --- a/src/telegram_handler/button_callback/button_callback_context.py +++ b/src/telegram_handler/button_callback/button_callback_context.py @@ -1,17 +1,25 @@ from __future__ import annotations +from telegram import MaybeInaccessibleMessage +from telegram.constants import ReactionEmoji + +from jobspy import create_logger from telegram_bot import TelegramBot +from telegram_handler.button_callback.button_fire_strategy import FireStrategy +from telegram_handler.button_callback.button_poo_strategy import PooStrategy from telegram_handler.button_callback.button_strategy import ButtonStrategy -class ButtonCallBackContext(): +class ButtonCallBackContext: """ The Context defines the interface """ - def __init__(self, strategy: ButtonStrategy = None) -> None: - self.telegram_bot = TelegramBot() - self._strategy = strategy + def __init__(self, data: str, message: MaybeInaccessibleMessage) -> None: + self._logger = create_logger("Button CallBack Context") + self._message = message + self._data = data + self._telegram_bot = TelegramBot() @property def strategy(self) -> ButtonStrategy: @@ -32,14 +40,14 @@ class ButtonCallBackContext(): self._strategy = strategy async def run(self) -> None: - # extract job id from message - # find the position in DB - # set applied to True - # save - # set reaction to message + self._logger.info("Starting") + if ReactionEmoji.FIRE.name == self._data: + self.strategy = FireStrategy(self._message) + elif ReactionEmoji.PILE_OF_POO.name == self._data: + self.strategy = PooStrategy(self._message) + else: + self._logger.error("Invalid enum value") + return - print("Context: Starting") await self._strategy.execute() - print("Context: Finished") - - # ... + self._logger.info("Finished") diff --git a/src/telegram_handler/button_callback/telegram_callback_handler.py b/src/telegram_handler/button_callback/telegram_callback_handler.py index 5bdf8c9..46cd678 100644 --- a/src/telegram_handler/button_callback/telegram_callback_handler.py +++ b/src/telegram_handler/button_callback/telegram_callback_handler.py @@ -20,14 +20,6 @@ class TelegramCallHandler: """Parses the CallbackQuery and updates the message.""" query = update.callback_query await query.answer() - button_context = ButtonCallBackContext() - - if ReactionEmoji.FIRE.name == query.data: - button_context.strategy = FireStrategy(query.message) - elif ReactionEmoji.PILE_OF_POO.name == query.data: - button_context.strategy = PooStrategy(query.message) - else: - self.logger.error("Invalid enum value") - return + button_context = ButtonCallBackContext(query.data,query.message) await button_context.run()