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
22 lines
941 B
Python
22 lines
941 B
Python
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>")
|