feat: 在订阅统计中添加可选参数

This commit is contained in:
jxxghp
2025-09-16 07:37:14 +08:00
parent 8f2ed1004d
commit 18ff7ce753
2 changed files with 41 additions and 7 deletions
+30 -6
View File
@@ -131,7 +131,9 @@ class SubscribeHelper(metaclass=WeakSingleton):
return []
@cached(region=_shares_cache_region, maxsize=5, ttl=1800, skip_empty=True)
def get_statistic(self, stype: str, page: Optional[int] = 1, count: Optional[int] = 30) -> List[dict]:
def get_statistic(self, stype: str, 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]:
"""
获取订阅统计数据
"""
@@ -139,16 +141,28 @@ class SubscribeHelper(metaclass=WeakSingleton):
if not enabled:
return []
res = RequestUtils(proxies=settings.PROXY, timeout=15).get_res(self._sub_statistic, params={
params = {
"stype": stype,
"page": page,
"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_statistic, params=params)
return self._handle_list_response(res)
@cached(region=_shares_cache_region, maxsize=5, ttl=1800, skip_empty=True)
async def async_get_statistic(self, stype: str, page: Optional[int] = 1, count: Optional[int] = 30) -> List[dict]:
async def async_get_statistic(self, stype: str, 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]:
"""
异步获取订阅统计数据
"""
@@ -156,11 +170,21 @@ class SubscribeHelper(metaclass=WeakSingleton):
if not enabled:
return []
res = await AsyncRequestUtils(proxies=settings.PROXY, timeout=15).get_res(self._sub_statistic, params={
params = {
"stype": stype,
"page": page,
"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_statistic, params=params)
return self._handle_list_response(res)