站点独立设置超时时间
This commit is contained in:
@ -73,7 +73,7 @@ class SiteChain(ChainBase):
|
|||||||
ua=user_agent,
|
ua=user_agent,
|
||||||
cookies=site.cookie,
|
cookies=site.cookie,
|
||||||
proxies=settings.PROXY if site.proxy else None,
|
proxies=settings.PROXY if site.proxy else None,
|
||||||
timeout=15
|
timeout=site.timeout or 15
|
||||||
).get_res(url=site.url)
|
).get_res(url=site.url)
|
||||||
if res and res.status_code == 200:
|
if res and res.status_code == 200:
|
||||||
csrf_token = re.search(r'<meta name="x-csrf-token" content="(.+?)">', res.text)
|
csrf_token = re.search(r'<meta name="x-csrf-token" content="(.+?)">', res.text)
|
||||||
@ -90,7 +90,7 @@ class SiteChain(ChainBase):
|
|||||||
},
|
},
|
||||||
cookies=site.cookie,
|
cookies=site.cookie,
|
||||||
proxies=settings.PROXY if site.proxy else None,
|
proxies=settings.PROXY if site.proxy else None,
|
||||||
timeout=15
|
timeout=site.timeout or 15
|
||||||
).get_res(url=f"{site.url}api/user/getInfo")
|
).get_res(url=f"{site.url}api/user/getInfo")
|
||||||
if user_res and user_res.status_code == 200:
|
if user_res and user_res.status_code == 200:
|
||||||
user_info = user_res.json()
|
user_info = user_res.json()
|
||||||
@ -114,14 +114,14 @@ class SiteChain(ChainBase):
|
|||||||
res = RequestUtils(
|
res = RequestUtils(
|
||||||
headers=headers,
|
headers=headers,
|
||||||
proxies=settings.PROXY if site.proxy else None,
|
proxies=settings.PROXY if site.proxy else None,
|
||||||
timeout=15
|
timeout=site.timeout or 15
|
||||||
).post_res(url=url)
|
).post_res(url=url)
|
||||||
if res and res.status_code == 200:
|
if res and res.status_code == 200:
|
||||||
user_info = res.json()
|
user_info = res.json()
|
||||||
if user_info and user_info.get("data"):
|
if user_info and user_info.get("data"):
|
||||||
# 更新最后访问时间
|
# 更新最后访问时间
|
||||||
res = RequestUtils(headers=headers,
|
res = RequestUtils(headers=headers,
|
||||||
timeout=60,
|
timeout=site.timeout or 15,
|
||||||
proxies=settings.PROXY if site.proxy else None,
|
proxies=settings.PROXY if site.proxy else None,
|
||||||
referer=f"{site.url}index"
|
referer=f"{site.url}index"
|
||||||
).post_res(url=urljoin(url, "api/member/updateLastBrowse"))
|
).post_res(url=urljoin(url, "api/member/updateLastBrowse"))
|
||||||
@ -148,7 +148,7 @@ class SiteChain(ChainBase):
|
|||||||
:return:
|
:return:
|
||||||
"""
|
"""
|
||||||
favicon_url = urljoin(url, "favicon.ico")
|
favicon_url = urljoin(url, "favicon.ico")
|
||||||
res = RequestUtils(cookies=cookie, timeout=60, ua=ua).get_res(url=url)
|
res = RequestUtils(cookies=cookie, timeout=30, ua=ua).get_res(url=url)
|
||||||
if res:
|
if res:
|
||||||
html_text = res.text
|
html_text = res.text
|
||||||
else:
|
else:
|
||||||
@ -160,7 +160,7 @@ class SiteChain(ChainBase):
|
|||||||
if fav_link:
|
if fav_link:
|
||||||
favicon_url = urljoin(url, fav_link[0])
|
favicon_url = urljoin(url, fav_link[0])
|
||||||
|
|
||||||
res = RequestUtils(cookies=cookie, timeout=20, ua=ua).get_res(url=favicon_url)
|
res = RequestUtils(cookies=cookie, timeout=15, ua=ua).get_res(url=favicon_url)
|
||||||
if res:
|
if res:
|
||||||
return favicon_url, base64.b64encode(res.content).decode()
|
return favicon_url, base64.b64encode(res.content).decode()
|
||||||
else:
|
else:
|
||||||
|
@ -45,6 +45,8 @@ class Site(Base):
|
|||||||
limit_count = Column(Integer, default=0)
|
limit_count = Column(Integer, default=0)
|
||||||
# 流控间隔
|
# 流控间隔
|
||||||
limit_seconds = Column(Integer, default=0)
|
limit_seconds = Column(Integer, default=0)
|
||||||
|
# 超时时间
|
||||||
|
timeout = Column(Integer, default=0)
|
||||||
# 是否启用
|
# 是否启用
|
||||||
is_active = Column(Boolean(), default=True)
|
is_active = Column(Boolean(), default=True)
|
||||||
# 创建时间
|
# 创建时间
|
||||||
|
@ -27,6 +27,7 @@ class MTorrentSpider:
|
|||||||
_searchurl = "%sapi/torrent/search"
|
_searchurl = "%sapi/torrent/search"
|
||||||
_downloadurl = "%sapi/torrent/genDlToken"
|
_downloadurl = "%sapi/torrent/genDlToken"
|
||||||
_pageurl = "%sdetail/%s"
|
_pageurl = "%sdetail/%s"
|
||||||
|
_timeout = 15
|
||||||
|
|
||||||
# 电影分类
|
# 电影分类
|
||||||
_movie_category = ['401', '419', '420', '421', '439', '405', '404']
|
_movie_category = ['401', '419', '420', '421', '439', '405', '404']
|
||||||
@ -62,6 +63,7 @@ class MTorrentSpider:
|
|||||||
self._ua = indexer.get('ua')
|
self._ua = indexer.get('ua')
|
||||||
self._apikey = indexer.get('apikey')
|
self._apikey = indexer.get('apikey')
|
||||||
self._token = indexer.get('token')
|
self._token = indexer.get('token')
|
||||||
|
self._timeout = indexer.get('timeout') or 15
|
||||||
|
|
||||||
def search(self, keyword: str, mtype: MediaType = None, page: int = 0) -> Tuple[bool, List[dict]]:
|
def search(self, keyword: str, mtype: MediaType = None, page: int = 0) -> Tuple[bool, List[dict]]:
|
||||||
"""
|
"""
|
||||||
@ -92,7 +94,7 @@ class MTorrentSpider:
|
|||||||
},
|
},
|
||||||
proxies=self._proxy,
|
proxies=self._proxy,
|
||||||
referer=f"{self._domain}browse",
|
referer=f"{self._domain}browse",
|
||||||
timeout=15
|
timeout=self._timeout
|
||||||
).post_res(url=self._searchurl, json=params)
|
).post_res(url=self._searchurl, json=params)
|
||||||
torrents = []
|
torrents = []
|
||||||
if res and res.status_code == 200:
|
if res and res.status_code == 200:
|
||||||
|
@ -63,8 +63,8 @@ class TorrentSpider:
|
|||||||
torrents_info: dict = {}
|
torrents_info: dict = {}
|
||||||
# 种子列表
|
# 种子列表
|
||||||
torrents_info_array: list = []
|
torrents_info_array: list = []
|
||||||
# 搜索超时, 默认: 30秒
|
# 搜索超时, 默认: 15秒
|
||||||
_timeout = 30
|
_timeout = 15
|
||||||
|
|
||||||
def __init__(self,
|
def __init__(self,
|
||||||
indexer: CommentedMap,
|
indexer: CommentedMap,
|
||||||
|
@ -18,6 +18,7 @@ class TNodeSpider:
|
|||||||
_ua = None
|
_ua = None
|
||||||
_token = None
|
_token = None
|
||||||
_size = 100
|
_size = 100
|
||||||
|
_timeout = 15
|
||||||
_searchurl = "%sapi/torrent/advancedSearch"
|
_searchurl = "%sapi/torrent/advancedSearch"
|
||||||
_downloadurl = "%sapi/torrent/download/%s"
|
_downloadurl = "%sapi/torrent/download/%s"
|
||||||
_pageurl = "%storrent/info/%s"
|
_pageurl = "%storrent/info/%s"
|
||||||
@ -32,6 +33,7 @@ class TNodeSpider:
|
|||||||
self._proxy = settings.PROXY
|
self._proxy = settings.PROXY
|
||||||
self._cookie = indexer.get('cookie')
|
self._cookie = indexer.get('cookie')
|
||||||
self._ua = indexer.get('ua')
|
self._ua = indexer.get('ua')
|
||||||
|
self._timeout = indexer.get('timeout') or 15
|
||||||
self.init_config()
|
self.init_config()
|
||||||
|
|
||||||
def init_config(self):
|
def init_config(self):
|
||||||
@ -43,7 +45,7 @@ class TNodeSpider:
|
|||||||
res = RequestUtils(ua=self._ua,
|
res = RequestUtils(ua=self._ua,
|
||||||
cookies=self._cookie,
|
cookies=self._cookie,
|
||||||
proxies=self._proxy,
|
proxies=self._proxy,
|
||||||
timeout=15).get_res(url=self._domain)
|
timeout=self._timeout).get_res(url=self._domain)
|
||||||
if res and res.status_code == 200:
|
if res and res.status_code == 200:
|
||||||
csrf_token = re.search(r'<meta name="x-csrf-token" content="(.+?)">', res.text)
|
csrf_token = re.search(r'<meta name="x-csrf-token" content="(.+?)">', res.text)
|
||||||
if csrf_token:
|
if csrf_token:
|
||||||
@ -77,7 +79,7 @@ class TNodeSpider:
|
|||||||
},
|
},
|
||||||
cookies=self._cookie,
|
cookies=self._cookie,
|
||||||
proxies=self._proxy,
|
proxies=self._proxy,
|
||||||
timeout=15
|
timeout=self._timeout
|
||||||
).post_res(url=self._searchurl, json=params)
|
).post_res(url=self._searchurl, json=params)
|
||||||
torrents = []
|
torrents = []
|
||||||
if res and res.status_code == 200:
|
if res and res.status_code == 200:
|
||||||
|
@ -17,11 +17,13 @@ class TorrentLeech:
|
|||||||
_browseurl = "%storrents/browse/list/page/2%s"
|
_browseurl = "%storrents/browse/list/page/2%s"
|
||||||
_downloadurl = "%sdownload/%s/%s"
|
_downloadurl = "%sdownload/%s/%s"
|
||||||
_pageurl = "%storrent/%s"
|
_pageurl = "%storrent/%s"
|
||||||
|
_timeout = 15
|
||||||
|
|
||||||
def __init__(self, indexer: CommentedMap):
|
def __init__(self, indexer: CommentedMap):
|
||||||
self._indexer = indexer
|
self._indexer = indexer
|
||||||
if indexer.get('proxy'):
|
if indexer.get('proxy'):
|
||||||
self._proxy = settings.PROXY
|
self._proxy = settings.PROXY
|
||||||
|
self._timeout = indexer.get('timeout') or 15
|
||||||
|
|
||||||
def search(self, keyword: str, page: int = 0) -> Tuple[bool, List[dict]]:
|
def search(self, keyword: str, page: int = 0) -> Tuple[bool, List[dict]]:
|
||||||
|
|
||||||
@ -40,7 +42,7 @@ class TorrentLeech:
|
|||||||
},
|
},
|
||||||
cookies=self._indexer.get('cookie'),
|
cookies=self._indexer.get('cookie'),
|
||||||
proxies=self._proxy,
|
proxies=self._proxy,
|
||||||
timeout=15
|
timeout=self._timeout
|
||||||
).get_res(url)
|
).get_res(url)
|
||||||
torrents = []
|
torrents = []
|
||||||
if res and res.status_code == 200:
|
if res and res.status_code == 200:
|
||||||
|
@ -34,6 +34,8 @@ class Site(BaseModel):
|
|||||||
public: Optional[int] = 0
|
public: Optional[int] = 0
|
||||||
# 备注
|
# 备注
|
||||||
note: Optional[str] = None
|
note: Optional[str] = None
|
||||||
|
# 超时时间
|
||||||
|
timeout: Optional[int] = 0
|
||||||
# 流控单位周期
|
# 流控单位周期
|
||||||
limit_interval: Optional[int] = None
|
limit_interval: Optional[int] = None
|
||||||
# 流控次数
|
# 流控次数
|
||||||
|
Reference in New Issue
Block a user