Улучшение обработки фильтров и полей в запросах к VNDB API
This commit is contained in:
@@ -51,7 +51,7 @@ class VndbClient:
|
||||
|
||||
def _safe_filters(self, filters: Optional[List[Any]]) -> List[Any]:
|
||||
if not filters:
|
||||
return ["id", ">", 0]
|
||||
return []
|
||||
return filters
|
||||
|
||||
async def _request(
|
||||
@@ -135,27 +135,10 @@ class VndbClient:
|
||||
compact_filters: bool = False,
|
||||
normalized_filters: bool = False,
|
||||
) -> Dict[str, Any]:
|
||||
"""
|
||||
Query visual novels
|
||||
|
||||
Args:
|
||||
filters: Filter conditions
|
||||
fields: Fields to retrieve
|
||||
sort: Sort field (id, title, released, rating, votecount, searchrank)
|
||||
reverse: Sort in descending order
|
||||
results: Number of results per page (max 100)
|
||||
page: Page number starting from 1
|
||||
count: Include total count
|
||||
user: User ID for user-specific filters
|
||||
compact_filters: Include compact filter representation
|
||||
normalized_filters: Include normalized filter representation
|
||||
|
||||
Returns:
|
||||
Query results
|
||||
"""
|
||||
|
||||
data = {
|
||||
"filters": filters or [],
|
||||
"fields": ",".join(fields) if fields else "id",
|
||||
"fields": ",".join(fields) if fields else "id,title,image.url",
|
||||
"sort": sort,
|
||||
"reverse": reverse,
|
||||
"results": results,
|
||||
@@ -164,9 +147,10 @@ class VndbClient:
|
||||
"compact_filters": compact_filters,
|
||||
"normalized_filters": normalized_filters,
|
||||
}
|
||||
|
||||
if user:
|
||||
data["user"] = user
|
||||
|
||||
|
||||
return await self._request(VndbEndpoint.VN.value, "POST", data)
|
||||
|
||||
async def query_release(
|
||||
@@ -185,7 +169,7 @@ class VndbClient:
|
||||
"""Query releases"""
|
||||
data = {
|
||||
"filters": filters or [],
|
||||
"fields": ",".join(fields) if fields else "id",
|
||||
"fields": ",".join(fields) if fields else "id,title",
|
||||
"sort": sort,
|
||||
"reverse": reverse,
|
||||
"results": results,
|
||||
@@ -213,8 +197,8 @@ class VndbClient:
|
||||
) -> Dict[str, Any]:
|
||||
|
||||
data = {
|
||||
"filters": self._safe_filters(filters),
|
||||
"fields": ",".join(fields) if fields else "id,name",
|
||||
"filters": filters or [],
|
||||
"fields": ",".join(fields) if fields else "id,name,original,image.url",
|
||||
"sort": sort,
|
||||
"reverse": reverse,
|
||||
"results": results,
|
||||
|
||||
Reference in New Issue
Block a user