44from aiogram .types import CallbackQuery , Message
55
66from bot .callbacks .callback import SaveCallbackFactory
7- from bot .i18n .lexicon import Lexicon
8- from bot .keyboards .keyboards import Keyboards
9- from bot .services .bot_service import BotService
7+ from bot .services .context import HandlerContext
108from bot .states .bot_state import BotState
119
1210
1311class Handlers :
14- def __init__ (self , bot : Bot , kb : Keyboards , bot_service : BotService ):
12+ def __init__ (self , bot : Bot ):
1513 self .bot = bot
16- self .kb = kb
17- self .bot_service = bot_service
1814
19- async def start_command (self , message : Message , lexicon : Lexicon , user_lang : str | None ):
15+ async def start_command (self , message : Message , ctx : HandlerContext , user_lang : str | None ):
2016 await message .answer (
21- text = lexicon .get_text ('Hi user! This start message.' , user_lang ),
22- reply_markup = self . kb .get_start_button (),
17+ text = ctx . lexicon .get_text ('Hi user! This start message.' , user_lang ),
18+ reply_markup = ctx . keyboards .get_start_button (ctx . lexicon , user_lang ),
2319 )
2420
25- async def help_command (self , message : Message , lexicon : Lexicon , user_lang : str | None ):
26- await message .answer (text = lexicon .get_text ('This help message.' , user_lang ))
21+ async def help_command (self , message : Message , ctx : HandlerContext , user_lang : str | None ):
22+ await message .answer (text = ctx . lexicon .get_text ('This help message.' , user_lang ))
2723
2824 async def answer (self , message : Message , answer : str ):
2925 await self .__send_message (message .chat .id , answer , message .message_id )
@@ -40,18 +36,18 @@ async def answer_fsm_state_1(self, message: Message, state: FSMContext):
4036 async def answer_fsm_state_2 (self , message : Message , state : FSMContext ):
4137 await state .update_data (step_2 = message .text )
4238 data = await state .get_data ()
43- await message .answer (f" Step 1: { data [' step_1' ]} \n Step 2: { data [' step_2' ] } " )
39+ await message .answer (f' Step 1: { data [" step_1" ]} \n Step 2: { data [" step_2" ] } ' )
4440 await state .clear ()
4541
46- async def answer_inline_button (self , message : Message , lexicon : Lexicon ):
42+ async def answer_inline_button (self , message : Message , ctx : HandlerContext , user_lang : str | None ):
4743 callback = SaveCallbackFactory (message_id = message .message_id ).pack ()
4844 await message .answer (
49- text = lexicon .get_text ('Inline button message' ),
50- reply_markup = self . kb .get_inline_button (callback_data = callback ),
45+ text = ctx . lexicon .get_text ('Inline button message' ),
46+ reply_markup = ctx . keyboards .get_inline_button (ctx . lexicon , user_lang , callback ),
5147 )
5248
53- async def reply (self , message : Message ):
54- await message .reply (text = self .bot_service .upper (message .text ))
49+ async def reply (self , message : Message , ctx : HandlerContext ):
50+ await message .reply (text = ctx .bot_service .upper (message .text ))
5551
5652 async def process_any_inline_button_press (self , callback : CallbackQuery , callback_data : SaveCallbackFactory ):
5753 await callback .message .answer (text = callback_data .pack ())
0 commit comments