#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
.