pyTelegramBotAPI действие над сообщением, на которое ответили
Например, бот прислал сообщение, я отвечаю на него какой-нибудь командой, после чего над выбранным сообщением совершается действие, например пишу "сохранить", после чего сообщение сохраняется в текстовик. Либо без команды, просто выполняется действие.
Интересует способ доставания текста сообщения, на которое отвечаешь.
main.py:
import telebot
from telebot.types import Message
import config
bot = telebot.TeleBot(config.token)
bot.send_message(config.owner_id, 'Привет')
if __name__ == '__main__':
bot.polling(none_stop=True)
config.py:
token = 'token'
owner_id = 123456
Ответы (2 шт):
Автор решения: D. Violet
→ Ссылка
if hasattr(message.reply_to_message, 'text'):
print('сообщение: ' + message.reply_to_message.text, 'ответ: ' + message.text)
else:
print('без ответа')
либо
# noinspection PyBroadException
try:
print('сообщение: ' + message.reply_to_message.text, 'ответ: ' + message.text)
except Exception:
pass
Автор решения: SecorD
→ Ссылка
D. Violet, спасибо!
А вот пример использования:
import telebot
from telebot.types import Message
import config
bot = telebot.TeleBot(config.token)
@bot.message_handler(content_types=['text'])
def text(message: Message):
try:
if hasattr(message.reply_to_message, 'text'):
msg = message.reply_to_message.text
hi = msg.split('\n')
if message.text == 'Сохрани телефон':
number = hi[3]
number = number[9:]
print(number)
with open('number.txt', 'w') as file:
file.write(number)
bot.send_message(message.chat.id, 'Готово!')
elif message.text == 'Сохрани заявку':
bot.send_message(message.chat.id, 'Ещё не завезли :С')
else:
bot.send_message(message.chat.id, 'Такой команды нет!')
else:
bot.send_message(message.chat.id, 'Имя: Артём\n'
'Фамилия: Некрасов\n'
'Пол: М\n'
'Телефон: 88005553535')
except:
bot.send_message(message.chat.id, 'Ошибка!')
if __name__ == '__main__':
bot.polling(none_stop=True)
