Почему в группе команды бота работают и дублируют ответ на сообщение в группе?
Я сделал бота который пересылает сообщение пользователя в закрытую группу. Дальше в группе админ отвечает на сообщение через reply и ответ присылается пользователю. Проблема в том что команды бота(например /start) работает в закрытой группе, вторая проблема когда админ отвечает на сообщение в группе бот дублирует ответ в группе(грубо говоря бот в группе реагирует на любой текст и дублирует его). Как это исправить?
@dp.message_handler(content_types='text')
async def get_message(message: types.Message):
await message.forward(PRIVATE_GROUP, message.text)
# когда админ отвечает на сообщение вернуть ответ пользователю
# почему команда /start работает в группе?
# почему бот дублирует ответ в группе?
if message.reply_to_message and message.chat.id == PRIVATE_GROUP and message.text != '/start':
await bot.send_message(message.from_user.id, message.text)
Ответы (1 шт):
Автор решения: biflé
→ Ссылка
Простым решением будет фильтр - не выполняем действие когда chat_id сообщения совпадает с chat_id группы. В коде это выглядит так:
@dp.message_handler(content_types='text')
async def get_message(message: types.Message):
#если chat_id сообщения == chat_id группы - не пересылаем
if message.chat.id!=PRIVATE_GROUP:
await message.forward(PRIVATE_GROUP, message.text)
elif message.reply_to_message:
await bot.send_message(message.from_user.id, message.text)