#!/usr/bin/env python3 # -*- coding: utf-8 -*- from __future__ import annotations import argparse from DrissionPage import ChromiumOptions, ChromiumPage from tyyp_app.api import app from tyyp_app.automation import input_code, submit_phone from tyyp_app.config import DEFAULT_PHONE, DEFAULT_TARGET_URL def build_parser() -> argparse.ArgumentParser: parser = argparse.ArgumentParser(description="天翼云盘订购页自动化") parser.add_argument("--api", action="store_true", help="以 FastAPI 服务模式启动") parser.add_argument("--host", default="0.0.0.0", help="API 监听地址(--api 模式)") parser.add_argument("--api-port", type=int, default=8000, help="API 监听端口(--api 模式)") parser.add_argument("--phone", default=DEFAULT_PHONE, help="手机号码(默认用代码中的 DEFAULT_PHONE)") parser.add_argument("--url", default=DEFAULT_TARGET_URL, help="目标页面 URL") parser.add_argument("--port", type=int, default=0, help="连接已有浏览器端口,0 表示新建") return parser def run_once(phone: str, url: str, port: int = 0) -> None: if port: co = ChromiumOptions().set_local_port(port=port) page = ChromiumPage(addr_or_opts=co) else: page = ChromiumPage() print(f"打开页面: {url},手机号: {phone}") body = submit_phone(page=page, phone=phone, url=url) print("hn_userEquitys/getYanZhenMa/v2 响应:") print(body) input_code(page=page, code=123123) def main() -> None: args = build_parser().parse_args() if args.api: import uvicorn uvicorn.run(app, host=args.host, port=args.api_port) return run_once(phone=args.phone, url=args.url, port=args.port)