mirror of
https://github.com/caelestia-dots/cli.git
synced 2026-06-08 16:29:28 -05:00
[!B] colours: better colours
Also remove multiple dynamic flavours Add extended material (success colours)
This commit is contained in:
@@ -8,20 +8,18 @@ from caelestia.utils.material.score import score
|
||||
from caelestia.utils.paths import compute_hash, scheme_cache_dir, wallpaper_thumbnail_path
|
||||
|
||||
|
||||
def get_score_for_image(image: Path | str, cache_base: Path) -> tuple[list[Hct], list[Hct]]:
|
||||
def get_score_for_image(image: Path | str, cache_base: Path) -> Hct:
|
||||
cache = cache_base / "score.json"
|
||||
|
||||
try:
|
||||
with cache.open("r") as f:
|
||||
return [[Hct.from_int(c) for c in li] for li in json.load(f)]
|
||||
except (IOError, json.JSONDecodeError):
|
||||
return Hct.from_int(cache.read_text())
|
||||
except (IOError, TypeError):
|
||||
pass
|
||||
|
||||
s = score(str(image))
|
||||
|
||||
cache.parent.mkdir(parents=True, exist_ok=True)
|
||||
with cache.open("w") as f:
|
||||
json.dump([[c.to_int() for c in li] for li in s], f)
|
||||
cache.write_text(str(s.to_int()))
|
||||
|
||||
return s
|
||||
|
||||
@@ -32,10 +30,8 @@ def get_colours_for_image(image: Path | str = wallpaper_thumbnail_path, scheme=N
|
||||
|
||||
scheme = get_scheme()
|
||||
|
||||
flavour = scheme.flavour if scheme.flavour in ("default", "alt1", "alt2") else "default"
|
||||
|
||||
cache_base = scheme_cache_dir / compute_hash(image)
|
||||
cache = (cache_base / scheme.variant / flavour / scheme.mode).with_suffix(".json")
|
||||
cache = (cache_base / scheme.variant / scheme.mode).with_suffix(".json")
|
||||
|
||||
try:
|
||||
with cache.open("r") as f:
|
||||
@@ -43,9 +39,8 @@ def get_colours_for_image(image: Path | str = wallpaper_thumbnail_path, scheme=N
|
||||
except (IOError, json.JSONDecodeError):
|
||||
pass
|
||||
|
||||
primaries, colours = get_score_for_image(image, cache_base)
|
||||
i = ["default", "alt1", "alt2"].index(flavour)
|
||||
scheme = gen_scheme(scheme, primaries[i], colours)
|
||||
primary = get_score_for_image(image, cache_base)
|
||||
scheme = gen_scheme(scheme, primary)
|
||||
|
||||
cache.parent.mkdir(parents=True, exist_ok=True)
|
||||
with cache.open("w") as f:
|
||||
|
||||
Reference in New Issue
Block a user