From f161574a0163dd18411ce43559f40fc5760ad62c Mon Sep 17 00:00:00 2001 From: chuan Date: Wed, 3 Jun 2026 00:17:22 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E6=B7=BB=E5=8A=A0=E6=97=A0=E5=A4=B4?= =?UTF-8?q?=E6=A8=A1=E5=BC=8F=E5=B9=B6=E4=B8=94=E4=BC=98=E5=8C=96=E9=85=8D?= =?UTF-8?q?=E7=BD=AE=E9=A1=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .env.example | 6 ------ README.md | 8 +++----- src/auto_answer/browser.py | 2 +- src/auto_answer/cli.py | 4 +++- start.bat | 2 +- 5 files changed, 8 insertions(+), 14 deletions(-) diff --git a/.env.example b/.env.example index 53f9d2e..3323865 100644 --- a/.env.example +++ b/.env.example @@ -1,11 +1,5 @@ -LOGIN_URL=https://sia.sinopec.com/mobile/#/login -TARGET_URL=https://sia.sinopec.com/mobile/#/app/autonomous/test/index?fromName=index HEADLESS=false TIMEOUT_MS=30000 -BROWSER_CHANNEL=msedge -USER_DATA_DIR=.auth/edge -STORAGE_STATE_PATH=.auth/storage_state.json -SESSION_STATE_PATH=.auth/session_storage.json LOGIN_USERNAME= LOGIN_PASSWORD= QUESTION_BANK=测录融合 diff --git a/README.md b/README.md index 5329823..3e079b1 100644 --- a/README.md +++ b/README.md @@ -35,7 +35,7 @@ uv sync uv run playwright install chromium ``` -本项目默认使用系统里的 Microsoft Edge: +本项目默认使用系统里的 Microsoft Edge,固定配置在代码中: ```text BROWSER_CHANNEL=msedge @@ -56,15 +56,13 @@ RESULT_DELAY_S=2 常用配置说明: -- `LOGIN_URL`:登录页地址。 -- `TARGET_URL`:自主练测入口地址。 - `LOGIN_USERNAME` / `LOGIN_PASSWORD`:登录账号密码。 - `QUESTION_BANK`:题库关键词,程序会从页面 tab 中自动匹配最接近的题库。 - `ANSWER_COUNT`:自动答题数量,`0` 表示只进入练习不答题,`-1` 表示一直答到结束。 - `ANSWER_WAIT_S`:每题答题前的随机等待时间,格式是 `最小秒数-最大秒数`。 - `RESULT_DELAY_S`:点击答案后到点击下一题前的基准等待秒数,实际随机范围是 `50%-150%`。 -- `STORAGE_STATE_PATH`:保存 cookie/localStorage 的文件。 -- `SESSION_STATE_PATH`:保存 sessionStorage 的文件。 + +固定默认值在 `src/auto_answer/config.py` 中维护,包括登录页、自主练测入口、Edge channel、cookie/localStorage/sessionStorage 保存路径。 `.env`、`.auth/` 已加入 `.gitignore`,不会提交到 Git。 diff --git a/src/auto_answer/browser.py b/src/auto_answer/browser.py index b3c63b6..58dd522 100644 --- a/src/auto_answer/browser.py +++ b/src/auto_answer/browser.py @@ -46,7 +46,7 @@ def open_login_page(settings: Settings) -> Iterator[tuple[BrowserContext, Page]] with sync_playwright() as playwright: browser: Browser = playwright.chromium.launch( channel=settings.browser_channel, - headless=False, + headless=settings.headless, ) context_options = {} storage_state_path = Path(settings.storage_state_path) diff --git a/src/auto_answer/cli.py b/src/auto_answer/cli.py index fa0453b..6dbfde3 100644 --- a/src/auto_answer/cli.py +++ b/src/auto_answer/cli.py @@ -7,7 +7,9 @@ from auto_answer.runner import AnswerRunner def build_settings(args: argparse.Namespace) -> Settings: - values: dict[str, object] = {"headless": args.headless} + values: dict[str, object] = {} + if args.headless: + values["headless"] = True if args.url and args.command == "login": values["login_url"] = args.url elif args.url: diff --git a/start.bat b/start.bat index 83730ee..1beff1f 100644 --- a/start.bat +++ b/start.bat @@ -1,4 +1,4 @@ @echo off cd /d "%~dp0" -uv run auto-answer practice --answer-count -1 --answer-wait-s 5-10 --result-delay-s 2 +uv run auto-answer practice pause