У меня в боте люди могут кинуть куб и дальше там получают мут и размут, но они могут им заспамить, я написал и middleware и поставил анти-спам, но всё же можно просто быстро написать !Куб 1 и бот всё выполнит как минимум 2 раза. Хотелось бы чтобы бот выполнил после !Куб 1 все действия, но больше не отвечал на эту комманду секунд 5-6. Вроде слышал про asyncio.sleep(), но не знаю как оно работает, помогите пжпжпжпж
Вот код, спасибо за внимание!
kukb1 = ("!Куб 1", "!куб 1")
@dp.message_handler(Text (kukb1))
async def cub2(message: types.Message):
cursor = db.cur.execute(f"SELECT user_id FROM winka WHERE user_id == '{message.from_user.id}'")
row = cursor.fetchone()
if row is None:
db.db_table_val(user_id=message.from_user.id, username=message.from_user.username, losse = 0, win = 0) # cursor = db.execute('INSERT INTO table_name (user_id, username, losse, win) VALUES (?, ?, ?, ?)',(user_id, username, losse, win))
await message.reply("кинь кубик еще")
elif row is not None:
result_losse = db.cur.execute (f"SELECT losse FROM winka WHERE user_id == '{message.from_user.id}'") # db.db_table_val(user_id=message.from_user.id, username=message.from_user.username, losse = 0, win = 0)
perem = result_losse.fetchall()[0][0]
result_win = db.cur.execute ((f"SELECT win FROM winka WHERE user_id == '{message.from_user.id}'"))
perem2 = result_win.fetchall()[0][0]
db.db_table_val(user_id=message.from_user.id, username=message.from_user.username, losse = perem, win = perem2)
kub = await bot.send_dice(message.chat.id)
kub = kub['dice']['value']
await sleep (4)
if 1 < kub:
result_losse = db.cur.execute (f"SELECT losse FROM winka WHERE user_id == '{message.from_user.id}'")
db.cur.execute(f"UPDATE winka SET losse = losse + 1 WHERE user_id == '{message.from_user.id}'")
db.db.commit()
await message.reply(text=f"{message.from_user.full_name}\nТы не угадал!\nВыпало: {kub}\nТеперь у тебя мут на 10 минут")
await bot.restrict_chat_member(message.chat.id, message.from_user.id, perms1)
await sleep(600)
await bot.restrict_chat_member(message.chat.id, message.from_user.id, perms2)
elif 1 > kub:
result_losse = db.cur.execute (f"SELECT losse FROM winka WHERE user_id == '{message.from_user.id}'")
db.cur.execute(f"UPDATE winka SET losse = losse + 1 WHERE user_id == '{message.from_user.id}'")
db.db.commit()
await message.reply(text=f"{message.from_user.full_name}\nТы не угадал!\nВыпало: {kub}\nТеперь у тебя мут на 10 минут")
await bot.restrict_chat_member(message.chat.id, message.from_user.id, perms1)
await sleep(600)
await bot.restrict_chat_member(message.chat.id, message.from_user.id, perms2)
else:
result_losse = db.cur.execute (f"SELECT losse FROM winka WHERE user_id == '{message.from_user.id}'")
db.cur.execute(f"UPDATE winka SET win = win +1 WHERE user_id == '{message.from_user.id}'")
db.db.commit()
await message.reply(text=f"{message.from_user.full_name}\nТЫ ПОБЕДИЛ!\nВыпало: {kub}")
return kukb1