Skip to content

Commit 473635d

Browse files
committed
improvements
1 parent add5546 commit 473635d

File tree

3 files changed

+46
-23
lines changed

3 files changed

+46
-23
lines changed
Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
# browser_cookie3.pyi
2+
3+
import http.cookiejar
4+
from typing import Optional
5+
6+
def chrome(cookie_file: Optional[str] = None, key_file: Optional[str] = None) -> http.cookiejar.CookieJar: return NotImplemented
7+
def chromium(cookie_file: Optional[str] = None, key_file: Optional[str] = None) -> http.cookiejar.CookieJar: return NotImplemented
8+
def firefox(cookie_file: Optional[str] = None, key_file: Optional[str] = None) -> http.cookiejar.CookieJar: return NotImplemented
9+
def opera(cookie_file: Optional[str] = None, key_file: Optional[str] = None) -> http.cookiejar.CookieJar: return NotImplemented
10+
def edge(cookie_file: Optional[str] = None, key_file: Optional[str] = None) -> http.cookiejar.CookieJar: return NotImplemented
11+
def brave(cookie_file: Optional[str] = None, key_file: Optional[str] = None) -> http.cookiejar.CookieJar: return NotImplemented
12+
def vivaldi(cookie_file: Optional[str] = None, key_file: Optional[str] = None) -> http.cookiejar.CookieJar: return NotImplemented
13+
def safari(cookie_file: Optional[str] = None, key_file: Optional[str] = None) -> http.cookiejar.CookieJar: return NotImplemented
14+
def lynx(cookie_file: Optional[str] = None, key_file: Optional[str] = None) -> http.cookiejar.CookieJar: return NotImplemented
15+
def w3m(cookie_file: Optional[str] = None, key_file: Optional[str] = None) -> http.cookiejar.CookieJar: return NotImplemented
16+
17+
def load() -> http.cookiejar.CookieJar: return NotImplemented
Lines changed: 27 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,12 @@
1-
from typing import Optional
1+
from typing import Optional, assert_never, TYPE_CHECKING
22
from http.cookiejar import CookieJar
33
from enum import Enum, auto
44
browsercookie_err = None
55
try:
6-
import browsercookie
6+
if TYPE_CHECKING:
7+
from . import browser_cookie3_stub as browser_cookie3
8+
else:
9+
import browser_cookie3
710
except 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

2225
FIREFOX = Browser.FIREFOX
2326
CHROME = Browser.CHROME
2427
EDGE = Browser.EDGE
2528
SAFARI = Browser.SAFARI
2629
CHROMIUM = Browser.CHROMIUM
27-
EDGE_DEV = Browser.EDGE_DEV
2830
VIVALDI = Browser.VIVALDI
2931
ANY = Browser.ANY
32+
EDGE_DEV = Browser.EDGE_DEV
3033

3134
def 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}

scratchattach/site/forum.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@
99
from bs4 import BeautifulSoup
1010

1111
from . import user
12-
from . import session
12+
from . import session as module_session
1313
from ..utils.commons import headers
1414
from ..utils import exceptions, commons
1515
from ._base import BaseSiteComponent
@@ -96,7 +96,7 @@ def update(self):
9696
return True
9797

9898
@classmethod
99-
def from_id(cls, id: int, session: session.Session, update: bool = False):
99+
def from_id(cls, id: int, session: module_session.Session, update: bool = False):
100100
new = cls(id=id, _session=session, title="", last_updated="", category_name="")
101101
if update:
102102
new.update()

0 commit comments

Comments
 (0)