# 一键上号 · 本地轻量上号代理

线上站 [147mail.sq0715.com](https://147mail.sq0715.com) 的「一键上号」需要在你
**自己的电脑**上弹出 Chrome（服务器是无头 Linux，弹不出你能用的浏览器）。
这个代理就是那座桥：网页通过 `127.0.0.1:59835` 连到你本机的代理，
代理打开 Chrome、把登录 cookie 注入 chatgpt.com，完成上号。

**单文件、零第三方依赖**：只需要 Python 3.9+（macOS/Linux 自带；Windows 需安装）。

## 快速开始

### Windows

1. 安装 Python 3.9+：<https://www.python.org/downloads/>
   （安装界面**务必勾选 “Add python.exe to PATH”**）
2. 把 `shanghao_agent.py` 和 `启动上号代理.bat` 下载到同一个文件夹
3. 双击 `启动上号代理.bat`，看到 `✅ 一键上号本地代理已启动` 即可
4. 打开线上站「一键上号」页面正常使用

### macOS / Linux

```bash
python3 shanghao_agent.py
# 或：./start_agent.sh
```

### 校验代理已就绪

浏览器开另一个标签页访问 <http://127.0.0.1:59835/ping>，返回
`{"ok": true, ..., "chrome_found": true}` 就是都通了。
`chrome_found: false` 说明没找到 Chrome，见下一节。

## 找不到 Chrome 怎么办（重点：Windows 装到非默认盘符）

- **macOS / Linux**：Chrome 一般装在固定路径（`/Applications`、`/usr/bin`），
  默认安装即可自动找到，基本不用管。
- **Windows**：Chrome 可能被装到 `C:` 以外的盘符（如 `D:\Tools\Chrome\…`），
  代理会按以下顺序自动找：
  1. `SHANGHAO_CHROME_BIN` 环境变量（最高优先，见下）
  2. `PROGRAMFILES` / `PROGRAMFILES(X86)` / `LOCALAPPDATA` 指向的目录
  3. **注册表** `App Paths\chrome.exe`（标准安装包会注册，能覆盖任意盘符）
  4. 枚举本机所有盘符，逐个检查 `Program Files\Google\Chrome\Application\chrome.exe`
     等常见相对路径

如果还是找不到（绿色版/解压版/非常规位置），**手动指定路径**：

1. 找到 `chrome.exe` 的完整路径：
   - 右键桌面 Chrome 快捷方式 → 属性 → 「目标」一栏就是
     （形如 `D:\Tools\Chrome\Application\chrome.exe`）
2. 配置 `SHANGHAO_CHROME_BIN` 环境变量（任选一种）：

   **临时（只对这个窗口生效）**——先打开 cmd 窗口再运行：
   ```bat
   set "SHANGHAO_CHROME_BIN=D:\Tools\Chrome\Application\chrome.exe"
   启动上号代理.bat
   ```

   **永久**——在 cmd 执行（改完要**重开终端/重新双击 bat** 才生效）：
   ```bat
   setx SHANGHAO_CHROME_BIN "D:\Tools\Chrome\Application\chrome.exe"
   ```

   或者：直接编辑 `启动上号代理.bat`，把里面那行
   `rem set "SHANGHAO_CHROME_BIN=..."` 开头的 `rem ` 去掉，改成你的路径。

3. macOS / Linux 等价操作：`export SHANGHAO_CHROME_BIN="/路径/到/chrome"`

配置后重新双击启动脚本，启动横幅会打印 `Chrome 已找到：…` 确认。

## 常见问题

- **端口 59835 被占用？** 启动前设置环境变量
  `SHANGHAO_AGENT_PORT`（注意：改了之后网页端也要同步改
  `app.js` 里的 `SHANGHAO_AGENT_URL`，一般不建议改）。
- **上号后想关掉代理？** 随便关。已经弹出的 Chrome 窗口与代理无关，
  关掉代理窗口、甚至重启电脑都不影响已打开的浏览器。
- **安全吗？** 代理只监听 `127.0.0.1` 本机回环地址，外网和局域网
  都连不进来；token 只在你本机解析和使用，不经过任何第三方。
- **支持几个号一起上？** 网页端一次可以粘贴多行/多个，代理逐个处理，
  每个号弹一个独立的 Chrome 窗口。

## 文件清单

| 文件 | 说明 |
|---|---|
| `shanghao_agent.py` | 代理本体（单文件，含解析 + 起 Chrome + CDP 注入） |
| `启动上号代理.bat` | Windows 启动脚本（含 Chrome 路径配置注释） |
| `start_agent.sh` | macOS / Linux 启动脚本 |
| `README.md` | 本说明 |

最新版本随时可从线上站下载：`/agent/shanghao_agent.py`、`/agent/启动上号代理.bat` 等。
