summaryrefslogtreecommitdiff
path: root/.local/share/Anki2/addons21/anki_reworked/utils/themes.py
blob: 36af2d9383a93bcabac65621508b3c6cfdf18c27 (about) (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
import os
import json
from aqt import mw
from .logger import logger

this_script_dir = os.path.join(os.path.dirname(__file__), "..")
themes_dir = os.path.join(this_script_dir, 'themes')

def get_themes_dict() -> dict:
    # Replace pathing for theme files (ReColor compatible)
    themes = {}
    for file in os.listdir(themes_dir):
        if "json" in file:
            file = file.replace(".json", "")
            if themes.get(file, "") == "":
                themes[file] = os.path.join(themes_dir, file+'.json')
    return themes

def get_theme(theme: str) -> dict:
    themes_parsed = json.loads(open(themes[theme], encoding='utf-8').read())
    theme_colors = themes_parsed.get("colors")
    # Add extra color_keys on theme files if not exist (ReColor compatible)
    if not theme_colors.get("PRIMARY_COLOR", False):
        theme_colors["PRIMARY_COLOR"] = ["Primary Color", "#0093d0", "#0093d0", "--primary-color"]
    if not theme_colors.get("FOCUS_SHADOW", False):
        theme_colors["FOCUS_SHADOW"] = ["Focus Shadow", "#ff93d0", "#0093d0", "--focus-shadow-color"]
    themes_parsed["colors"] = theme_colors
    return themes_parsed

def write_theme(file, theme_content):
    with open(file, "w") as f:
        json.dump(theme_content, f, indent=2, sort_keys=True)

themes = get_themes_dict()