У меня в юзер боте есть реакция на сообщение "мяу", он сохраняет в бд количество мяуканий и отправляет стикер. Но как сделать ограничение на запрос по этому мяу? То есть человек в некоторых чатах может просто начать спамить и какой-нибудь бот это расценивает как флуд. В aiogram есть rate_limit который хорошо с этим справляется. В pyrogram я нашел только except FloodWait который ограничивает, но не так как мне нужно. Условно говоря хочется чтобы после того как человек написал 4 раза мяу под ряд бот ставился на паузу в секунд 5-10.
@app.on_message(filters.command("мяу", prefixes='') & filters.all)
async def type(client_object, message: Message):
randomsticker = ('CAACAgIAAxkBAAELvZll-Miwf1efzjpzeDzU35gFDL9ZqQACJzkAAvO2SUpkIculSuJieDQE', 'CAACAgIAAxkBAAELvZtl-MjNX0igmnjqIWM1OftV7kCeGQAChBMAAjluyUtmVU5UsGspDzQE', 'CAACAgIAAxkBAAELvZ1l-MjYwbbN_xy34SsD5H0Ls0oLjgACjRoAArBMyUse0rmJB-7RcTQE','CAACAgIAAxkBAAELvZ9l-MkHQAaCSzXp8zSXRZR4C2yAPgACuxcAAnZd0Ek3pVO4H1JC3jQE','CAACAgIAAxkBAAELvaFl-MkWig9h9vtn2ijqPjbcc80Y1AACaxUAAnqH8Ej5yWCSGa7YpzQE','CAACAgIAAxkBAAELvaNl-Mkr4d1O-pdcv5PY5gvl-fElxQACaR4AAhyaEEvbZLJoHqzj3DQE','CAACAgIAAxkBAAELvaVl-MlMfe0Hm8tJR5HiAAFrNi6ohlIAAjokAAJ-jCFLxxVhCk6yNuA0BA','CAACAgIAAxkBAAELvadl-Mlt3utX6szJplpZ1Qu4ZpGL7wAChEAAAnAT-Ug7pKo_VbHcBjQE','CAACAgIAAxkBAAELvall-MmANk-mhT-GLLR6Xroz587JEgAC7ycAAtHHWUhngGsBmQ9DcjQE','CAACAgIAAxkBAAELvatl-MmYzwKEwhMeBvMdCeL8FrencAACWCkAAmHbcUv0-MJqdq3kNjQE','CAACAgIAAxkBAAELva1l-Mm0i89JL0iaJrOrPZl1K_8DLwAC4hwAAkp78EsAAaA2OREhAAGpNAQ','CAACAgIAAxkBAAELyp1mAWRT90tkLFIh-W4bEeKnb-SPEgAC7jQAAj4HcUnbvNQ639MiJjQE','CAACAgIAAxkBAAELyp9mAWRqpZ92HwkOxNlyP_YE3vJVSAACWT0AAk5gCUpeL8oMZ7JNaTQE')
random_meow = random.choice(randomsticker)
row = db.cur.execute(f"SELECT user_id FROM animals WHERE user_id == '{message.from_user.id}'").fetchone()
if row is None:
await app.send_sticker(message.chat.id, random_meow)
db.db_table_val(user_id=message.from_user.id, username=message.from_user.username, first_name=message.from_user.first_name, meow = 1, gav = 0, krya=0)
elif row is not None:
msg = await app.send_sticker(message.chat.id, random_meow)
db.cur.execute(f"UPDATE animals SET meow = meow + 1 WHERE user_id == '{message.from_user.id}'")
db.db.commit()
await sleep(20)
await msg.delete()