@@ -50,6 +50,14 @@ class AdminState(StatesGroup):
5050
5151
5252async def settings_panel (message : types .Message , state : FSMContext ) -> None :
53+ """
54+ Отправляет панель настроек администратора.
55+
56+ :param message: Сообщение от пользователя.
57+ :type message: types.Message
58+ :param state: Состояние FSM.
59+ :type state: FSMContext
60+ """
5361 chat_id = message .chat .id
5462 if await db .check_admin (chat_id ):
5563 context = {"chat_id" : chat_id }
@@ -68,6 +76,14 @@ async def settings_panel(message: types.Message, state: FSMContext) -> None:
6876
6977
7078async def cancel_settings (message : types .Message , state : FSMContext ) -> None :
79+ """
80+ Отменяет состояние настроек и возвращает пользователя в главное меню.
81+
82+ :param message: Сообщение от пользователя.
83+ :type message: types.Message
84+ :param state: Состояние FSM.
85+ :type state: FSMContext
86+ """
7187 context = {}
7288 message_text = render_template_jinja ("admin/cancel_settings.jinja2" , ** context )
7389 await message .answer (message_text , reply_markup = kb_admin .main_menu )
@@ -77,6 +93,16 @@ async def cancel_settings(message: types.Message, state: FSMContext) -> None:
7793async def back_to_state (
7894 message : types .Message , state : FSMContext , state_to_set : State
7995) -> None :
96+ """
97+ Возвращает пользователя к заданному состоянию.
98+
99+ :param message: Сообщение от пользователя.
100+ :type message: types.Message
101+ :param state: Состояние FSM.
102+ :type state: FSMContext
103+ :param state_to_set: Состояние, к которому нужно вернуться.
104+ :type state_to_set: State
105+ """
80106 context = {}
81107
82108 message_text = render_template_jinja ("admin/back_to_state.jinja2" , ** context )
@@ -110,6 +136,21 @@ async def back_to_state_on_markup(
110136 state_to_set : State ,
111137 ** context ,
112138) -> None :
139+ """
140+ Возвращает пользователя к заданному состоянию с указанным разметкой.
141+
142+ :param message: Сообщение от пользователя.
143+ :type message: types.Message
144+ :param state: Состояние FSM.
145+ :type state: FSMContext
146+ :param template_name: Имя шаблона Jinja для сообщения.
147+ :type template_name: str
148+ :param markup: Клавиатура для ответа.
149+ :type markup: types.ReplyKeyboardMarkup
150+ :param state_to_set: Состояние, к которому нужно вернуться.
151+ :type state_to_set: State
152+ :param context: Дополнительный контекст для шаблона.
153+ """
113154 message_text = render_template_jinja (template_name , ** context )
114155 await message .answer (message_text , reply_markup = markup )
115156 await state .set_state (state_to_set )
@@ -147,63 +188,110 @@ async def back_state_roles(message: types.Message, state: FSMContext) -> None:
147188 )
148189
149190
150- async def roles_switch (message : types .Message , state : FSMContext ) -> None :
191+ async def send_message_with_state (
192+ message : types .Message ,
193+ state : FSMContext ,
194+ template_name : str ,
195+ reply_markup : types .ReplyKeyboardMarkup ,
196+ new_state : State ,
197+ ) -> None :
198+ """
199+ Отправляет сообщение и устанавливает новое состояние.
200+
201+ :param message: Сообщение от пользователя.
202+ :type message: types.Message
203+ :param state: Состояние FSM.
204+ :type state: FSMContext
205+ :param template_name: Имя шаблона Jinja для сообщения.
206+ :type template_name: str
207+ :param reply_markup: Клавиатура для ответа.
208+ :type reply_markup: types.ReplyKeyboardMarkup
209+ :param new_state: Новое состояние.
210+ :type new_state: State
211+ """
151212 context = {}
213+ message_text = render_template_jinja (template_name , ** context )
214+ await message .answer (message_text , reply_markup = reply_markup )
215+ await state .set_state (new_state )
152216
153- message_text = render_template_jinja ("admin/roles_switch.jinja2" , ** context )
154- await message .answer (message_text , reply_markup = kb_admin .roles_panel )
155- await state .set_state (AdminState .roles_switch )
156217
218+ async def roles_switch (message : types .Message , state : FSMContext ) -> None :
219+ await send_message_with_state (
220+ message ,
221+ state ,
222+ "admin/roles_switch.jinja2" ,
223+ kb_admin .roles_panel ,
224+ AdminState .roles_switch ,
225+ )
157226
158- async def give_roles (message : types .Message , state : FSMContext ) -> None :
159- context = {}
160227
161- message_text = render_template_jinja ("admin/roles_switch.jinja2" , ** context )
162- await message .answer (message_text , reply_markup = kb_admin .roles_switch_panel )
163- await state .set_state (AdminState .give )
228+ async def give_roles (message : types .Message , state : FSMContext ) -> None :
229+ await send_message_with_state (
230+ message ,
231+ state ,
232+ "admin/roles_switch.jinja2" ,
233+ kb_admin .roles_switch_panel ,
234+ AdminState .give ,
235+ )
164236
165237
166238async def remove_role (message : types .Message , state : FSMContext ) -> None :
167- context = {}
168-
169- message_text = render_template_jinja ("admin/remove_role.jinja2" , ** context )
170- await message .answer (message_text , reply_markup = kb_admin .roles_switch_panel )
171- await state .set_state (AdminState .remove )
239+ await send_message_with_state (
240+ message ,
241+ state ,
242+ "admin/remove_role.jinja2" ,
243+ kb_admin .roles_switch_panel ,
244+ AdminState .remove ,
245+ )
172246
173247
174248async def remove_role_user (message : types .Message , state : FSMContext ) -> None :
175- context = {}
176-
177- message_text = render_template_jinja ("admin/remove_role_user.jinja2" , ** context )
178- await message .answer (message_text , reply_markup = kb_admin .admin_back )
179- await state .set_state (AdminState .remove_user )
249+ await send_message_with_state (
250+ message ,
251+ state ,
252+ "admin/remove_role_user.jinja2" ,
253+ kb_admin .admin_back ,
254+ AdminState .remove_user ,
255+ )
180256
181257
182258async def remove_role_admin (message : types .Message , state : FSMContext ) -> None :
183- context = {}
184-
185- message_text = render_template_jinja ("admin/remove_role_admin.jinja2" , ** context )
186- await message .answer (message_text , reply_markup = kb_admin .admin_back )
187- await state .set_state (AdminState .remove_admin )
259+ await send_message_with_state (
260+ message ,
261+ state ,
262+ "admin/remove_role_admin.jinja2" ,
263+ kb_admin .admin_back ,
264+ AdminState .remove_admin ,
265+ )
188266
189267
190268async def roles_add_user (message : types .Message , state : FSMContext ) -> None :
191- context = {}
192-
193- message_text = render_template_jinja ("admin/roles_add_user.jinja2" , ** context )
194- await message .answer (message_text , reply_markup = kb_admin .admin_back )
195- await state .set_state (AdminState .add_user )
269+ await send_message_with_state (
270+ message ,
271+ state ,
272+ "admin/roles_add_user.jinja2" ,
273+ kb_admin .admin_back ,
274+ AdminState .add_user ,
275+ )
196276
197277
198278async def roles_add_admin (message : types .Message , state : FSMContext ) -> None :
199- context = {}
200-
201- message_text = render_template_jinja ("admin/roles_add_user.jinja2" , ** context )
202- await message .answer (message_text , reply_markup = kb_admin .admin_back )
203- await state .set_state (AdminState .add_admin )
279+ await send_message_with_state (
280+ message ,
281+ state ,
282+ "admin/roles_add_user.jinja2" ,
283+ kb_admin .admin_back ,
284+ AdminState .add_admin ,
285+ )
204286
205287
206288async def get_add_user_id (message : types .Message ) -> None :
289+ """
290+ Обрабатывает добавление пользователя по ID.
291+
292+ :param message: Сообщение от пользователя.
293+ :type message: types.Message
294+ """
207295 chat_id = message .chat .id
208296 text_id = message .text
209297
@@ -232,6 +320,12 @@ async def get_add_user_id(message: types.Message) -> None:
232320
233321
234322async def get_add_admin_id (message : types .Message ) -> None :
323+ """
324+ Обрабатывает добавление администратора по ID.
325+
326+ :param message: Сообщение от пользователя.
327+ :type message: types.Message
328+ """
235329 chat_id = message .chat .id
236330 text_id = message .text
237331 if not text_id .isdigit ():
@@ -259,6 +353,12 @@ async def get_add_admin_id(message: types.Message) -> None:
259353
260354
261355async def get_remove_user_id (message : types .Message ) -> None :
356+ """
357+ Обрабатывает удаление пользователя по ID.
358+
359+ :param message: Сообщение от пользователя.
360+ :type message: types.Message
361+ """
262362 chat_id = message .chat .id
263363 if not await db .user_exists (message .text ):
264364 context = {}
@@ -280,6 +380,12 @@ async def get_remove_user_id(message: types.Message) -> None:
280380
281381
282382async def get_remove_admin_id (message : types .Message ) -> None :
383+ """
384+ Обрабатывает удаление администратора по ID.
385+
386+ :param message: Сообщение от пользователя.
387+ :type message: types.Message
388+ """
283389 chat_id = message .chat .id
284390 if not await db .check_admin (message .text ):
285391 context = {}
@@ -301,6 +407,14 @@ async def get_remove_admin_id(message: types.Message) -> None:
301407
302408
303409async def commands_settings (message : types .Message , state : FSMContext ) -> None :
410+ """
411+ Отправляет список команд и настройки команд.
412+
413+ :param message: Сообщение от пользователя.
414+ :type message: types.Message
415+ :param state: Состояние FSM.
416+ :type state: FSMContext
417+ """
304418 commands = await db .commands_all ()
305419 table = await get_commands_table_formatted (commands )
306420 await message .answer (
@@ -315,6 +429,14 @@ async def commands_settings(message: types.Message, state: FSMContext) -> None:
315429
316430
317431async def button_commands_add (message : types .Message , state : FSMContext ) -> None :
432+ """
433+ Отправляет сообщение для добавления команды.
434+
435+ :param message: Сообщение от пользователя.
436+ :type message: types.Message
437+ :param state: Состояние FSM.
438+ :type state: FSMContext
439+ """
318440 await message .answer (
319441 render_template_jinja ("admin/button_commands_add.jinja2" ),
320442 reply_markup = kb_admin .admin_back ,
@@ -323,6 +445,14 @@ async def button_commands_add(message: types.Message, state: FSMContext) -> None
323445
324446
325447async def button_commands_remove (message : types .Message , state : FSMContext ) -> None :
448+ """
449+ Отправляет сообщение для удаления команды.
450+
451+ :param message: Сообщение от пользователя.
452+ :type message: types.Message
453+ :param state: Состояние FSM.
454+ :type state: FSMContext
455+ """
326456 await message .answer (
327457 render_template_jinja ("admin/button_commands_remove.jinja2" ),
328458 reply_markup = kb_admin .admin_back ,
@@ -331,6 +461,12 @@ async def button_commands_remove(message: types.Message, state: FSMContext) -> N
331461
332462
333463async def command_add (message : types .Message ) -> None :
464+ """
465+ Добавляет команду в черный список.
466+
467+ :param message: Сообщение от пользователя.
468+ :type message: types.Message
469+ """
334470 chat_id = message .chat .id
335471 low = message .text .lower ()
336472 exists = await db .command_exists (low )
@@ -373,6 +509,12 @@ async def command_add(message: types.Message) -> None:
373509
374510
375511async def command_remove (message : types .Message ) -> None :
512+ """
513+ Удаляет команду из черного списка.
514+
515+ :param message: Сообщение от пользователя.
516+ :type message: types.Message
517+ """
376518 chat_id = message .chat .id
377519 low = message .text .lower ()
378520 exists = await db .command_exists (low )
@@ -404,6 +546,11 @@ async def command_remove(message: types.Message) -> None:
404546
405547
406548async def register_routers () -> None :
549+ """
550+ Регистрация routers для обработки сообщений admin.
551+
552+ :return: None
553+ """
407554 admin_router .message .register (
408555 settings_panel , TextInFilter (valid_commands ["settings" ])
409556 )
0 commit comments