feat: heatmap time decay also in addition of placements

This commit is contained in:
2026-10-25 10:29:20 +01:00
parent 9bb02463da
commit 4f2cf08b27
5 changed files with 81 additions and 27 deletions
+8 -4
View File
@@ -12,6 +12,7 @@ from games.decorators import require_game_enabled
from .canvas import read_canvas
from .gif import build_evolution_gif
from .heatmap import (
DecayMode,
build_heatmap_decay_gif,
build_heatmap_evolution_gif,
build_heatmap_png,
@@ -85,17 +86,20 @@ def heatmap_decay_gif(
request: HttpRequest,
event_path: str,
players: str = "",
half_life: int | None = None,
half_life: float | None = None,
mode: DecayMode = "placements",
):
"""Admin-only: the heatmap over time, but heat decays so pixels nobody
touches anymore fade back to white.
`players` is an optional comma-separated list of usernames to only
count those players' placements (combined). `half_life` is in
placements, defaults to 10 frames' worth."""
count those players' placements (combined). `mode` is "placements"
(decay per placement, `half_life` in placements, defaults to 10 frames'
worth) or "time" (decay over time, `half_life` in minutes, defaults
to 60)."""
usernames = [name.strip() for name in players.split(",") if name.strip()]
return HttpResponse(
build_heatmap_decay_gif(request.event, usernames, half_life),
build_heatmap_decay_gif(request.event, usernames, half_life, mode),
content_type="image/gif",
)