Сохранение кул дауна в текстовом файле
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 что делать и как лучше созранит кул даун чтоб не использовать память бота