chatgpt_register_once.py 1.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748
  1. #!/usr/bin/env python3
  2. """Run one full ChatGPT registration attempt from the command line."""
  3. from __future__ import annotations
  4. import argparse
  5. import json
  6. import sys
  7. from pathlib import Path
  8. PROJECT_ROOT = Path(__file__).resolve().parents[1]
  9. if str(PROJECT_ROOT) not in sys.path:
  10. sys.path.insert(0, str(PROJECT_ROOT))
  11. from core.chatgpt_flow_runner import print_callback_summary, run_chatgpt_register_once
  12. from core.settings import AppSettings
  13. def build_parser() -> argparse.ArgumentParser:
  14. parser = argparse.ArgumentParser(description="Run one ChatGPT registration attempt")
  15. parser.add_argument("--mail-provider", default="cfmail", help="Mailbox provider")
  16. parser.add_argument("--proxy", default=None, help="Optional proxy URL")
  17. parser.add_argument("--email", default=None, help="Optional fixed email")
  18. parser.add_argument("--password", default=None, help="Optional fixed password")
  19. parser.add_argument("--no-write-pool", action="store_true", help="Do not write token JSON into pool")
  20. parser.add_argument("--json", dest="output_json", action="store_true", help="Print JSON output")
  21. return parser
  22. def main() -> None:
  23. args = build_parser().parse_args()
  24. settings = AppSettings.from_env()
  25. payload = run_chatgpt_register_once(
  26. email=str(args.email or "").strip() or None,
  27. password=str(args.password or "").strip() or None,
  28. mail_provider=str(args.mail_provider or "").strip() or "cfmail",
  29. proxy=str(args.proxy or "").strip() or None,
  30. write_pool=not args.no_write_pool,
  31. pool_dir=settings.pool_dir,
  32. )
  33. if args.output_json:
  34. print(json.dumps(payload, ensure_ascii=False, indent=2))
  35. else:
  36. print_callback_summary(payload)
  37. if __name__ == "__main__":
  38. main()