@Kasper79

Как настроить одновременное использование телеграм-бота несколькими пользователями?

Не выходит настроить одновременное использование телеграм-бота несколькими пользователями. Прилагаю часть кода

@bot.message_handler(commands=['start'])
def build_categories2(message):
global start

build_markup = types.ReplyKeyboardMarkup(resize_keyboard=True)

build_markup.row('здание1', 'здание2')

bot.send_message(message.from_user.id, text_messages['start'].format(name=message.from_user.first_name),
reply_markup=build_markup)

bot.register_next_step_handler(message, floor_categories2)

start = message.text
print(start)


@bot.message_handler(content_type=['text'])
def floor_categories2(message):
global build

floor_markup = types.ReplyKeyboardMarkup(resize_keyboard=True)

if message.text == 'здание1':

floor_markup.row('1', '2', '3', '4')

floor_markup.row('5', '6', '7', '8')

floor_markup.row('9', '10', '11', '12', '13', '14')

elif message.text == 'здание2':

floor_markup.row('1', '2', '3')

floor_markup.row('4', '5')

floor_markup.row('В начало')

bot.send_message(message.from_user.id, 'Выберите этаж', reply_markup=floor_markup)
  • Вопрос задан
  • 99 просмотров
Пригласить эксперта
Ответы на вопрос 2
SoreMix
@SoreMix Куратор тега Python
yellow
Удалить глобалы все. Зачем они? Аргументы можно передавать в register_next_step_handler, если они нужны
Ответ написан
Комментировать
@Kasper79 Автор вопроса
Если убираю глобальные переменные выходит ошибка при данном коде и одновременное использование телеграм-бота несколькими пользователями не происходит

@bot.message_handler(commands=['start'])
def build_categories2(message):
    global start
    build_markup = types.ReplyKeyboardMarkup(resize_keyboard=True)
    build_markup.row('Здание1', Здание2')
    bot.send_message(message.from_user.id, text_messages['start'].format(name=message.from_user.first_name),
                     reply_markup=build_markup)
    bot.register_next_step_handler(message, floor_categories2)
    start = message.text
    print(start)
 
@bot.message_handler(content_type=['text'])
def floor_categories2(message):
    global build
    floor_markup = types.ReplyKeyboardMarkup(resize_keyboard=True)
    if message.text == 'Здание1':
        floor_markup.row('1', '2')
    elif message.text == 'Здание2':
        floor_markup.row('1', '2', '3')
        floor_markup.row('4', '5')
    floor_markup.row('В начало')
    bot.send_message(message.from_user.id, 'Выберите этаж', reply_markup=floor_markup)
    bot.register_next_step_handler(message, cat2)
    build = message.text
    print(build)
 
@bot.message_handler(content_type=['text'])
def cat2(message):
    global floor
    cat_markup = types.ReplyKeyboardMarkup(resize_keyboard=True)
    if message.text == 'В начало':
        build_categories2(message)
        return
    else:
        cat_markup.row('Кабинет', 'Аудитория')
        cat_markup.row('В начало')
    bot.send_message(message.from_user.id, 'Выбери категорию', reply_markup=cat_markup)
    bot.register_next_step_handler(message, number2)
    floor = message.text
    print(floor)
 
@bot.message_handler(content_type=['text'])
def number2(message):
    global categ
    categ = message.text
    print(categ)
    number_markup = types.ReplyKeyboardMarkup(resize_keyboard=True)
    if message.text == 'Назад':
        floor_categories2(message)
        return

    elif message.text == 'В начало':
        build_categories2(message)<code lang="python">

</code>
        return

    elif build == 'Здание1':
        if floor == '1':
            if categ == 'Кабинет':
                number_markup.row('1', '2', '3', '4', '5')
                number_markup.row('В начало')
                bot.send_message(message.from_user.id, 'Выберите номер кабинета',
                                 reply_markup=number_markup)
 
            elif categ == 'Аудитория':
                number_markup.row('***')
                number_markup.row('В начало')
                bot.send_message(message.from_user.id, 'Выберите номер аудитории',
                                 reply_markup=number_markup)
Ответ написан
Ваш ответ на вопрос

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

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