4
4
5
5
from typing import Optional
6
6
7
- from .keyhandler import AUTH as __AUTH
7
+ from .keyhandler import get_auth
8
8
from scratchattach import login , Session as _Session , LoginDataWarning
9
9
10
10
warnings .filterwarnings ('ignore' , category = LoginDataWarning )
11
11
12
12
_session : Optional [_Session ] = None
13
13
14
+ def credentials_available () -> bool :
15
+ auth = get_auth ()
16
+ if not auth :
17
+ return False
18
+ return auth .get ("auth" ) is not None
14
19
15
20
def session () -> _Session :
16
21
global _session
17
22
18
23
if not _session :
19
- _session = login ("ScratchAttachV2" , __AUTH ["auth" ]["scratchattachv2" ])
24
+ auth = get_auth ().get ("auth" )
25
+ scratchattachv2 = None if auth is None else auth .get ("scratchattachv2" )
26
+ if scratchattachv2 is None :
27
+ raise RuntimeError ("Not enough data for login." )
28
+ _session = login ("ScratchAttachV2" , scratchattachv2 )
20
29
21
30
return _session
22
31
@@ -25,11 +34,11 @@ def teacher_session() -> Optional[_Session]:
25
34
global _teacher_session
26
35
27
36
if not _teacher_session :
28
- if "teacher_auth" not in __AUTH :
37
+ if "teacher_auth" not in get_auth () :
29
38
warnings .warn (f"Could not test for teacher session" )
30
39
return None
31
40
32
- data = __AUTH ["teacher_auth" ]
41
+ data = get_auth () ["teacher_auth" ]
33
42
_teacher_session = login (data ["username" ], data ["password" ])
34
43
35
44
return _teacher_session
0 commit comments