chatgpt_preflight.py 1.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243
  1. #!/usr/bin/env python3
  2. """Run one ChatGPT preflight 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_preflight_summary, run_chatgpt_preflight
  12. def build_parser() -> argparse.ArgumentParser:
  13. parser = argparse.ArgumentParser(description="Run one ChatGPT preflight")
  14. parser.add_argument("--mail-provider", default="cfmail", help="Mailbox provider")
  15. parser.add_argument("--proxy", default=None, help="Optional proxy URL")
  16. parser.add_argument("--email", default=None, help="Optional fixed email")
  17. parser.add_argument("--password", default=None, help="Optional fixed password")
  18. parser.add_argument("--json", dest="output_json", action="store_true", help="Print JSON output")
  19. return parser
  20. def main() -> None:
  21. args = build_parser().parse_args()
  22. payload = run_chatgpt_preflight(
  23. email=str(args.email or "").strip() or None,
  24. password=str(args.password or "").strip() or None,
  25. mail_provider=str(args.mail_provider or "").strip() or "cfmail",
  26. proxy=str(args.proxy or "").strip() or None,
  27. )
  28. if args.output_json:
  29. print(json.dumps(payload, ensure_ascii=False, indent=2))
  30. else:
  31. print_preflight_summary(payload)
  32. if __name__ == "__main__":
  33. main()