@xx_RuBiCoN_xx

Чат поддержки пересылает только 1 сообщение юзера. Как продолжить?

Есть вот такой код
@bot.message_handler(commands=["help"])
def help(m, res=False):
    global help_user_id
    help_user_id = m.from_user.id
    markup = types.InlineKeyboardMarkup()
    button1 = types.InlineKeyboardButton(text='Отмена', callback_data='cancel')
    markup.add(button1)
    msg = bot.send_message(m.chat.id, 'Задайте вопрос боту.', reply_markup=markup)
    bot.register_next_step_handler(msg, helpBot)

# Функция, отправляющая вопрос от пользователя в чат поддержки
def helpBot(m):
    bot.forward_message(-1001907198231, m.chat.id, m.message_id)

# Получение сообщений от юзера,
@bot.message_handler(content_types=["text"])
def handle_text(m):
    # здесь если чат id равен id чата поддержки, то отправить сообщение пользователю который задал вопрос
    if int(m.chat.id) == int(-1001907198231):
        bot.send_message(help_user_id, m.text)


Запускаю. Ввожу команду /help, ввожу вопрос, вопрос пересылается в группу админов, админы могут ответить на вопрос, ответ приходит в бота. Но, если пользователь пишет второй вопрос - он уже не пересылается. Пробовал по разному, лопатил интернет - ничего не могу найти подходящего. Единственное, что нашёл, это добавить в самом конце:

else:
        # сообщение от пользователя, отправляем оператору
        bot.forward_message(-1001907198231, message.chat.id, message.message_id)


В таком случае все сообщения пользователя пересылаются и на все можно ответить админам. Но есть проблема - пересылаются вообще все сообщения даже без команды /help.
  • Вопрос задан
  • 108 просмотров
Решения вопроса 1
RimMirK
@RimMirK
Вроде человек. Вроде учусь. Вроде пайтону
можно сделать примерно так
messages = []

@bot.message_handler(commands=['start'])
def start(message):
    m = bot.send_message(message.chat.id, f"Отправляй сообщения, когда закончишь - пиши /stop")
    bot.register_next_step_handler(m, msgs)

def msgs(message):
    if message.text != '/stop':
        messages.append(message.text)
        start(message)
    else:
        bot.send_message(message.chat.id, f'Ты навводил:\n\n'+"\n".join(messages))
64628c39637a9686223547.png
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы