зеркало из
https://github.com/viginum-datalab/twscrape.git
synced 2025-10-29 05:04:22 +02:00
fix otp code
Этот коммит содержится в:
родитель
264ca7ac55
Коммит
9fa6343fae
@ -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
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
Загрузка…
x
Ссылка в новой задаче
Block a user