nmkru
@nmkru
beginner python programmer

Как зациклить бота telebot?

Есть код общения админа бота с пользователем через телеграм бот, написанный на telebot.
Переписка ограничена сообщением от пользователя - админу и ответом админа - пользователю. Как можно ее продлить - думаю над вечным циклом, но не могу понять как его применить, подскажите, как снять ограничения, чтобы можно было вести беседу через бот с пользователем.

Код взял с интернета:
@bot.message_handler(commands=["start"])
def send_welcome(message):
    msg = bot.send_message(message.chat.id, 'введи сообщение')
    bot.register_next_step_handler(msg, forward_adm)


def forward_adm(message):
    print('forward_adm')
    print(message.chat.id)
    bot.send_message(adm, '{}'.format(message.text))
    forward_usr(message)


def forward_usr(message):
    print('forward_usr')
    print(message.chat.id)
    global usr_id
    usr_id = message.chat.id

    msg = bot.send_message(adm, 'введи ответ')
    bot.register_next_step_handler(msg, forward_usr_1)


def forward_usr_1(message):
    print('forward_usr_1')
    print(message.chat.id)
    bot.send_message(usr_id, '{}'.format(message.text))


# Запуск бота
bot.polling(none_stop=True, interval=0)
  • Вопрос задан
  • 506 просмотров
Пригласить эксперта
Ответы на вопрос 1
Цикл у бота уже есть. Его не нужно выдумывать. Нужно просто понять принципа работы чат-ботов.
Бот принимает сообщение и обрабатывает его каким-то образом. Удобнее всего для диалога бота с пользователем использовать машину состояний и кнопки (инлайн кнопки либо кнопки в меню), а также можно просто команды.
Например, можно предоставить выбор пользователю - кнопки Да/Нет. Или командами /yes /no
Машина состояний есть в aiogram, в телебот я не знаю. Но можно для этого использовать Redis и для каждого пользователя сохранять ход диалога
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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