feat: save registered accounts to postgres
This commit is contained in:
31
main.py
31
main.py
@@ -17,6 +17,7 @@ if str(PROJECT_ROOT) not in sys.path:
|
||||
from openai_pool_orchestrator import TOKENS_DIR, __version__
|
||||
from openai_pool_orchestrator.mail_providers import MultiMailRouter
|
||||
from openai_pool_orchestrator.register import _write_text_atomic, run as register_run
|
||||
from account_store import save_registered_account
|
||||
|
||||
try:
|
||||
from .support import (
|
||||
@@ -231,6 +232,27 @@ def _perform_registration_once(cfg: dict[str, Any], proxy: Optional[str]) -> dic
|
||||
print(f"[*] 成功! Token 已保存至: {file_path}")
|
||||
|
||||
run_result: dict[str, Any] = {"ok": True, "file": file_name, "email": email}
|
||||
if cfg.get("db_enabled"):
|
||||
try:
|
||||
db_result = save_registered_account(
|
||||
cfg,
|
||||
{
|
||||
"email": token_data.get("email", ""),
|
||||
"chatgpt_password": token_data.get("account_password", ""),
|
||||
"mail_password": token_data.get("mail_password", ""),
|
||||
"oauth_status": "oauth=ok",
|
||||
"mail_token": token_data.get("mail_token", ""),
|
||||
"name": token_data.get("name", ""),
|
||||
"birthdate": token_data.get("birthdate", ""),
|
||||
"source": cfg.get("db_source", "standalone_cli"),
|
||||
},
|
||||
)
|
||||
run_result["db_saved"] = bool(db_result.get("ok", False))
|
||||
print(f"[{'+' if db_result.get('ok') else '-'}] 数据库{'写入成功' if db_result.get('ok') else '写入失败'}: {email}")
|
||||
except Exception as exc:
|
||||
run_result["db_saved"] = False
|
||||
run_result["db_error"] = str(exc)
|
||||
print(f"[-] 数据库写入异常: {exc}")
|
||||
cpa = get_pool_maintainer(cfg)
|
||||
if cpa:
|
||||
cpa_ok = cpa.upload_token(file_name, token_data, proxy="")
|
||||
@@ -479,6 +501,15 @@ def handle_config_setup(args: argparse.Namespace) -> dict[str, Any]:
|
||||
cfg["auto_register"] = _prompt_bool("2) 池不足时自动注册", bool(cfg.get("auto_register", False)))
|
||||
cfg["auto_register_max_per_loop"] = _prompt_int(" 每轮最多自动补号数量", int(cfg.get("auto_register_max_per_loop", 1) or 1))
|
||||
print(" 提示: 这个值越大,补号越快,但也会更激进。一般先用 1 或 2。")
|
||||
cfg["db_enabled"] = _prompt_bool(" 是否启用 PostgreSQL 注册信息入库", bool(cfg.get("db_enabled", False)))
|
||||
if cfg["db_enabled"]:
|
||||
cfg["db_host"] = _prompt_text(" DB 主机", str(cfg.get("db_host") or "150.158.105.6"))
|
||||
cfg["db_port"] = _prompt_int(" DB 端口", int(cfg.get("db_port", 54321) or 54321))
|
||||
cfg["db_name"] = _prompt_text(" DB 名称", str(cfg.get("db_name") or "mail_accounts_db"))
|
||||
cfg["db_user"] = _prompt_text(" DB 用户名", str(cfg.get("db_user") or "postgres"))
|
||||
cfg["db_password"] = _prompt_text(" DB 密码", str(cfg.get("db_password") or ""))
|
||||
cfg["db_table"] = _prompt_text(" DB 表名", str(cfg.get("db_table") or "registered_accounts"))
|
||||
cfg["db_source"] = _prompt_text(" source 字段值", str(cfg.get("db_source") or "standalone_cli"))
|
||||
|
||||
provider_options = ["mailtm", "duckmail", "moemail", "cloudflare_temp_email"]
|
||||
current_provider = str((cfg.get("mail_providers") or ["mailtm"])[0]).strip().lower() or "mailtm"
|
||||
|
||||
Reference in New Issue
Block a user