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,