Этот коммит содержится в:
Vlad Pronsky 2024-04-18 18:39:39 +03:00
родитель 264ca7ac55
Коммит 9fa6343fae
2 изменённых файлов: 6 добавлений и 3 удалений

Просмотреть файл

@ -80,7 +80,7 @@ class AccountsPool:
user_agent: str | None = None, user_agent: str | None = None,
proxy: str | None = None, proxy: str | None = None,
cookies: str | None = None, cookies: str | None = None,
mfa_code: str | None = None mfa_code: str | None = None,
): ):
qs = "SELECT * FROM accounts WHERE username = :username" qs = "SELECT * FROM accounts WHERE username = :username"
rs = await fetchone(self._db_file, qs, {"username": username}) rs = await fetchone(self._db_file, qs, {"username": username})

Просмотреть файл

@ -2,8 +2,8 @@ import imaplib
from dataclasses import dataclass from dataclasses import dataclass
from datetime import timedelta from datetime import timedelta
from typing import Any from typing import Any
import pyotp
import pyotp
from httpx import AsyncClient, Response from httpx import AsyncClient, Response
from .account import Account from .account import Account
@ -121,6 +121,9 @@ async def login_enter_password(ctx: TaskCtx) -> Response:
async def login_two_factor_auth_challenge(ctx: TaskCtx) -> Response: async def login_two_factor_auth_challenge(ctx: TaskCtx) -> Response:
if ctx.acc.mfa_code is None:
raise ValueError("MFA code is required")
totp = pyotp.TOTP(ctx.acc.mfa_code) totp = pyotp.TOTP(ctx.acc.mfa_code)
payload = { payload = {
"flow_token": ctx.prev["flow_token"], "flow_token": ctx.prev["flow_token"],
@ -133,7 +136,7 @@ async def login_two_factor_auth_challenge(ctx: TaskCtx) -> Response:
} }
rep = await ctx.client.post(LOGIN_URL, json=payload) rep = await ctx.client.post(LOGIN_URL, json=payload)
raise_for_status(rep, "login_two_factor_auth_challenge") rep.raise_for_status()
return rep return rep