feat: 在获取订阅分享数据的接口中添加可选参数

This commit is contained in:
jxxghp
2025-09-16 07:38:56 +08:00
parent 18ff7ce753
commit 86c7c05cb1
2 changed files with 41 additions and 8 deletions
+11 -1
View File
@@ -580,11 +580,21 @@ async def popular_subscribes(
name: Optional[str] = None, name: Optional[str] = None,
page: Optional[int] = 1, page: Optional[int] = 1,
count: Optional[int] = 30, count: Optional[int] = 30,
genre_id: Optional[int] = None,
min_rating: Optional[float] = None,
max_rating: Optional[float] = None,
_: schemas.TokenPayload = Depends(verify_token)) -> Any: _: schemas.TokenPayload = Depends(verify_token)) -> Any:
""" """
查询分享的订阅 查询分享的订阅
""" """
return await SubscribeHelper().async_get_shares(name=name, page=page, count=count) return await SubscribeHelper().async_get_shares(
name=name,
page=page,
count=count,
genre_id=genre_id,
min_rating=min_rating,
max_rating=max_rating
)
@router.get("/share/statistics", summary="查询订阅分享统计", response_model=List[schemas.SubscribeShareStatistics]) @router.get("/share/statistics", summary="查询订阅分享统计", response_model=List[schemas.SubscribeShareStatistics])
+30 -7
View File
@@ -382,7 +382,9 @@ class SubscribeHelper(metaclass=WeakSingleton):
return self._handle_response(res, clear_cache=False) return self._handle_response(res, clear_cache=False)
@cached(region=_shares_cache_region, maxsize=1, ttl=1800, skip_empty=True) @cached(region=_shares_cache_region, maxsize=1, ttl=1800, skip_empty=True)
def get_shares(self, name: Optional[str] = None, page: Optional[int] = 1, count: Optional[int] = 30) -> List[dict]: def get_shares(self, name: Optional[str] = None, page: Optional[int] = 1, count: Optional[int] = 30,
genre_id: Optional[int] = None, min_rating: Optional[float] = None,
max_rating: Optional[float] = None) -> List[dict]:
""" """
获取订阅分享数据 获取订阅分享数据
""" """
@@ -390,17 +392,28 @@ class SubscribeHelper(metaclass=WeakSingleton):
if not enabled: if not enabled:
return [] return []
res = RequestUtils(proxies=settings.PROXY, timeout=15).get_res(self._sub_shares, params={ params = {
"name": name, "name": name,
"page": page, "page": page,
"count": count "count": count
}) }
# 添加可选参数
if genre_id is not None:
params["genre_id"] = genre_id
if min_rating is not None:
params["min_rating"] = min_rating
if max_rating is not None:
params["max_rating"] = max_rating
res = RequestUtils(proxies=settings.PROXY, timeout=15).get_res(self._sub_shares, params=params)
return self._handle_list_response(res) return self._handle_list_response(res)
@cached(region=_shares_cache_region, maxsize=1, ttl=1800, skip_empty=True) @cached(region=_shares_cache_region, maxsize=1, ttl=1800, skip_empty=True)
async def async_get_shares(self, name: Optional[str] = None, page: Optional[int] = 1, count: Optional[int] = 30) -> \ async def async_get_shares(self, name: Optional[str] = None, page: Optional[int] = 1, count: Optional[int] = 30,
List[dict]: genre_id: Optional[int] = None, min_rating: Optional[float] = None,
max_rating: Optional[float] = None) -> List[dict]:
""" """
异步获取订阅分享数据 异步获取订阅分享数据
""" """
@@ -408,11 +421,21 @@ class SubscribeHelper(metaclass=WeakSingleton):
if not enabled: if not enabled:
return [] return []
res = await AsyncRequestUtils(proxies=settings.PROXY, timeout=15).get_res(self._sub_shares, params={ params = {
"name": name, "name": name,
"page": page, "page": page,
"count": count "count": count
}) }
# 添加可选参数
if genre_id is not None:
params["genre_id"] = genre_id
if min_rating is not None:
params["min_rating"] = min_rating
if max_rating is not None:
params["max_rating"] = max_rating
res = await AsyncRequestUtils(proxies=settings.PROXY, timeout=15).get_res(self._sub_shares, params=params)
return self._handle_list_response(res) return self._handle_list_response(res)