Login using a session string.
(session_string: str)
| 1443 | |
| 1444 | |
| 1445 | def login_by_session_string(session_string: str) -> Session: |
| 1446 | """ |
| 1447 | Login using a session string. |
| 1448 | """ |
| 1449 | issue_login_warning() |
| 1450 | session_string = base64.b64decode(session_string).decode() # unobfuscate |
| 1451 | session_data = json.loads(session_string) |
| 1452 | try: |
| 1453 | assert session_data.get("id") |
| 1454 | with suppress_login_warning(): |
| 1455 | return login_by_id( |
| 1456 | session_data["id"], username=session_data.get("username"), password=session_data.get("password") |
| 1457 | ) |
| 1458 | except Exception: |
| 1459 | pass |
| 1460 | try: |
| 1461 | assert session_data.get("session_id") |
| 1462 | with suppress_login_warning(): |
| 1463 | return login_by_id( |
| 1464 | session_data["session_id"], username=session_data.get("username"), password=session_data.get("password") |
| 1465 | ) |
| 1466 | except Exception: |
| 1467 | pass |
| 1468 | try: |
| 1469 | assert session_data.get("username") and session_data.get("password") |
| 1470 | with suppress_login_warning(): |
| 1471 | return login(username=session_data["username"], password=session_data["password"]) |
| 1472 | except Exception: |
| 1473 | pass |
| 1474 | raise ValueError("Couldn't log in.") |
| 1475 | |
| 1476 | |
| 1477 | def login_by_io(file: SupportsRead[str]) -> Session: |
no test coverage detected