Как удалить ответ на сообщение с определенным текстом в aiogram?

Как настроить бота так, чтобы он удалял сообщение пользователя и ваше сообщение, если вы ответите на его сообщение "!удалить"? Или чтобы бот автоматически отвечал на сообщение пользователя каким-то текстом, если вы ответите на него "!ответить"? Я уже создавал подобного бота, однако потерял исходный код, и мне трудно разобраться в документации. Благодарю заранее за помощь.
  • 26 июня 2024 г. 0:41
Ответы на вопрос 2
Вот пример кода на Python с использованием библиотеки aiogram, который реализует удаление ответа на сообщение с определенным текстом:

```python
from aiogram import Bot, Dispatcher, types
from aiogram.contrib.middlewares.logging import LoggingMiddleware
from aiogram.types import Message

API_TOKEN = 'YOUR_API_TOKEN'

bot = Bot(token=API_TOKEN)
dp = Dispatcher(bot)
dp.middleware.setup(LoggingMiddleware())

@dp.message_handler()
async def delete_message(message: Message):
    if message.text == 'Удалить это сообщение':
        await message.delete()
       
if __name__ == '__main__':
    from aiogram import executor
    executor.start_polling(dp)
```

Чтобы настроить бота так, чтобы он удалял сообщение пользователя и ваше сообщение, если вы ответите на его сообщение "!удалить", можно модифицировать функцию delete_message следующим образом:

```python
@dp.message_handler()
async def delete_message(message: Message):
    if message.reply_to_message and message.text == '!удалить':
        await message.reply_to_message.delete()
        await message.delete()
```

Для автоматического ответа на сообщение пользователя каким-то текстом, если вы ответите на него "!ответить", вы можете использовать следующий код:

```python
@dp.message_handler()
async def reply_message(message: Message):
    if message.reply_to_message and message.text == '!ответить':
        await message.reply_to_message.reply('Ваш текст ответа здесь')
```

Также не забудьте добавить соответствующие импорты в ваш код. Надеюсь, это поможет вам в реализации функционала вашего бота.
async def delete(message: types.Message):
    if not message.reply_to_message:
        await message.reply('Эта команда должна быть ответом на сообщение!')
    else:
        await bot.delete_message(chat_id=message.chat.id, message.reply_to_message.message_id)
        #или
        await message.reply_to_message.delete()
Похожие вопросы