diff --git a/app/chain/torrents.py b/app/chain/torrents.py index 93a799c4..eb1362bc 100644 --- a/app/chain/torrents.py +++ b/app/chain/torrents.py @@ -150,7 +150,7 @@ class TorrentsChain(ChainBase): return [] # 解析RSS rss_items = RssHelper().parse(site.get("rss"), True if site.get("proxy") else False, - timeout=int(site.get("timeout") or 30)) + timeout=int(site.get("timeout") or 30), ua=site.get("ua") if site.get("ua") else None) if rss_items is None: # rss过期,尝试保留原配置生成新的rss self.__renew_rss_url(domain=domain, site=site) diff --git a/app/helper/rss.py b/app/helper/rss.py index caf820f0..5cd309d8 100644 --- a/app/helper/rss.py +++ b/app/helper/rss.py @@ -228,13 +228,14 @@ class RssHelper: } def parse(self, url, proxy: bool = False, - timeout: Optional[int] = 15, headers: dict = None) -> Union[List[dict], None, bool]: + timeout: Optional[int] = 15, headers: dict = None, ua: str = None) -> Union[List[dict], None, bool]: """ 解析RSS订阅URL,获取RSS中的种子信息 :param url: RSS地址 :param proxy: 是否使用代理 :param timeout: 请求超时 :param headers: 自定义请求头 + :param ua: 自定义User-Agent :return: 种子信息列表,如为None代表Rss过期,如果为False则为错误 """ # 开始处理 @@ -243,8 +244,9 @@ class RssHelper: return False try: - ret = RequestUtils(proxies=settings.PROXY if proxy else None, - timeout=timeout, headers=headers).get_res(url) + ret = RequestUtils(ua=ua, + proxies=settings.PROXY if proxy else None, + timeout=timeout or 30, headers=headers).get_res(url) if not ret: logger.error(f"获取RSS失败:请求返回空值,URL: {url}") return False