Files
fws_code/tyyp_app/cli.py

50 lines
1.7 KiB
Python
Raw Normal View History

2026-02-27 17:05:29 +08:00
#!/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)