Добавление метода _normalize_fields для обработки и нормализации полей в запросах к VNDB API
This commit is contained in:
@@ -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,
|
||||
|
||||
Reference in New Issue
Block a user