# retoor <retoor@molodetz.nl>
import hashlib
import logging
from typing import Optional
from devplacepy.avatar import generate_avatar_svg
logger = logging.getLogger(__name__)
def background_color(seed: Optional[str]) -> str:
value = seed or "?"
return hashlib.md5(value.encode("utf-8")).hexdigest()[:6]
def avatar_payload(seed: Optional[str]) -> dict:
value = seed or "anonymous"
return {"b": background_color(value), "i": f"u/{value}.png"}
def render_png(seed: str, size: int = 128) -> bytes:
import cairosvg
svg = generate_avatar_svg(seed)
return cairosvg.svg2png(
bytestring=svg.encode("utf-8"), output_width=size, output_height=size
)