• Как осуществить "Я согласен с правилами" в телеграм боте на Python?

    @johnvorms Автор вопроса
    kirillinyakin, большое спасибо! все получилось, разобрался с базой, как ее чистить и т.д.
  • Как осуществить "Я согласен с правилами" в телеграм боте на Python?

    @johnvorms Автор вопроса
    kirillinyakin,
    Когда пишешь с компа - ошибок не выдает, а когда пишешь с телефона тогда вылезает ошибка:
    File "C:/Users/Ridal/PycharmProjects/pythonProject3/main.py", line 14, in handling_start
        if redis.get(message.chat.id).decode('utf8') == 'YES':
    AttributeError: 'NoneType' object has no attribute 'decode'


    Это первое, а еще статус этого да сохраняется? и до какого момента, я ничего пока не понимаю

    import redis
    import telebot
    from telebot import types
    
    redis = redis.Redis()
    TOKEN = '123'
    
    bot = telebot.TeleBot(TOKEN)
    
    
    @bot.message_handler(commands=['start'])
    
    def handling_start(message):
        if redis.get(message.chat.id).decode('utf8') == 'YES':
            markup = types.ReplyKeyboardMarkup(resize_keyboard=True, row_width=3)
            btn1 = types.KeyboardButton('Такси \U0001F695')
            btn2 = types.KeyboardButton('Еда \U0001F36D')
            btn3 = types.KeyboardButton('Шмотки \U0001F457')
            markup.add(btn1, btn2, btn3)
            send_mess = f"<b>Привет {message.from_user.first_name}!</b>\nКаким сервисом ты хочешь воспользоваться?"
            bot.send_message(message.chat.id, send_mess, parse_mode='html', reply_markup=markup)
    
        else:
            kb = telebot.types.InlineKeyboardMarkup()
            btn = telebot.types.InlineKeyboardButton(text='Согласен со всеми условиями', callback_data='agree_with_rules')
            kb.add(btn)
            bot.send_message(message.chat.id, 'Подтвердите свое согласие', reply_markup=kb)
    
    
    @bot.callback_query_handler(func=lambda m: m.data == 'agree_with_rules')
    def handling_yes(callback_query):
        redis.set(str(callback_query.message.chat.id), 'YES')
        bot.send_message(callback_query.message.chat.id, 'Вы согласились со всеми правилами')
    
    
    bot.polling(none_stop=True)
    
    #Чтобы проверить согласие, можно redis.get(callback_query.message.chat.id).decode('utf8') == 'YES', в другом случае он вернет None
  • Как осуществить "Я согласен с правилами" в телеграм боте на Python?

    @johnvorms Автор вопроса
    А вы могли бы написать как? Я просто пока только начинаю познавать питон