Skip to content

Commit

Permalink
修改 status_codes 为 is_success, 不再支持字典, 改为支持动态脚本
Browse files Browse the repository at this point in the history
  • Loading branch information
kem wan committed Dec 20, 2023
1 parent 094d0fe commit c0840ef
Show file tree
Hide file tree
Showing 3 changed files with 8 additions and 10 deletions.
4 changes: 2 additions & 2 deletions bricks/lib/request.py
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,7 @@ def __init__(
allow_redirects: bool = True,
proxies: Optional[str] = None,
proxy: Optional[dict] = None,
status_codes: Optional[dict] = ...,
is_success: Optional[str] = ...,
retry: int = 0,
max_retry: int = 5,
) -> None:
Expand All @@ -44,7 +44,7 @@ def __init__(
self.allow_redirects = allow_redirects
self.proxies = proxies
self.proxy = proxy
self.status_codes = status_codes
self.is_success = is_success
self.retry = retry
self.max_retry = max_retry

Expand Down
10 changes: 4 additions & 6 deletions bricks/lib/response.py
Original file line number Diff line number Diff line change
Expand Up @@ -322,16 +322,14 @@ def ok(self):
:return:
"""
status_codes = self.request.status_codes
is_success = self.request.is_success

# None -> 所有状态码, 除了 -1 , -1 代表请求过程中发生了错误
if status_codes is None:
if is_success is None:
return self.status_code != -1

elif isinstance(status_codes, dict):
mode = status_codes.get('mode', 'include')
default = 1 if mode == 'include' else 0
return bool(status_codes.get(self.status_code, default))
elif isinstance(is_success, str):
return eval(is_success, {"status_code": self.status_code, "response": self})

# 默认 -> 200 到 400
else:
Expand Down
4 changes: 2 additions & 2 deletions bricks/spider/form.py
Original file line number Diff line number Diff line change
Expand Up @@ -72,7 +72,7 @@ class Download(RenderNode):
allow_redirects: bool = True
proxies: Optional[str] = None
proxy: Optional[dict] = None
status_codes: Optional[dict] = ...
is_success: Optional[str] = ...
retry: int = 0
max_retry: int = 5
archive: bool = False
Expand All @@ -90,7 +90,7 @@ def to_request(self) -> Request:
allow_redirects=self.allow_redirects,
proxies=self.proxies,
proxy=self.proxy,
status_codes=self.status_codes,
is_success=self.is_success,
retry=self.retry,
max_retry=self.max_retry
)
Expand Down

0 comments on commit c0840ef

Please sign in to comment.