aboutsummaryrefslogtreecommitdiff
path: root/main.py
diff options
context:
space:
mode:
Diffstat (limited to 'main.py')
-rw-r--r--main.py18
1 files changed, 13 insertions, 5 deletions
diff --git a/main.py b/main.py
index 0d45504..8f08674 100644
--- a/main.py
+++ b/main.py
@@ -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(