@Pyhon3x

Почему не вызывает функцию?

Привет!
Я пишу бота в Телеграм, да я знаю что все очень плохо...
Вот код:
#importing modules, and for telegram...
import telebot
from telebot import types
from config import *
from Keyboards import *
import PostgreSQL


bot = telebot.TeleBot(SECRET_TOKEN)
status = None
addr = None
print('/' + command_to_update)


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

    bot.send_message(message.chat.id, 'Привет, начнем! \nЗарегистрируйся ==>')
    bot.send_message(message.chat.id, 'Напиши имя')
    status = 'waiting for name'

@bot.message_handler(commands=[command_to_update])
def update_superadmin_chat_id(message):
    print('test block command_to_update')
    superadmin = int(message.chat.id)
    bot.send_message(message.chat.id, 'Обновлено!')


@bot.message_handler(content_types=['text'])
def continue_text(message):
    global status
    global name
    global menu
    global confirm
    global addr
    global superadmin

    if status != 'waiting for name':
        return

    name = message.text
    username = message.from_user.username
    addr = message.chat.id
    print(addr, '- addr')
    #print(type(addr))
    PostgreSQL.register(message.chat.id, name) #База данных
    bot.send_message(message.chat.id, 'Думаю все... \nОжидай когда тебя подтвердят...', reply_markup=menu)
    bot.send_message(superadmin, 'Подтвердить пользователя: \nОтправлено: @' + str(username), reply_markup=confirm)
    status = 'None'

@bot.callback_query_handler(func=lambda call: True)
def callback_inline(call):
    print('step callback 1')
    global addr
    global status
    global superadmin

    print('step callback 2')
    if call.data == "confirm":
        status = 'waiting for balance.step1'
        print('step callback 3')
        print('status -', status)

        #bot.send_message(superadmin, 'Balance')

print('test step2')
@bot.message_handler(content_types=['text'])
def step2_callback(message):
    print('step 2')
    global addr
    global status
    global superadmin
    global is_number
    balance = is_number(message.text)

    print(message.chat.id, '- message.chat.id')
    print(status, '- status')

    if message.chat.id != superadmin and status != 'waiting for balance.step1':
        print('canceled')
        return
    if balance == True:
        bot.send_message(superadmin, '*Нет*, это должно быть целым числом`...`')
        status = 'waiting for balance'
        print('Zero')
        return

    print('ifs OK')
    PostgreSQL.confirm(addr, balance) #База данных
    print('confirm OK')
    bot.send_message(addr, 'Вы были подтверждены!')
    print('send_message OK')
print(step2_callback)

if __name__ == '__main__':
    bot.polling(none_stop=True)

Почему функция step2_callback не вызывается?
Спасибо!
  • Вопрос задан
  • 136 просмотров
Пригласить эксперта
Ответы на вопрос 1
SoreMix
@SoreMix Куратор тега Python
yellow
Потому что у вас два одинаковых декоратора:
@bot.message_handler(content_types=['text'])
Для работы выбирается верхний
Ответ написан
Ваш ответ на вопрос

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

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