microblog.pub/app/utils/favicon.py

23 lines
632 B
Python

import sass # type: ignore
from PIL import Image
from PIL import ImageColor
from PIL import ImageDraw
def _get_primary_color() -> str:
"""Small hack to get the theme primary color."""
compiled = sass.compile(
string=(
"@import 'app/scss/main.scss';\n"
"#favicon-color { color: $primary-color; }"
)
)
return compiled[len(compiled) - 11 : -4]
def build_favicon() -> None:
"""Builds a basic favicon with the theme primary color."""
im = Image.new("RGB", (32, 32), ImageColor.getrgb(_get_primary_color()))
ImageDraw.Draw(im)
im.save("app/static/favicon.ico")