From b2991915146fa836e40de980ba7335f88797e1d1 Mon Sep 17 00:00:00 2001 From: kittentm Date: Thu, 6 Aug 2026 09:03:52 +0200 Subject: [PATCH] feat: add team colours & battleResultRate to boss response --- routes/boss.py | 25 ++++++++++++++++++++++--- 1 file changed, 22 insertions(+), 3 deletions(-) diff --git a/routes/boss.py b/routes/boss.py index d003d0f..e3ef57e 100644 --- a/routes/boss.py +++ b/routes/boss.py @@ -47,6 +47,20 @@ async def boss_rotation(request: Request): }) return formatted + def nintydevsuranidiotforusingrgb(color_val): + if not color_val: + return "#000000" + if isinstance(color_val, str): + parts = [float(p.strip()) for p in color_val.split(",") if p.strip()] + elif isinstance(color_val, (list, tuple)): + parts = [float(p) for p in color_val] + else: + return "#000000" + + # trash 4th val + rgb = [round(c * 255) for c in parts[:3]] + return f"#{rgb[0]:02X}{rgb[1]:02X}{rgb[2]:02X}" + with open("boss.yaml", "r", encoding='utf-8') as f: yaml_data = yaml.safe_load(f) @@ -97,14 +111,19 @@ async def boss_rotation(request: Request): fest_result = parse_iso(time_cfg.get("Result")) teams = fes_yaml.get("Teams", []) - team_shortnames = [] + formatted_teams = [] for team in teams: - team_shortnames.append(team.get("ShortName", {})) + raw_color = team.get("Color") + formatted_teams.append({ + "shortName": team.get("ShortName", {}), + "color": nintydevsuranidiotforusingrgb(raw_color) + }) response_data["splatfestivalSplatfest"] = { "stages": format_stages(fes_yaml.get("Stages", [])), "mode": RULE_NAMES.get(fes_yaml.get("Rule"), "TurfWar"), - "teams": team_shortnames, + "teams": formatted_teams, + "battleResultRate": fes_yaml.get("BattleResultRate", {}), "time": { "start": fest_start, "end": fest_end,