Сохранение кул дауна в текстовом файле

def load_cooldowns():
    if os.path.exists('cd.txt'):
        with open('cd.txt', 'r') as file:
            cooldowns = {}
            for line in file:
                user_id, cooldown_time = line.strip().strip(':')
                cooldowns[user_id] = float(cooldown_time)
                return cooldowns
    else:
        return {}

def save_cooldowns(cooldowns):
    with open('cd.txr', 'w') as file:
        for user_id, cooldown_time in cooldowns.items():
            file.write(f'{user_id}: {cooldown_time}\n')

Я использую вот эти функции для сохранения кул дауна и вставляю в эту команду

@bot.slash_command(name='fwork', description='Выйти на нелегальную работу')
async def fwork(ctx, job: str):
    jobs = {
        'наркокурьер': ('наркокурьер', 350, 570, 24),
        'грабитель': ('грабитель', 130, 780, 48),
        'поставщик оружия': ('поставщик оружия', 500, 1000, 72)}

    user_id = ctx.author.id
    cooldowns = load_cooldowns()
    cooldown_key = f"{user_id}_{job.lower()}_cooldown"
    last_work_time = cooldowns.get(cooldown_key, 0)

    job_data = jobs.get(job.lower())

    if cooldowns is None:
        cooldowns = {}

    if job_data:
        job_name, min_earning, max_earning, cooldown_hours = job_data
        current_time = time.time()
        blocked = random.randint(0, 99)

        if blocked < 48:
            cooldowns[cooldown_key] = time.time() + 24 * 3600
            save_cooldowns(cooldowns)
            await ctx.respond(f'Вам заблокирован доступ к командам на 24 часа', ephemeral=True)
        
        elif current_time - last_work_time < cooldown_hours * 3600:
            await ctx.respond(f'Вы уже работали {job_name}. Подождите, пока не пройдет время', ephemeral=True)
        else:
            earning = random.randint(min_earning, max_earning)
            cursor.execute('UPDATE users SET cash = cash + ? WHERE id = ?', (earning, user_id))
            conn.commit()
            cooldowns[cooldown_key] = current_time
            save_cooldowns(cooldowns)
            embed = discord.Embed(
                title='Нелегальная работа',
                description=f'> Вы заработали: \n{earning} монет \n> Работа: \n{job_name}')
            embed.set_footer(text=f'{ctx.author.name} | {time.strftime("%H:%M:%S %d-%m-%Y")}')
            await ctx.respond(embed=embed)
    else:
        await ctx.respond('Указана недопустимая работа', ephemeral=True)

И в консоли выводится ошибка get is None что делать и как лучше созранит кул даун чтоб не использовать память бота


Ответы (0 шт):