Добавление метода _normalize_fields для обработки и нормализации полей в запросах к VNDB API

This commit is contained in:
2026-05-01 17:06:39 +03:00
parent e6f3128896
commit a3d1a9bdb3

View File

@@ -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,