From a3d1a9bdb3f1243e734c7c4af4a78d6c75c01bfa Mon Sep 17 00:00:00 2001 From: King-of-the-all-Cookies Date: Fri, 1 May 2026 17:06:39 +0300 Subject: [PATCH] =?UTF-8?q?=D0=94=D0=BE=D0=B1=D0=B0=D0=B2=D0=BB=D0=B5?= =?UTF-8?q?=D0=BD=D0=B8=D0=B5=20=D0=BC=D0=B5=D1=82=D0=BE=D0=B4=D0=B0=20=5F?= =?UTF-8?q?normalize=5Ffields=20=D0=B4=D0=BB=D1=8F=20=D0=BE=D0=B1=D1=80?= =?UTF-8?q?=D0=B0=D0=B1=D0=BE=D1=82=D0=BA=D0=B8=20=D0=B8=20=D0=BD=D0=BE?= =?UTF-8?q?=D1=80=D0=BC=D0=B0=D0=BB=D0=B8=D0=B7=D0=B0=D1=86=D0=B8=D0=B8=20?= =?UTF-8?q?=D0=BF=D0=BE=D0=BB=D0=B5=D0=B9=20=D0=B2=20=D0=B7=D0=B0=D0=BF?= =?UTF-8?q?=D1=80=D0=BE=D1=81=D0=B0=D1=85=20=D0=BA=20VNDB=20API?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- vndb_client.py | 29 ++++++++++++++++++++++------- 1 file changed, 22 insertions(+), 7 deletions(-) diff --git a/vndb_client.py b/vndb_client.py index 0169438..f04bd8b 100644 --- a/vndb_client.py +++ b/vndb_client.py @@ -54,6 +54,21 @@ class VndbClient: return [] return filters + def _normalize_fields(self, fields: Optional[List[str]]) -> str: + if not fields: + return "id" + + fixed = [] + for f in fields: + # FIX OLD STYLE image{url} + if "image{" in f: + f = f.replace("image{url}", "image.url") + f = f.replace("image{id,url}", "image.id,image.url") + + fixed.append(f) + + return ",".join(fixed) + async def _request( self, endpoint: str, @@ -225,7 +240,7 @@ class VndbClient: """Query staff""" data = { "filters": filters or [], - "fields": ",".join(fields) if fields else "id", + "fields": self._normalize_fields(fields), "sort": sort, "reverse": reverse, "results": results, @@ -252,7 +267,7 @@ class VndbClient: """Query producers""" data = { "filters": filters or [], - "fields": ",".join(fields) if fields else "id", + "fields": self._normalize_fields(fields), "sort": sort, "reverse": reverse, "results": results, @@ -279,7 +294,7 @@ class VndbClient: """Query tags""" data = { "filters": filters or [], - "fields": ",".join(fields) if fields else "id", + "fields": self._normalize_fields(fields), "sort": sort, "reverse": reverse, "results": results, @@ -306,7 +321,7 @@ class VndbClient: """Query traits""" data = { "filters": filters or [], - "fields": ",".join(fields) if fields else "id", + "fields": self._normalize_fields(fields), "sort": sort, "reverse": reverse, "results": results, @@ -333,7 +348,7 @@ class VndbClient: """Query quotes""" data = { "filters": filters or [], - "fields": ",".join(fields) if fields else "id", + "fields": self._normalize_fields(fields), "sort": sort, "reverse": reverse, "results": results, @@ -361,7 +376,7 @@ class VndbClient: """Query user visual novel list""" data = { "filters": filters or [], - "fields": ",".join(fields) if fields else "id", + "fields": self._normalize_fields(fields), "sort": sort, "reverse": reverse, "results": results, @@ -387,7 +402,7 @@ class VndbClient: """Query user release list""" data = { "filters": filters or [], - "fields": ",".join(fields) if fields else "id", + "fields": self._normalize_fields(fields), "sort": sort, "reverse": reverse, "results": results,