Hrochobot/hrochobot/utils/data.py

39 lines
1 KiB
Python
Raw Permalink Normal View History

2023-03-26 14:48:14 +02:00
from typing import Any
2023-03-26 14:13:36 +02:00
import json
import os.path
2023-05-17 17:03:26 +02:00
from hrochobot.utils.json_templates import TEMPLATES
2023-05-17 10:46:36 +02:00
EXAMPLE_DATA = "data.example"
2023-04-16 17:38:45 +02:00
DATA_FOLDER = "TODO"
2023-03-26 14:13:36 +02:00
def load_json(filename: str):
2023-05-17 10:46:36 +02:00
filename += ".json"
if not os.path.exists(filename):
2023-05-17 17:03:26 +02:00
return json.loads(TEMPLATES[os.path.basename(filename)])
2023-05-17 10:46:36 +02:00
with open(filename) as f:
2023-03-26 14:13:36 +02:00
content = json.load(f)
return content
2023-03-26 14:48:14 +02:00
def dump_json(filename: str, data: Any):
2023-05-17 10:46:36 +02:00
filename += ".json"
path = os.path.dirname(filename)
if not os.path.exists(path):
os.makedirs(path)
with open(filename, "w") as f:
2023-03-26 14:48:14 +02:00
json.dump(data, f)
2023-03-26 14:13:36 +02:00
def load_data(filename: str):
return load_json(os.path.join(DATA_FOLDER, filename))
2023-03-26 14:48:14 +02:00
def dump_data(filename: str, data: Any):
return dump_json(os.path.join(DATA_FOLDER, filename), data)
2023-05-17 10:46:36 +02:00
def load_guild_data(guild: int, filename: str):
return load_data(os.path.join(str(guild), filename))
def dump_guild_data(guild: int, filename: str, data: Any):
return dump_data(os.path.join(str(guild), filename), data)