@Andnet

Чат-бот перестал отправлять и принимать сообщения с вложениями, картинками. Ошибка в старом Pyrogram 1.4.8?

Два года чатбот успешно работал без проблем. Сначала отвалилась передача картинок и всех медиавложений
Работал на Pyrogram 1.4.8
Обновил до 2.0 и совсем перестал работать. Так как слабо разбираюсь в Pyrogram , нужна помощь.
Бот простенький, ему отправляют сообщения и принимаю я , отвечаю и принимает клиент. Ничего лишнего.
Вот файл с кодом, отвечающий за сообщения
import os

from pyrogram import Client, filters
from presets import Presets

if bool(os.environ.get("ENV", False)):
    from sample_config import Config
else:
    from config import Config


@Client.on_message(filters.private & filters.text)
async def pm_text(bot, message):
    if message.from_user.id == Config.ADMIN:
        await reply_text(bot, message)
        return
    info = await bot.get_users(user_ids=message.from_user.id)
    reference_id = int(message.chat.id)
    await bot.send_message(
        chat_id=Config.ADMIN,
        text=Presets.PM_TXT_ATT.format(reference_id, info.first_name, info.username, message.text),
        parse_mode="html"
    )


@Client.on_message(filters.private & filters.media)
async def pm_media(bot, message):
    if message.from_user.id == Config.ADMIN:
        await replay_media(bot, message)
        return
    info = await bot.get_users(user_ids=message.from_user.id)
    reference_id = int(message.chat.id)
    await bot.copy_message(
        chat_id=Config.ADMIN,
        from_chat_id=message.chat.id,
        message_id=message.message_id,
        caption=Presets.PM_MED_ATT.format(reference_id, info.first_name, info.username),
        parse_mode="html"
    )


@Client.on_message(filters.user(Config.ADMIN) & filters.text)
async def reply_text(bot, message):
    reference_id = True
    if message.reply_to_message is not None:
        file = message.reply_to_message
        try:
            reference_id = file.text.split()[2]
        except Exception:
            pass
        try:
            reference_id = file.caption.split()[2]
        except Exception:
            pass
        await bot.send_message(
            text=message.text,
            chat_id=int(reference_id)
        )


@Client.on_message(filters.user(Config.ADMIN) & filters.media)
async def replay_media(bot, message):
    reference_id = True
    if message.reply_to_message is not None:
        file = message.reply_to_message
        try:
            reference_id = file.text.split()[2]
        except Exception:
            pass
        try:
            reference_id = file.caption.split()[2]
        except Exception:
            pass
        await bot.copy_message(
            chat_id=int(reference_id),
            from_chat_id=message.chat.id,
            message_id=message.message_id,
            parse_mode="html"
        )

Сам бот запускается и Старт работает, но сообщения не получает и не отправляет ответом. Если удалить строки parser_mode или прописать None, то сообщения отправляются и можно ответить. НО только текстовых сообщением, картинки и файлы отправить нельзя.
Что произошло в Телеге? Что исправить чтоб работало все как прежде только на новом Pyrogram2?
Буду благодарен, если кто поможет. Могу и задонатить, если кто-то сам решит этот вопрос.
  • Вопрос задан
  • 305 просмотров
Решения вопроса 1
@Andnet Автор вопроса
Отвечу сам себе тк решил проблему.
Удалил строку parse_mode="html" и изменил атрибут message_id=message.message_id на message_id=message.id во всех местах. И все заработало на Pyrogram 2
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы