Изменения шаблона:

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
This commit is contained in:
latand
2021-01-07 13:58:34 +02:00
parent 2f0f400cd5
commit 1bbe12e9c1
10 changed files with 42 additions and 40 deletions

View File

@@ -33,16 +33,5 @@ class ThrottlingMiddleware(BaseMiddleware):
raise CancelHandler()
async def message_throttled(self, message: types.Message, throttled: Throttled):
handler = current_handler.get()
dispatcher = Dispatcher.get_current()
if handler:
key = getattr(handler, 'throttling_key', f"{self.prefix}_{handler.__name__}")
else:
key = f"{self.prefix}_message"
delta = throttled.rate - throttled.delta
if throttled.exceeded_count <= 2:
await message.reply('Too many requests! ')
await asyncio.sleep(delta)
thr = await dispatcher.check_key(key)
if thr.exceeded_count == throttled.exceeded_count:
await message.reply('Unlocked.')