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)
|