From c828b0a29e245cd675ba9549f8a2d0b3556cc2fd Mon Sep 17 00:00:00 2001 From: sn0w <105451515+sn0w12@users.noreply.github.com> Date: Thu, 30 Oct 2025 21:14:05 +0100 Subject: [PATCH] add get character by series endpoint --- __init__.py | 9 +++++++++ sn0w.py | 10 ++++++++++ 2 files changed, 19 insertions(+) diff --git a/__init__.py b/__init__.py index 37ab002..e325fed 100644 --- a/__init__.py +++ b/__init__.py @@ -188,6 +188,15 @@ async def set_visible_series(request): return web.json_response({"status": "ok"}) +@PromptServer.instance.routes.get(f"{API_PREFIX}/series/{{series}}/characters") +async def get_characters_by_series_endpoint(request): + series = request.match_info.get("series", "") + if not series: + return web.json_response({"error": "Series name is required"}, status=400) + characters = CharacterLoader.get_characters_by_series(series) + return web.json_response({"series": series, "characters": characters}) + + @PromptServer.instance.routes.get(f"{API_PREFIX}/series_selector") async def serve_series_selector(request): html = """ diff --git a/sn0w.py b/sn0w.py index 4fc6c3d..2d562ca 100644 --- a/sn0w.py +++ b/sn0w.py @@ -633,6 +633,16 @@ class CharacterLoader: else: return characters + @classmethod + def get_characters_by_series(cls, series_name): + """Get all characters in a specific series""" + characters = cls.get_character_dict() + series_characters = {} + for name, char_data in characters.items(): + if cls.get_character_series(char_data).lower() == series_name.lower(): + series_characters[name] = char_data + return series_characters + API_PREFIX = "/sn0w"