channel-block-tg/handlers/users/echo.py
latand 1bbe12e9c1 Изменения шаблона:
1. .env.dist - изменено название переменной, теперь айди админов приписываются сюда через запятую
2. Добавлен .env в .gitignore
3. Вынес пару импортов из функций, переименовал диспатчер в on_startup, чтобы не повторять значение глобальной переменной
4. В config.py теперь используем библиотеку environs. С помощью нее удобнее парсить переменные определенного типа, т.к. имеются методы str, list, dict, int. Переменные теперь upper-case, что как бы указывает, что они константы.
5. В echo.py изменил эхо хендлер, теперь тут 2 хендлера. Один, который принимает текстовые сообщения, если у пользователя не установлено состояние. Второй хендлер, больше для дебаггинга, принимает все типы сообщений (TEXT, PHOTO, DOCUMENT, ...) и в любом состоянии. Так можно отследить необработанные сообщения.
6. Из help.py убрал троттлинг
7. Обновил requirements.txt чтобы отображать только необходимые библиотеки
8. Убрал (возможно) нерабочий код из throttling.py
2021-01-07 13:58:34 +02:00

22 lines
941 B
Python
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

from aiogram import types
from aiogram.dispatcher import FSMContext
from loader import dp
# Эхо хендлер, куда летят текстовые сообщения без указанного состояния
@dp.message_handler(state=None)
async def bot_echo(message: types.Message):
await message.answer(f"Эхо без состояния."
f"Сообщение:\n"
f"{message.text}")
# Эхо хендлер, куда летят ВСЕ сообщения с указанным состоянием
@dp.message_handler(state="*", content_types=types.ContentTypes.ANY)
async def bot_echo_all(message: types.Message, state: FSMContext):
s = await state.get_state()
await message.answer(f"Эхо в состоянии <code>{s}</code>.\n"
f"\nСодержание сообщения:\n"
f"<code>{message}</code>")