Files
natfrp-auto-check-in/sakura_frp_auto_check/README.md
T

116 lines
4.7 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# SAKURA FRP 自动签到脚本
> 自动访问 `https://www.natfrp.com/user/` 完成每日签到;支持在本地直接运行,也支持在 **QingLong(青龙)** 定时任务中运行。
> 成功后会自动保存签到结果截图(默认:`checkin.png`),并在必要时自动处理滑块验证。
## 一、目录结构
```
.
├─ main.py # 主程序(无需改动即可用)
├─ account.txt # 账号文件(必填:第1行用户名;第2行密码)
├─ state.json # 登录状态缓存文件(自动生成与更新)
└─ checkin.png # 成功时保存的签到区域截图(自动生成)
```
> 说明:程序会优先尝试复用 `state.json` 中的登录状态;状态失效时会自动回退为账号密码登录。
## 二、准备工作
1. **创建账号文件 `account.txt`**
- 第 1 行:用户名
- 第 2 行:密码
- 文件编码建议使用 `UTF-8`,不要多余空行或空格。
示例:
```
your_username
your_password
```
2. **(可选)检查/调整配置** — 打开 `main.py` 顶部“配置”区域,可按需修改:
- `ACCOUNT_FILE`:账号文件路径(默认 `account.txt`)
- `STATE_FILE`:状态缓存文件(默认 `state.json`)
- `MAX_RETRY`:失败重试次数(`0` 表示无限重试)
- `SIGNED_ANCESTOR_SCREENSHOT`:成功截图文件名(默认 `checkin.png`)
> **无需修改网站域名与地址**,默认已指向 `https://www.natfrp.com/user/`。
## 三、环境要求
需要安装Playwright及其依赖,推荐使用 Python 3.7 及以上版本。
## 四、在 QingLong(青龙)中使用
> 适用于青龙面板 v2.XX 及以上版本(路径请以你面板的实际目录为准)。
### 1)放置脚本与账号文件
方式 A:在面板「文件管理」中将 `main.py` 和 `account.txt` 上传到脚本目录,例如:
```
/ql/data/scripts/natfrp_checkin/
```
方式 B:通过仓库/订阅拉取(如你有自建仓库),确保最终能在脚本目录看到 `main.py` 与 `account.txt`。
> **注意**:`account.txt` 一定要跟 `main.py` 放在同一目录(或同步修改 `ACCOUNT_FILE` 为你的自定义路径)。
### 2)创建定时任务
在青龙面板 ->「定时任务」->「新建任务」:
- **名称**:NATFRP 自动签到
- **命令**(按你的实际路径替换):
```bash
python3 /ql/data/scripts/natfrp_checkin/main.py
```
- **定时规则(CRON)**:建议每日固定时间运行一次,例如每天 8:10:
```
10 8 * * *
```
保存后即可生效。你也可以在任务列表中手动点击「运行」测试是否正常。
### 3)查看运行日志与产物
- 在任务详情页可查看实时日志;
- 成功后会生成 `checkin.png`(截图)与 `state.json`(状态);
- 若失败,会打印原因并根据 `MAX_RETRY` 自动重试。
## 五、常见问题
1. **提示账号文件不存在或格式错误**
- 确认 `account.txt` 与 `main.py` 在同一目录;
- 确认文件编码为 `UTF-8`,且只有两行:第一行用户名,第二行密码;
- 不要包含多余空行或空格。
2. **一直提示登录状态过期**
- 删除同目录下旧的 `state.json` 后重跑;
- 确认账号密码正确;
- 网络/地区问题可能导致访问异常,可稍后再试。
3. **出现滑块但始终无法通过**
- 目标站点的风控策略可能调整;
- 可适当增加重试次数(`MAX_RETRY`),或更换执行时间段;
- 若长时间失败,建议手动登录一次,让站点信任度恢复。
4. **成功了但没有截图**
- 程序以出现“今天已经签到过啦”的提示为成功判据;
- 如果站点文案发生变化,可修改 `ALREADY_SIGNED_TEXT`;
- 截图保存路径由 `SIGNED_ANCESTOR_SCREENSHOT` 控制(默认 `checkin.png`)。
5. **青龙里命令执行不动或报路径错误**
- 确认命令中的绝对路径与实际文件路径一致;
- 如果你把文件放在其它目录,务必同步修改命令与 `ACCOUNT_FILE` 路径。
## 六、日志与产物
- **日志输出**:执行时会输出每一步进度与判定结果,便于排查。
- **截图与状态**:
- `checkin.png`:成功时的页面关键区域截图;
- `state.json`:登录状态缓存(自动生成/刷新);
- 若启用内部调试流程,可能在同目录产生若干 `debug_*.png` 用于图像比对,这些文件可忽略或自行清理。
---
**至此即可完成配置与使用。**
如需嵌入到你现有的青龙仓库,只要保证 `main.py` 与 `account.txt` 的相对位置一致,并按上文的命令与定时规则召唤即可。祝签到愉快 🎯