1- from typing import Optional
1+ from typing import Optional , assert_never , TYPE_CHECKING
22from http .cookiejar import CookieJar
33from enum import Enum , auto
44browsercookie_err = None
55try :
6- import browsercookie
6+ if TYPE_CHECKING :
7+ from . import browser_cookie3_stub as browser_cookie3
8+ else :
9+ import browser_cookie3
710except Exception as e :
811 browsercookie = None
912 browsercookie_err = e
@@ -15,41 +18,44 @@ class Browser(Enum):
1518 EDGE = auto ()
1619 SAFARI = auto ()
1720 CHROMIUM = auto ()
18- EDGE_DEV = auto ()
1921 VIVALDI = auto ()
22+ EDGE_DEV = auto ()
2023
2124
2225FIREFOX = Browser .FIREFOX
2326CHROME = Browser .CHROME
2427EDGE = Browser .EDGE
2528SAFARI = Browser .SAFARI
2629CHROMIUM = Browser .CHROMIUM
27- EDGE_DEV = Browser .EDGE_DEV
2830VIVALDI = Browser .VIVALDI
2931ANY = Browser .ANY
32+ EDGE_DEV = Browser .EDGE_DEV
3033
3134def cookies_from_browser (browser : Browser = ANY ) -> dict [str , str ]:
3235 """
3336 Import cookies from browser to login
3437 """
35- if not browsercookie :
38+ if not browser_cookie3 :
3639 raise browsercookie_err or ModuleNotFoundError ()
3740 cookies : Optional [CookieJar ] = None
38- if browser == ANY :
39- cookies = browsercookie .load ()
40- elif browser == FIREFOX :
41- cookies = browsercookie .firefox ()
42- elif browser == CHROME :
43- cookies = browsercookie .chrome ()
44- elif browser == EDGE :
45- cookies = browsercookie .edge ()
46- elif browser == SAFARI :
47- cookies = browsercookie .safari ()
48- elif browser == CHROMIUM :
49- cookies = browsercookie .chromium ()
50- elif browser == EDGE_DEV :
51- cookies = browsercookie .edge_dev ()
52- elif browser == VIVALDI :
53- cookies = browsercookie .vivaldi ()
41+ match browser :
42+ case Browser .ANY :
43+ cookies = browser_cookie3 .load ()
44+ case Browser .FIREFOX :
45+ cookies = browser_cookie3 .firefox ()
46+ case Browser .CHROME :
47+ cookies = browser_cookie3 .chrome ()
48+ case Browser .EDGE :
49+ cookies = browser_cookie3 .edge ()
50+ case Browser .SAFARI :
51+ cookies = browser_cookie3 .safari ()
52+ case Browser .CHROMIUM :
53+ cookies = browser_cookie3 .chromium ()
54+ case Browser .VIVALDI :
55+ cookies = browser_cookie3 .vivaldi ()
56+ case Browser .EDGE_DEV :
57+ raise ValueError ("EDGE_DEV is not supported anymore." )
58+ case _:
59+ assert_never (browser )
5460 assert isinstance (cookies , CookieJar )
5561 return {cookie .name : cookie .value for cookie in cookies if "scratch.mit.edu" in cookie .domain and cookie .value }
0 commit comments