Задать вопрос
  • Здраствуйте, у меня возникла проблема с воспроизведением звука в коде?

    Помогите мне у меня такой же код но но ошибка другая
    'say�����' is not recognized as an internal or external command,
    operable program or batch file.

    Что мне делать??
  • Как исправить ошибку AttributeError: module 'telebot.types' has no attribute 'User'?

    @vova1244 Автор вопроса
    И что мне тепер делать?
    pyTelegramBotAPI я уже установил
    но ничего не работает

    уже сам все зделал
  • Как исправить ошибку AttributeError: 'Message' object has no attribute 'data' telebot Python?

    @vova1244 Автор вопроса
    soremix, Еще одна проблемка. Я создал кнопку 'Банкір' и обрабочик, но когда нажимаю она не обробативаеться (обрабочик в самом низу) ето не весь код.
    import telebot
    import sqlite3
    from telebot import types
    from random import randint
    import codecs
    global username
    global user_login
    global balance
    
    token1 = '2008418418:AAGhc1_oJU85ZKJ6xS-7vMS55mAI_bV5tu8'
    
    curency = 'грн'
    bot = telebot.TeleBot(token1)
    levl = 1
    
    with sqlite3.connect('database_sim.db', check_same_thread=False) as db:
        sql = db.cursor()
    user_login_your = 'vova_6_6_2'
    user_login = user_login_your
    
    for i1 in sql.execute(f'SELECT money FROM users WHERE login = "{user_login}"'):
        balance = i1[0]
    
    #def kazino():
    
    
    
    #test_data_base()
    
    
    
    @bot.message_handler(commands=['start'])
    def start(message):
    
        if message.chat.type == 'private':
            if message.text == '/start':
                user_id = message.from_user.id
                #sql.execute(f"UPDATE users SET id = {user_id} WHERE login = '{user_login}'")
                #db.commit()
                markup = types.ReplyKeyboardMarkup(resize_keyboard=True)
                markup1 = types.KeyboardButton('1.Робота')
                markup2 = types.KeyboardButton('2.Магазин')
                markup3 = types.KeyboardButton('3.Банк')
                markup4 = types.KeyboardButton('4.Мій дім')
                markup.add(markup1, markup2, markup3, markup4)
                bot.send_message(message.chat.id, 'Привіт вітаємо у нашій грі Simulator life! \nВиберіть щось із меню', reply_markup=markup)
    
    
    
    @bot.message_handler(content_types=['text'])
    def menu(message):
            if message.text == '1.Робота':
                inline_makup = types.InlineKeyboardMarkup()
                in_markup1 = types.InlineKeyboardButton('Клікер', callback_data='kliker1')
                in_markup2 = types.InlineKeyboardButton('Майнинг♾', callback_data='maining2')
                in_markup3 = types.InlineKeyboardButton('Трейдинг', callback_data='treding3')
                in_markup4 = types.InlineKeyboardButton('Банкір', callback_data='bankir_menu')
                in_markup5 = types.InlineKeyboardButton('Казіно', callback_data='kazino5')
                inline_makup.add(in_markup1, in_markup2, in_markup3, in_markup4, in_markup5)
                bot.send_message(message.chat.id, 'Виберіть роботу', reply_markup=inline_makup)
    
    
    
    
            elif message.text == '2.Магазин':
                inline = types.InlineKeyboardMarkup()
                inline1 = types.InlineKeyboardButton('1.Техніка', callback_data='tech')
                inline2 = types.InlineKeyboardButton('2.Автосалон', callback_data='car_salon')
                inline3 = types.InlineKeyboardButton('3.Дома', callback_data='house')
                inline4 = types.InlineKeyboardButton('4.????', callback_data='???')
                inline.add(inline1, inline2, inline3, inline4)
    
                for i3 in sql.execute(f"SELECT money FROM users WHERE login = '{user_login}'"):
                    balance_shop = i3[0]
    
                bot.send_message(message.chat.id, f"_____Shop_____ \nУ вас {balance_shop} грн", reply_markup=inline)
    
    @bot.callback_query_handler(func=lambda call:True)
    def shop(call):
        if call.data == 'car_salon':
            inline = types.InlineKeyboardMarkup()
            markup_inl1 = types.InlineKeyboardButton('Toyota', callback_data='toyota121')
            markup_inl2 = types.InlineKeyboardButton('Audi', callback_data='audi121')
            markup_inl3 = types.InlineKeyboardButton('Bmw', callback_data='bmw121')
            markup_inl4 = types.InlineKeyboardButton('Mersedes', callback_data='mersedes121')
            inline.add(markup_inl1, markup_inl2, markup_inl3,markup_inl4)
    
    
            bot.send_message(call.message.chat.id, 'Виберіть марку авто:', reply_markup=inline)
        elif call.data == 'bmw121':
            bot.send_message(call.message.chat.id, 'Доступні машини:')
            for id_user in sql.execute(f"SELECT id FROM users WHERE login = '{user_login}'"):
                pass
            bot.send_photo(id_user, codecs.open(r"C:\Users\HOME\PycharmProjects\Кеша бот python\Новий бот-Ігра\Фото\Car\bmw_E39.jpg", 'rb'), caption='Bmw e39 - 150.000грн')
            bot.send_photo(id_user, codecs.open(r"C:\Users\HOME\PycharmProjects\Кеша бот python\Новий бот-Ігра\Фото\Car\bmw_x3_2011.jpg ", 'rb'), caption='Bmw X3 - 520.000грн')
            bot.send_photo(id_user, codecs.open(r"C:\Users\HOME\PycharmProjects\Кеша бот python\Новий бот-Ігра\Фото\Car\bmw_m5f90.jpg", 'rb'), caption='Bmw 5mF90 - 3.000.000грн')
            bot.send_message(call.message.chat.id, 'Виберіть авто!' )
    
    
    
    
    
    
        elif call.data == 'kliker1':
                #for my_levl in sql.execute(f"SELECT levl FROM users WHERE login = '{user_login}'"):
                   # pass
                inline_markup = types.InlineKeyboardMarkup()
                in_markup = types.InlineKeyboardButton('Почати роботу', callback_data='kliker1_congif')
                inline_markup.add(in_markup)
                bot.send_message(call.message.chat.id, f'Клікер, на цій роботі вам потрібно клікати на кнопку і за один клік ви получите 0.50 Гривень. \n Потрібен 1 уровень  \nВаш уровень: {levl}',reply_markup=inline_markup)
    
    
    
    def sta123(call):
        if call.data == 'kliker1_congif':
            inline_markup = types.InlineKeyboardMarkup()
            in_markup = types.InlineKeyboardButton('Тикніть', callback_data='kliker_money_6787')
            inline_markup.add(in_markup)
            bot.send_message(call.message.chat.id, '   ', reply_markup=inline_markup)
    
        elif call.data == 'kliker_money_6787':
            inl = types.InlineKeyboardMarkup()
            inl_markup = types.InlineKeyboardButton('Тикніть', callback_data='kliker_money_6787')
            inl.add(inl_markup)
            bot.send_message(call.message.chat.id, '   ')
            for i12 in sql.execute(f'SELECT money FROM users WHERE login = "{user_login}"'):
                balance1 = i12[0]
    
                sql.execute(f"UPDATE users SET money = {0.5 + balance1} WHERE login = '{user_login}'")
    
                for i13 in sql.execute(f"SELECT money FROM users WHERE login = '{user_login}'"):
                    balance2 = i13[0]
                db.commit()
                bot.send_message(call.message.chat.id, f'Ваш баланс:{balance2}', reply_markup=inl)
            for i_money in sql.execute('SELECT money FROM users'):
                print(i_money)
    
    
    
    
        if call.data == 'kazino_stavka12':
            number = randint(1, 2)
            if number == 1:
                sql.execute(f"UPDATE users SET money = {100 + balance} WHERE login = '{user_login}'")
                db.commit()
                bot.send_message(call.message.chat.id, 'Ви виграли 100 грн!')
                for i in sql.execute('SELECT money FROM users'):
                    print(i)
    
            else:
                sql.execute(f"UPDATE users SET money = {balance - 100} WHERE login = '{user_login}'")
                bot.send_message(call.message.chat.id, 'Ви програли 100 грн!')
                db.commit()
                for i2 in sql.execute('SELECT money FROM users'):
                    print(i2)
    
    
    #Сюдаааааааааааааааааааааа
    
    def bankir_menu(call):
        if call.data == 'bankir_menu':
            # for my_levl in sql.execute(f"SELECT levl FROM users WHERE login = '{user_login}'"):
            # pass
            inline = types.InlineKeyboardMarkup()
            inl_markup = types.InlineKeyboardButton('Почати роботу..', callback_data='bankir_2_456546')
            inline.add(inl_markup)
            bot.send_message(call.message.chat.id,
                                 f'Банкір - це робота на якій потрібно рахувати задачі‍ виведені на екран \nОдна задача: 50грн \nУровень роботи: 7 \nВаш уровень: ',
                                 reply_markup=inline)
    
        if call.data == 'bankir_menu1':
            global res
            ii = 0
            num = randint(1, 200)
            num1 = randint(1, 150)
            res = num + num1
            print(res)
            bot.send_message(call.message.chat.id, f'Скільки буде {num} + {num1} ?')


    Извини что так много вопросов
  • Как исправить ошибку AttributeError: 'Message' object has no attribute 'data' telebot Python?

    @vova1244 Автор вопроса
    Спасибо, работает

    а для KeyboardButton нужно писать register_next_step_handler ??
  • Как исправить ошибку AttributeError: 'Message' object has no attribute 'data' telebot Python?

    @vova1244 Автор вопроса
    import telebot
    import sqlite3
    from telebot import types
    from random import randint
    import codecs
    global username
    global user_login
    global balance
    
    token1 = '2008418418:AAGhc1_oJU85ZKJ6xS-7vMS55mAI_bV5tu8'
    
    curency = 'грн'
    bot = telebot.TeleBot(token1)
    levl = 1
    
    with sqlite3.connect('database_sim.db', check_same_thread=False) as db:
        sql = db.cursor()
    user_login_your = 'vova_6_6_2'
    user_login = user_login_your
    
    for i1 in sql.execute(f'SELECT money FROM users WHERE login = "{user_login}"'):
        balance = i1[0]
    
    #def kazino():
    
    
    
    #test_data_base()
    
    
    
    @bot.message_handler(commands=['start'])
    def start(message):
    
        if message.chat.type == 'private':
            if message.text == '/start':
                user_id = message.from_user.id
                #sql.execute(f"UPDATE users SET id = {user_id} WHERE login = '{user_login}'")
                #db.commit()
                markup = types.ReplyKeyboardMarkup(resize_keyboard=True)
                markup1 = types.KeyboardButton('1.Робота')
                markup2 = types.KeyboardButton('2.Магазин')
                markup3 = types.KeyboardButton('3.Банк')
                markup4 = types.KeyboardButton('4.Мій дім')
                markup.add(markup1, markup2, markup3, markup4)
                bot.send_message(message.chat.id, 'Привіт вітаємо у нашій грі Simulator life! \nВиберіть щось із меню', reply_markup=markup)
    
    
    
    @bot.message_handler(content_types=['text'])
    def menu(message):
            if message.text == '1.Робота':
                inline_makup = types.InlineKeyboardMarkup()
                in_markup1 = types.InlineKeyboardButton('Клікер', callback_data='kliker1')
                in_markup2 = types.InlineKeyboardButton('Майнинг♾', callback_data='maining2')
                in_markup3 = types.InlineKeyboardButton('Трейдинг', callback_data='treding3')
                in_markup4 = types.InlineKeyboardButton('Банкір', callback_data='bankir_menu')
                in_markup5 = types.InlineKeyboardButton('Казіно', callback_data='kazino5')
                inline_makup.add(in_markup1, in_markup2, in_markup3, in_markup4, in_markup5)
                msg = bot.send_message(message.chat.id, 'Виберіть роботу', reply_markup=inline_makup)
                bot.register_next_step_handler(msg, work)
    
    
    
    
            if message.text == '2.Магазин':
                inline = types.InlineKeyboardMarkup()
                inline1 = types.InlineKeyboardButton('1.Техніка', callback_data='tech')
                inline2 = types.InlineKeyboardButton('2.Автосалон', callback_data='car_salon')
                inline3 = types.InlineKeyboardButton('3.Дома', callback_data='house')
                inline4 = types.InlineKeyboardButton('4.????', callback_data='???')
                inline.add(inline1, inline2, inline3, inline4)
    
                for i3 in sql.execute(f"SELECT money FROM users WHERE login = '{user_login}'"):
                    balance_shop = i3[0]
    
                msg = bot.send_message(message.chat.id, f"_____Shop_____ \nУ вас {balance_shop} грн", reply_markup=inline)
                bot.register_next_step_handler(msg, shop)
    
    @bot.callback_query_handler(func=lambda call:True)
    def shop(call):
        if call.data == 'car_salon':
            inline = types.InlineKeyboardMarkup()
            markup_inl1 = types.InlineKeyboardButton('Toyota', callback_data='toyota121')
            markup_inl2 = types.InlineKeyboardButton('Audi', callback_data='audi121')
            markup_inl3 = types.InlineKeyboardButton('Bmw', callback_data='bmw121')
            markup_inl4 = types.InlineKeyboardButton('Mersedes', callback_data='mersedes121')
            inline.add(markup_inl1, markup_inl2, markup_inl3,markup_inl4)
    
    
            bot.send_message(call.message.chat.id, 'Виберіть марку авто:', reply_markup=inline)
        elif call.data == 'bmw121':
            bot.send_message(call.message.chat.id, 'Доступні машини:')
            for id_user in sql.execute(f"SELECT id FROM users WHERE login = '{user_login}'"):
                pass
            bot.send_photo(id_user, codecs.open(r"C:\Users\HOME\PycharmProjects\Кеша бот python\Новий бот-Ігра\Фото\Car\bmw_E39.jpg", 'rb'), caption='Bmw e39 - 150.000грн')
            bot.send_photo(id_user, codecs.open(r"C:\Users\HOME\PycharmProjects\Кеша бот python\Новий бот-Ігра\Фото\Car\bmw_x3_2011.jpg ", 'rb'), caption='Bmw X3 - 520.000грн')
            bot.send_photo(id_user, codecs.open(r"C:\Users\HOME\PycharmProjects\Кеша бот python\Новий бот-Ігра\Фото\Car\bmw_m5f90.jpg", 'rb'), caption='Bmw 5mF90 - 3.000.000грн')
            bot.send_message(call.message.chat.id, 'Виберіть авто!' )
    
    
    
    
    
    def work(call):
        if call.data == 'kliker1':
                for my_levl in sql.execute(f"SELECT levl FROM users WHERE login = '{user_login}'"):
                    pass
                inline_markup = types.InlineKeyboardMarkup()
                in_markup = types.InlineKeyboardButton('Почати роботу', callback_data='kliker1_congif')
                inline_markup.add(in_markup)
                bot.send_message(call.message.chat.id, f'Клікер, на цій роботі вам потрібно клікати на кнопку і за один клік ви получите 0.50 Гривень. \n Потрібен 1 уровень  \nВаш уровень: {levl}',reply_markup=inline_markup)
    
    
    
    def sta123(call):
        if call.data == 'kliker1_congif':
            inline_markup = types.InlineKeyboardMarkup()
            in_markup = types.InlineKeyboardButton('Тикніть', callback_data='kliker_money_6787')
            inline_markup.add(in_markup)
            bot.send_message(call.message.chat.id, '   ', reply_markup=inline_markup)
    
        elif call.data == 'kliker_money_6787':
            inl = types.InlineKeyboardMarkup()
            inl_markup = types.InlineKeyboardButton('Тикніть', callback_data='kliker_money_6787')
            inl.add(inl_markup)
            bot.send_message(call.message.chat.id, '   ')
            for i12 in sql.execute(f'SELECT money FROM users WHERE login = "{user_login}"'):
                balance1 = i12[0]
    
                sql.execute(f"UPDATE users SET money = {0.5 + balance1} WHERE login = '{user_login}'")
    
                for i13 in sql.execute(f"SELECT money FROM users WHERE login = '{user_login}'"):
                    balance2 = i13[0]
                db.commit()
                bot.send_message(call.message.chat.id, f'Ваш баланс:{balance2}', reply_markup=inl)
            for i_money in sql.execute('SELECT money FROM users'):
                print(i_money)
    
    
        if call.data == 'bankir_menu':
            # for my_levl in sql.execute(f"SELECT levl FROM users WHERE login = '{user_login}'"):
            # pass
            inline = types.InlineKeyboardMarkup()
            inl_markup = types.InlineKeyboardButton('Почати роботу..', callback_data='bankir_menu1')
            inline.add(inl_markup)
            bot.send_message(call.message.chat.id,f'Банкір - це робота на якій потрібно рахувати задачі‍ виведені на екран \nОдна задача: 50грн \nУровень роботи: 7 \nВаш уровень: ',reply_markup=inline)  # {str(my_levl)[1:-2]}',reply_markup=inline)
    
    
        if call.data == 'kazino_stavka12':
            number = randint(1, 2)
            if number == 1:
                sql.execute(f"UPDATE users SET money = {100 + balance} WHERE login = '{user_login}'")
                db.commit()
                bot.send_message(call.message.chat.id, 'Ви виграли 100 грн!')
                for i in sql.execute('SELECT money FROM users'):
                    print(i)
    
            else:
                sql.execute(f"UPDATE users SET money = {balance - 100} WHERE login = '{user_login}'")
                bot.send_message(call.message.chat.id, 'Ви програли 100 грн!')
                db.commit()
                for i2 in sql.execute('SELECT money FROM users'):
                    print(i2)


    Половина кода
    не вмещаеться