Не отправляются сообщения с прикрепленными картинками в чат поддержки Телеграм
Есть чат бот поддержки в телеге, написанный на python 3. Пользователь пишет боту своему проблему, при этом сообщение форвардится в чат поддержки телеграм, где сидит поддержка. Соответственно поддержка отвечает и сообщению уходит обратно в его чат с ботом.
Проблема в том, что, если пользователь прикрепляет к своему сообщению картинки или файлы, то они не прилетаю в бот поддержки. Подскажите, пожалуйста, что нужно поправить, чтобы сообщения с картинками (jpeg, png) или отдельно картинки корректно пересылались в чат поддержки
хендлер бота, который отвечает за получение сообщения от пользователя и перенаправление в чат поддержки
from aiogram import types
from aiogram.dispatcher.storage import FSMContext
from aiogram.dispatcher.filters.builtin import Command
from loader import dp, db
from data.config import SUPPORT_CHAT
from states.query import Query
@dp.message_handler(Command('help'))
async def show_commands(message: types.Message):
db.add_user(
message.from_user.id,
message.from_user.first_name,
message.from_user.last_name,
message.from_user.username
)
await message.answer("""
В скором времени специалист подключится к решению вашей проблемы.
Если вы поняли что вам более не нужна помошь, нажмите /start
""")
# Эхо хендлер, куда летят текстовые сообщения без указанного состояния
@dp.message_handler(Command('start'), state='*')
async def register_user(message: types.Message, state: FSMContext):
db.add_user(
message.from_user.id,
message.from_user.first_name,
message.from_user.last_name,
message.from_user.username
)
await message.answer("""
Добро пожаловать в бота технической поддержки <b>1</b>
Чтобы задать вопрос просто напишите его в чат
""", parse_mode='HTML')
data = await state.get_data()
if data.get('ticket'):
db.close_ticket(message.from_user.id, message.from_user.id)
await state.reset_state()
@dp.message_handler(chat_type=types.ChatType.PRIVATE, state=Query.query)
async def continue_ticket(message: types.Message, state: FSMContext):
db.add_user(
message.from_user.id,
message.from_user.first_name,
message.from_user.last_name,
message.from_user.username
)
ticket_id = (await state.get_data())['ticket']
frwd_message = await dp.bot.copy_message(chat_id=SUPPORT_CHAT, from_chat_id=message.from_user.id, message_id=message.message_id)
if message.photo or message.document or message.video or message.video_note or message.animation or message.audio:
await dp.bot.edit_message_caption(
SUPPORT_CHAT, frwd_message.message_id,
caption=f'Тикет <a>#t{ticket_id}</a> от <a href="https://t.me/{message.from_user.id}">{message.from_user.first_name}</a>\n\n' + message.text,
)
else:
await dp.bot.edit_message_text(
f'Тикет <a>#t{ticket_id}</a> от <a href="https://t.me/{message.from_user.id}">{message.from_user.first_name}</a>\n\n' + message.text,
SUPPORT_CHAT, frwd_message.message_id
)
db.save_message(frwd_message.message_id, message.from_user.id)
@dp.message_handler(chat_type=types.ChatType.PRIVATE, state='*')
async def generate_ticket(message: types.Message, state: FSMContext):
db.add_user(
message.from_user.id,
message.from_user.first_name,
message.from_user.last_name,
message.from_user.username
)
try:
ticket_id = db.get_user_ticket(message.from_user.id)
except:
ticket_id = db.create_ticket(message.from_user.id)
await message.answer(f"""
Здравствуйте. Вашему обращению присвоен номер #{ticket_id}
В скором времени специалист подключится к решению вашей проблемы.
""")
await state.update_data(ticket=ticket_id)
# await message.forward(SUPPORT_CHAT)
frwd_message = await dp.bot.copy_message(chat_id=SUPPORT_CHAT, from_chat_id=message.from_user.id, message_id=message.message_id)
if message.photo or message.document or message.video or message.video_note or message.animation or message.audio:
# await frwd_message.edit_caption(f'Тикет <a>#t{ticket_id}</a> от <a href="https://t.me/{message.from_user.id}">{message.from_user.first_name}</a>\n\n' + message.text)
await dp.bot.edit_message_caption(
SUPPORT_CHAT, frwd_message.message_id,
caption=f'Тикет <a>#t{ticket_id}</a> от <a href="https://t.me/{message.from_user.id}">{message.from_user.first_name}</a>\n\n' + message.text,
)
else:
await dp.bot.edit_message_text(
f'Тикет <a>#t{ticket_id}</a> от <a href="https://t.me/{message.from_user.id}">{message.from_user.first_name}</a>\n\n' + message.text,
SUPPORT_CHAT, frwd_message.message_id
)
db.save_message(frwd_message.message_id, message.from_user.id)
await Query.query.set()