This commit is contained in:
2026-01-27 10:34:25 +08:00
parent 52b875a7f9
commit 8d5f8fe3bb
2 changed files with 314 additions and 53 deletions

View File

@@ -2195,6 +2195,52 @@ def login_and_authorize_with_otp(email: str) -> tuple[bool, dict]:
return False, None
def register_only(email: str, password: str, use_api_register: bool = True) -> str:
"""仅注册 OpenAI 账号,不进行授权 (用于并行注册 + 串行授权模式)
Args:
email: 邮箱地址
password: 密码
use_api_register: 是否优先使用 API 模式注册 (默认 True)
Returns:
str: 注册结果
- "success": 注册成功
- "domain_blacklisted": 域名被列入黑名单
- "failed": 注册失败
"""
with browser_context_with_retry(max_browser_retries=2) as ctx:
for attempt in ctx.attempts():
try:
# 注册 OpenAI (优先使用 API 模式)
register_result = register_openai_account_auto(
ctx.page, email, password,
use_api=use_api_register
)
# 检查是否是域名黑名单错误
if register_result == "domain_blacklisted":
ctx.stop()
return "domain_blacklisted"
if not register_result:
if attempt < ctx.max_retries - 1:
log.warning("注册失败,准备重试...")
continue
return "failed"
# 注册成功
log.success(f"注册成功: {email}")
return "success"
except Exception as e:
ctx.handle_error(e)
if ctx.current_attempt >= ctx.max_retries - 1:
return "failed"
return "failed"
def register_and_authorize(email: str, password: str, use_api_register: bool = True) -> tuple:
"""完整流程: 注册 OpenAI + Codex 授权 (带重试机制)