Files
2025-03-13 16:16:50 -07:00

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"]