diamond-in commited on
Commit
3815cee
·
verified ·
1 Parent(s): dfd52b2

Update features/cookies.py

Browse files
Files changed (1) hide show
  1. features/cookies.py +45 -0
features/cookies.py CHANGED
@@ -0,0 +1,45 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ """
2
+ Cookie management features
3
+ """
4
+ import json
5
+ import logging
6
+ from browser.driver import get_driver, cleanup_driver
7
+
8
+ logger = logging.getLogger(__name__)
9
+
10
+ def get_cookies(url: str, use_persistent: bool = False) -> str:
11
+ """Get all cookies from current domain"""
12
+ driver = None
13
+ try:
14
+ driver = get_driver(url, use_persistent)
15
+ cookies = driver.get_cookies()
16
+ return json.dumps(cookies, indent=2)
17
+ except Exception as e:
18
+ logger.error(f"Error in get_cookies: {e}")
19
+ return f"Error: {e}"
20
+ finally:
21
+ cleanup_driver(driver, use_persistent)
22
+
23
+ def set_cookies(url: str, cookies_json: str, use_persistent: bool = False) -> str:
24
+ """Set cookies from JSON string"""
25
+ driver = None
26
+ try:
27
+ driver = get_driver(url, use_persistent)
28
+
29
+ # Parse and add cookies
30
+ cookies = json.loads(cookies_json)
31
+ for cookie in cookies:
32
+ # Remove expiry if present (can cause issues)
33
+ if 'expiry' in cookie:
34
+ del cookie['expiry']
35
+ driver.add_cookie(cookie)
36
+
37
+ # Refresh page to apply cookies
38
+ driver.refresh()
39
+
40
+ return f"Set {len(cookies)} cookies successfully"
41
+ except Exception as e:
42
+ logger.error(f"Error in set_cookies: {e}")
43
+ return f"Error: {e}"
44
+ finally:
45
+ cleanup_driver(driver, use_persistent)