50 lines
1.7 KiB
Python
50 lines
1.7 KiB
Python
#!/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)
|