Писал с использованием библиотеки vkbottle. Попытался сделать реализацию через кастомные правила, но зашёл в тупик на получении user_id в этом самом кастомном правиле:
class FromSpecificUser(ABCRule[BaseMessageMin]):
def __init__(self, userIds: list[int], fr_id: BaseMessageMin.from_id) ->bool:
return userIds.__contains__(fr_id)
Код хендлера.
@bot.on.message(FromSpecificUser([284629059]))
async def delete_eblan(mes:Message):
await bot.api.messages.delete(peer_id=mes.peer_id, message_ids=mes.message_id, delete_for_all=True)
В идеале конечно сделать переключатель для каждого отдельного пользователя командами с последующим добавлением user_id этого пользователя в какой нибудь список.
Я сделал в таком виде (хотя оно и не будет работать, это заготовка)
usersId_to_delete = []
@bot.on.message(command = "мут")
async def nopasha_handler(message: Message):
userId_toDelete = message.reply_message.from_id
usersId_to_delete.append(userId_toDelete)
return "Удаление сообщений от пользователя начнется после их отправки. Введите /cancel, чтобы отменить."
@bot.on.message(command="анмут")
async def cancel_handler(message: Message):
userId_toDelete = message.reply_message.from_id
usersId_to_delete.remove(userId_toDelete)
return "Удаление сообщений отменено."