Как прочитать сообщение, на которое был дан ответ в telegram, используя telethon

#python #python-3.x #telegram-bot #python-telegram-bot #telethon

#python #python-3.x #telegram-бот #python-telegram-bot #телемарафон

Вопрос:

Мне нужен скрипт для чтения последнего сообщения канала telegram. Если последнее сообщение этого канала является ответом на что-то, я хочу прочитать это сообщение, на которое было получено последнее сообщение. Например, выделенное сообщение на этой картинке.

https://i.stack.imgur.com/cRSzS.jpg

У меня есть этот код для чтения последнего сообщения, но я понятия не имею, как прочитать это сообщение, я знаю, что могу использовать параметр is_reply, чтобы узнать, является ли последнее сообщение ответом на что-то, но я не знаю, что делать дальше, есть идеи?

 async def get_mess():
    limit = 1
    global new
    async for message in client.iter_messages('Passive Lifestyle Forex Signals', limit):
        new = message.text

whlie True:
    get_mess()
  

Я знаю, что это не самое эффективное, но это не важно. Есть идеи, как это закодировать? Я могу ответить вам, если вам нужно что-то более конкретное.

Ответ №1:

Я бы посоветовал использовать get_messages для получения последнего сообщения, чтобы вы также могли опустить ограничение. Затем вам нужно будет проверить, отвечает ли сообщение на другое сообщение, и если да, получить его.

    async def get_mess():
       global new
       message = await client.get_messages('YOUR CHAT') # you can omit the limit
       if message.is_reply:
           new = await message.get_reply_message()
   while True:
       get_mess() 
  

Ответ №2:

 async def get_mess():
    limit = 1
    global new
    async for message in client.iter_messages('Passive Lifestyle Forex Signals', limit):
        new = message
        if new.reply_to_msg_id:
            yourtext = await new.get_reply_message()

whlie True:
    get_mess()
  

Комментарии:

1. Это можно упростить, используя get_messages , чтобы избавиться от цикла. get_reply_message также вернется None , если ответа нет, поэтому нет необходимости проверять reply_to_msg_id .