как сделать, то бы все сообщения, что прислал пользователь внести в 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' на токен твоего бота и запустить скрипт.

→ Ссылка