Как на Python сделать корректное отображение ключей?

Я не шарю как писать код, а ChatGPT выдает полную дичь. Но благо сам могу загружать и изменять файлы сервера.

Есть бот на Python, в функции send_keys_refferals организована выдача ключей за рефералов: 1 реферал – 1 ключ.

В день человек может получить максимум 10 ключей гарантированно (без приглашений), и плюс за рефералов макс 10 ключей. Итого: 20.

Когда я добавляю новые категории в список categories и изменяю макс количество выдаваемых ключей за рефералов, то в боте ключи за рефералов вообще не выдаются. Я не понимаю, что не так.

Как сделать, чтобы ключи в боте отображались так как нужно, в случае если я добавляю в список больше категорий и изменяю число максимально выдаваемых ключей?

def send_keys_refferals(message): 
    last_receive = db.get_last_receiving(message.chat.id, 2) 
    time_now = int(time.time()) 
    hours_24 = 86400 
    n = time_now - last_receive 
    keys = [] 
    categories = ['BIKE', 'CUBE', 'TRAIN', 'CLONE', 'MERGE'] 
    referrals_number = db.get_referrals_number(message.chat.id) 
    text = f''' 
 Ваша реферальная ссылка https://t.me/мой_никнейм_бота?start={message.chat.id} 
Вы пригласили рефералов: {referrals_number}\n\n 
        ''' 
    for c in categories: 
        for key in db.get_2_keys(c): 
            keys.append(key) 
    if n >= hours_24 and referrals_number > 0: 
        # Перебираем слайс кодов в размере количества рефералов 
        for key in keys[:referrals_number]: 
            print(key) 
            if key is None: 
                break 
            text += f'<code>{key[1]}</code>\n' 
            db.key_used(key[1]) 
        db.edit_last_receive_time(message.chat.id, time_now, 2) 
    elif n < hours_24: 
        n = hours_24 - n 
        hours = str(int(n / 3600)) 
        minutes = str(int(n % 3600 / 60)) 
        if len(minutes) < 2: 
            minutes = '0' + minutes 
        seconds = str(int(n % 3600 % 60)) 
        if len(seconds) < 2: 
            seconds = '0' + seconds 
        time_left = f'{hours}:{minutes}:{seconds}' 
        text += f''' 
За приглашение 1 друга вы получаете дополнительно 1 ключ. Например, вы гарантированно получаете 10 ключей каждый день и +1 ключ за каждого друга, которого вы пригласили по своей реферальной ссылке. 
 
Допустим, вы пригласили 10 друзей, значит, вы получаете по 10 ключей и +10 ключей за ваших друзей, и того получается по 20 ключей каждый день! 
 
Максимальное количество приглашённых вами друзей: 10. Через {time_left} вы получите 10 ключей и дополнительно +{min(10, referrals_number)} ключей. Пригласите хотя бы 1 друга, чтобы получать больше ключей. \n\n''' 
    else: 
        hours = str(int(n / 3600)) 
        minutes = str(int(n % 3600 / 60)) 
        if len(minutes) < 2: 
            minutes = '0' + minutes 
        seconds = str(int(n % 3600 % 60)) 
        if len(seconds) < 2: 
            seconds = '0' + seconds 
        time_left = f'{hours}:{minutes}:{seconds}' 
        text += f''' 
За приглашение 1 друга вы получаете дополнительно 1 ключ. Например, вы гарантированно получаете 10 ключей каждый день и +1 ключ за каждого друга, которого вы пригласили по своей реферальной ссылке. 
 
Допустим, вы пригласили 10 друзей, значит, вы получаете по 10 ключей и +10 ключей за ваших друзей, и того получается по 20 ключей каждый день! 
 
Максимальное количество приглашённых вами друзей: 10. Через 0:00:00 вы получите 10 ключей и дополнительно +0 ключей. Пригласите хотя бы 1 друга, чтобы получать больше ключей.       
        ''' 
    bot.send_message(message.chat.id, text, parse_mode='HTML')
  • Вопрос задан
  • 72 просмотра
Пригласить эксперта
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы