как сделать, то бы все сообщения, что прислал пользователь внести в 1 ответ бота
Как сделать, что бы бот обледенил все сообщения, которые присылал пользователь и отправил их пользователю те же сообщения
Ответы (1 шт):
Надо использовать библиотеку для создания ботов - python-telegram-bot.
Пример кода, который объединяет все сообщения пользователя и отправляет их ему же в ответ:
from telegram.ext import Updater, MessageHandler, Filters
# Словарь, в котором будут храниться сообщения пользователей
user_messages = {}
# Функция-обработчик сообщений
def handle_message(update, context):
# Получаем id пользователя
user_id = update.effective_user.id
# Получаем текст сообщения
text = update.message.text
# Если пользователь уже отправлял сообщения, то добавляем новое к предыдущим
if user_id in user_messages:
user_messages[user_id].append(text)
# Если это первое сообщение пользователя, то создаем новую запись в словаре
else:
user_messages[user_id] = [text]
# Отправляем пользователю его сообщения в ответ
context.bot.send_message(chat_id=user_id, text='\n'.join(user_messages[user_id]))
# Создаем объект Updater и передаем ему токен бота
updater = Updater(token='YOUR_TOKEN', use_context=True)
# Получаем диспетчер сообщений
dispatcher = updater.dispatcher
# Регистрируем обработчик сообщений
dispatcher.add_handler(MessageHandler(Filters.text, handle_message))
# Запускаем бота
updater.start_polling()
Создаем словарь user_messages, в котором будут храниться сообщения, и функцию-обработчик handle_message, которая будет вызываться каждый раз, когда пользователь отправляет сообщение.
Внутри функции мы получаем id пользователя и текст его сообщения, проверяем, отправлял ли пользователь ранее сообщения, и добавляем новое сообщение к предыдущим или создаем новую запись в словаре. Затем отправляем пользователю его сообщения в ответ, объединив их в одну строку с помощью метода join.
Для запуска бота нужно заменить 'YOUR_TOKEN' на токен твоего бота и запустить скрипт.