mirror of
https://github.com/Lumither/nocturne.git
synced 2026-10-17 10:26:21 +00:00
50 lines
1.6 KiB
Python
50 lines
1.6 KiB
Python
import json
|
|
import os
|
|
from typing import TextIO
|
|
|
|
CACHE_DIR = ".cache"
|
|
ITEMS = {"register": "register.json"}
|
|
|
|
|
|
def overwrite_json_file(file: TextIO, json_data: dict):
|
|
file.seek(0)
|
|
file.write(json.dumps(json_data, indent=4, ensure_ascii=False))
|
|
file.truncate()
|
|
|
|
|
|
def init_cache():
|
|
if not os.path.exists(CACHE_DIR):
|
|
os.makedirs(CACHE_DIR)
|
|
for item in ITEMS.values():
|
|
item_path = os.path.join(CACHE_DIR, item)
|
|
if not os.path.exists(item_path):
|
|
with open(item_path, 'w') as cache_file:
|
|
match item:
|
|
case "register.json":
|
|
overwrite_json_file(cache_file, {})
|
|
break
|
|
|
|
|
|
def write_tags_cache(tags: list[str]):
|
|
with open(os.path.join(CACHE_DIR, ITEMS["register"]), 'r+') as tags_cache_file:
|
|
cache = json.load(tags_cache_file)
|
|
cache["tags"] = tags
|
|
overwrite_json_file(tags_cache_file, cache)
|
|
|
|
|
|
def write_category_cache(categories: list[str]):
|
|
with open(os.path.join(CACHE_DIR, ITEMS["register"]), 'r+') as categories_cache_file:
|
|
cache = json.load(categories_cache_file)
|
|
cache["categories"] = categories
|
|
overwrite_json_file(categories_cache_file, cache)
|
|
|
|
|
|
def get_tags_cache() -> list[str]:
|
|
with open(os.path.join(CACHE_DIR, ITEMS["register"]), 'r') as tags_cache_file:
|
|
return json.load(tags_cache_file)["tags"]
|
|
|
|
|
|
def get_categories_cache() -> list[str]:
|
|
with open(os.path.join(CACHE_DIR, ITEMS["register"]), 'r') as categories_cache_file:
|
|
return json.load(categories_cache_file)["categories"]
|