diff options
Diffstat (limited to 'main.py')
| -rw-r--r-- | main.py | 18 |
1 files changed, 13 insertions, 5 deletions
@@ -93,10 +93,13 @@ async def guest_middleware(handler, event, data): if not is_replied_bot(message, is_channel, user_text, config) and event.message: return - + + # снизу очень важный кусок кода!! у нас же async бот да ну вот + # если переслать несколько сообщений то удасться обойти ограничение + # по задержке между генерациями и поэтому тут такое решение + # скоро это будет нормально реализовано. ждите. if user_id: - if is_channel: - await asyncio.sleep(uniform(0,1)) + await asyncio.sleep(uniform(0,1)) text, blocked = is_blocked(user_id) if blocked: @@ -120,7 +123,7 @@ async def guest_middleware(handler, event, data): ensure_user(user_id) - last_command_time[user_id] = current_time + last_command_time[user_id] = [current_time, True] msg = None replied = message.reply_to_message or None @@ -307,6 +310,8 @@ async def guest_middleware(handler, event, data): add_one_to("stats/guest") else: return + + last_command_time[user_id][1] = False try: if event.guest_message: @@ -392,13 +397,16 @@ async def chosen_inline_result_handler(chosen_result: ChosenInlineResult): inline_message_id=inline_message_id ) return - last_command_time[user_id] = current_time + + last_command_time[user_id] = [current_time, True] + if inline_message_id: try: result = await generate( prompt=chosen_result.query[:MAX_PROMPT], user_id=chosen_result.from_user.id, ) + last_command_time[user_id][1] = False except Exception as e: error = parse_response(str(e)) await bot.edit_message_text( |