Задать вопрос
  • Первая часть бота работает, выводит список ролей. После выбора роли ничего не происходит. В чем может быть проблема?

    @Almaz_khan Автор вопроса
    spoiler

    import telebot
    from secrets import secrets
    from telebot import types
    import random
    from compliments import compliments
    
    general = 0 #глобальная переменная для подсчета общего количества посетителей
    
    token = secrets.get ('BOT.API.TOKEN') #подключение бота к коду
    bot = telebot.TeleBot (token)
    
    @bot.message_handler(commands=['start']) #Действия бота при команде старт
    def start_message(message): #выбор роли человека
        markup = types.ReplyKeyboardMarkup(resize_keyboard=True, one_time_keyboard=True)
        start_button = types.KeyboardButton("Посетитель")
        action_button = types.KeyboardButton("Школьник")
        partners_button = types.KeyboardButton("Партнер")
        markup.add(start_button, action_button, partners_button)
        bot.send_message(message.chat.id, text = "Привет, {0.first_name} \nЯ помогу тебе с навигацией по предприятию \nВыбери кем ты являешься".format(message.from_user), reply_markup=markup)
    @bot.message_handler(content_types=['text']) #ответы бота на разные ответы пользователя
    def buttons(message):
        global general
        def place(): #функция запроса выбора места
            bot.send_message(message.chat.id, text="Хорошо, теперь выберите куда вы хотите попасть")
        def scheme(messages: types.Message): #функция выбора итогового места    
            markup = types.ReplyKeyboardRemove()
            markup = types.ReplyKeyboardMarkup (resize_keyboard=True)
            museum_button = types.KeyboardButton("Музей")
            warehouse_button = types.KeyboardButton("Склад")
            acceptance_button = types.KeyboardButton("Приемная")
            markup.add(museum_button, warehouse_button, acceptance_button)                
        if (message.text == "Посетитель"): 
            place()
            general = general +1
            scheme()
        elif (message.text == "Школьник"):
            place()
            general = general +1
            scheme()
        elif (message.text == "Партнер"):
            place()
            general = general +1
            scheme()
        else: 
            bot.send_message(message.chat.id, text = "Я могу отвечать только на нажатие кнопок")
    
    bot.polling(non_stop=True,interval=0) #непрерывная работа бота


    Примерно такой был у меня код. И это не бред нейросети, как указали вы, а в основном то, что мне нужно было. Искал на интернет ресурсах, как сделать, что б после выбора роли выдавался список из возможных мест и человек следовательно уже выбирал то место. куда ему необходимо придти.

    Причем код работал до ввода изменений, полагаю что проблема в кнопках либо в "списках" где они содержатся.
    Так же возможен такой вариант кода
    spoiler

    import telebot
    from secrets import secrets
    from telebot import types
    import random
    from compliments import compliments
    
    general = 0 #глобальная переменная для подсчета общего количества посетителей
    
    token = secrets.get ('BOT.API.TOKEN') #подключение бота к коду
    bot = telebot.TeleBot (token)
    
    @bot.message_handler(commands=['start']) #Действия бота при команде старт
    def start_message(message): #выбор роли человека
        markup = types.ReplyKeyboardMarkup(resize_keyboard=True, one_time_keyboard=True)
        start_button = types.KeyboardButton("Посетитель")
        action_button = types.KeyboardButton("Доставка груза")
        partners_button = types.KeyboardButton("Доставка еды и воды")
        markup.add(start_button, action_button, partners_button)
        bot.send_message(message.chat.id, text = "Привет, {0.first_name} \nЯ помогу тебе с навигацией по предприятию \nВыбери кем ты являешься".format(message.from_user), reply_markup=markup)
    @bot.message_handler(content_types=['text']) #ответы бота на разные ответы пользователя
    def place(message):
        place = types.ReplyKeyboardMarkup(resize_keyboard=True)
        visitor = types.ReplyKeyboardMarkup(resize_keyboard=True)
        kip_button = types.KeyboardButton('КИП')
        proizv1_button = types.KeyboardButton('Производство 1')
        proiz2_button = types.KeyboardButton('Производство 2')
        lab_button = types.KeyboardButton('Лаборатория')
        metr_button = types.KeyboardButton('Метрология')
        priem_button = types.KeyboardButton('Приемная')
        museum_button = types.KeyboardButton('Музей')
        place.add(kip_button, proiz2_button, proizv1_button, lab_button, metr_button, priem_button)
        visitor.add(museum_button, priem_button)
    @bot.message_handler(content_types=['text'])
    def dostavka():
        dostavka = types.ReplyKeyboardMarkup(resize_keyboard=True)
        cklad_button = types.KeyboardButton('Склад')
        priemka_button = types.KeyboardButton('Приемная - выгрузка')
        met_button = types.KeyboardButton('Склад - метрология')
        dostavka.add(cklad_button, priemka_button, met_button)
    @bot.message_handler(content_types=['text'])
    def visitor():
        visitor = types.ReplyKeyboardMarkup(resize_keyboard=True)
        museum_button = types.KeyboardButton('Музей')
        priem_button = types.KeyboardButton('Приемная')
        visitor.add(museum_button, priem_button)    
    @bot.message_handler(content_types=['text'])    
    def buttons(message):
        global general            
        if (message.text == "Посетитель"): 
            bot.send_message(message.chat.id, text="Хорошо, теперь выберите куда вы хотите попасть", reply_markup=visitor)
            general = general +1  
        elif (message.text == "Доставка груза"):
            bot.send_message(message.chat.id, text="Хорошо, теперь выберите куда вы хотите попасть", reply_markup=dostavka)
            general = general +1
        elif (message.text == "Доставка еды и воды"):
            bot.send_message(message.chat.id, text="Хорошо, теперь выберите куда вы хотите попасть", reply_markup=place)
            general = general +1
        else: 
            bot.send_message(message.chat.id, text = "Я могу отвечать только на нажатие кнопок")
    
    bot.polling(non_stop=True,interval=0) #непрерывная работа бота

    Написано
  • Как сделать, чтобы бот постоянно работал?

    @Almaz_khan Автор вопроса
    Работаю в VS Code, только немного начал разбираться в программировании, как запустить без IDE?
    Написано