让自定义站点可自行设置: 搜索结果条数/请求超时
This commit is contained in:
parent
7350216fc4
commit
dde3b76573
@ -98,7 +98,7 @@ class TorrentsChain(ChainBase, metaclass=Singleton):
|
|||||||
if not site.get("rss"):
|
if not site.get("rss"):
|
||||||
logger.error(f'站点 {domain} 未配置RSS地址!')
|
logger.error(f'站点 {domain} 未配置RSS地址!')
|
||||||
return []
|
return []
|
||||||
rss_items = self.rsshelper.parse(site.get("rss"), True if site.get("proxy") else False)
|
rss_items = self.rsshelper.parse(site.get("rss"), True if site.get("proxy") else False, timeout=int(site.get("timeout") or 30))
|
||||||
if rss_items is None:
|
if rss_items is None:
|
||||||
# rss过期,尝试保留原配置生成新的rss
|
# rss过期,尝试保留原配置生成新的rss
|
||||||
self.__renew_rss_url(domain=domain, site=site)
|
self.__renew_rss_url(domain=domain, site=site)
|
||||||
|
@ -224,11 +224,12 @@ class RssHelper:
|
|||||||
}
|
}
|
||||||
|
|
||||||
@staticmethod
|
@staticmethod
|
||||||
def parse(url, proxy: bool = False) -> Union[List[dict], None]:
|
def parse(url, proxy: bool = False, timeout: int = 30) -> Union[List[dict], None]:
|
||||||
"""
|
"""
|
||||||
解析RSS订阅URL,获取RSS中的种子信息
|
解析RSS订阅URL,获取RSS中的种子信息
|
||||||
:param url: RSS地址
|
:param url: RSS地址
|
||||||
:param proxy: 是否使用代理
|
:param proxy: 是否使用代理
|
||||||
|
:param timeout: 请求超时
|
||||||
:return: 种子信息列表,如为None代表Rss过期
|
:return: 种子信息列表,如为None代表Rss过期
|
||||||
"""
|
"""
|
||||||
# 开始处理
|
# 开始处理
|
||||||
@ -236,7 +237,7 @@ class RssHelper:
|
|||||||
if not url:
|
if not url:
|
||||||
return []
|
return []
|
||||||
try:
|
try:
|
||||||
ret = RequestUtils(proxies=settings.PROXY if proxy else None).get_res(url)
|
ret = RequestUtils(proxies=settings.PROXY if proxy else None, timeout=timeout).get_res(url)
|
||||||
if not ret:
|
if not ret:
|
||||||
return []
|
return []
|
||||||
except Exception as err:
|
except Exception as err:
|
||||||
|
@ -56,12 +56,14 @@ class TorrentSpider:
|
|||||||
fields: dict = {}
|
fields: dict = {}
|
||||||
# 页码
|
# 页码
|
||||||
page: int = 0
|
page: int = 0
|
||||||
# 搜索条数
|
# 搜索条数, 默认: 100条
|
||||||
result_num: int = 100
|
result_num: int = 100
|
||||||
# 单个种子信息
|
# 单个种子信息
|
||||||
torrents_info: dict = {}
|
torrents_info: dict = {}
|
||||||
# 种子列表
|
# 种子列表
|
||||||
torrents_info_array: list = []
|
torrents_info_array: list = []
|
||||||
|
# 搜索超时, 默认: 30秒
|
||||||
|
_timeout = 30
|
||||||
|
|
||||||
def __init__(self,
|
def __init__(self,
|
||||||
indexer: CommentedMap,
|
indexer: CommentedMap,
|
||||||
@ -91,6 +93,8 @@ class TorrentSpider:
|
|||||||
self.fields = indexer.get('torrents').get('fields')
|
self.fields = indexer.get('torrents').get('fields')
|
||||||
self.render = indexer.get('render')
|
self.render = indexer.get('render')
|
||||||
self.domain = indexer.get('domain')
|
self.domain = indexer.get('domain')
|
||||||
|
self.result_num = int(indexer.get('result_num') or 100)
|
||||||
|
self._timeout = int(indexer.get('timeout') or 30)
|
||||||
self.page = page
|
self.page = page
|
||||||
if self.domain and not str(self.domain).endswith("/"):
|
if self.domain and not str(self.domain).endswith("/"):
|
||||||
self.domain = self.domain + "/"
|
self.domain = self.domain + "/"
|
||||||
@ -233,14 +237,15 @@ class TorrentSpider:
|
|||||||
url=searchurl,
|
url=searchurl,
|
||||||
cookies=self.cookie,
|
cookies=self.cookie,
|
||||||
ua=self.ua,
|
ua=self.ua,
|
||||||
proxies=self.proxy_server
|
proxies=self.proxy_server,
|
||||||
|
timeout=self._timeout
|
||||||
)
|
)
|
||||||
else:
|
else:
|
||||||
# requests请求
|
# requests请求
|
||||||
ret = RequestUtils(
|
ret = RequestUtils(
|
||||||
ua=self.ua,
|
ua=self.ua,
|
||||||
cookies=self.cookie,
|
cookies=self.cookie,
|
||||||
timeout=30,
|
timeout=self._timeout,
|
||||||
referer=self.referer,
|
referer=self.referer,
|
||||||
proxies=self.proxies
|
proxies=self.proxies
|
||||||
).get_res(searchurl, allow_redirects=True)
|
).get_res(searchurl, allow_redirects=True)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user