diff --git a/DrissionPage/config.py b/DrissionPage/config.py index e8f59ff..5ed4c47 100644 --- a/DrissionPage/config.py +++ b/DrissionPage/config.py @@ -726,10 +726,15 @@ def _session_options_to_dict(options: Union[dict, SessionOptions, None]) -> Unio def _cookie_to_dict(cookie: Cookie) -> dict: - # TODO: 其它值? - cookie_dict = {'name': cookie.name, 'value': str(cookie.value), 'path': cookie.path, 'domain': cookie.domain} + # cookie_dict = {'name': cookie.name, 'value': str(cookie.value), 'path': cookie.path, 'domain': cookie.domain} - if cookie.expires: - cookie_dict['expiry'] = cookie.expires + # if cookie.expires: + # cookie_dict['expiry'] = cookie.expires - return cookie_dict + # return cookie_dict + if isinstance(cookie, Cookie): + return cookie.__dict__ + elif isinstance(cookie, dict): + return cookie + else: + raise TypeError diff --git a/DrissionPage/drission.py b/DrissionPage/drission.py index 3ee6837..4146312 100644 --- a/DrissionPage/drission.py +++ b/DrissionPage/drission.py @@ -155,6 +155,30 @@ class Drission(object): for cookie in cookies: self._ensure_add_cookie(cookie) + def set_cookies(self, + cookies: Union[RequestsCookieJar, list, tuple], + set_session: bool = False, + set_driver: bool = False): + if isinstance(cookies, (list, tuple, RequestsCookieJar)): + cookies = tuple(_cookie_to_dict(cookie) for cookie in cookies) + else: + raise TypeError + + if set_session: + pass + + if set_driver: + pass + + def add_cookie(self): + pass + + def remove_cookie(self): + pass + + def clear_cookies(self): + pass + def _set_session(self, data: dict) -> None: if self._session is None: self._session = Session()