自动签到与签到监控
让支持签到的聚合账号每天按时签到、累计额度,并同步签到日志,避免人工忘记操作。
功能概览
- 站点检测:账号识别时自动判断站点是否带签到入口,可在账号详情里打开/关闭“签到检测”。
- 自定义签到入口:针对魔改站点,可配置
customCheckInUrl与customRedeemUrl,同时决定是否联动打开充值页面。 - 自动签到调度:
autoCheckinScheduler基于chrome.alarms执行 每日一次 的常规自动签到,并对 当日失败账号 通过独立闹钟进行重试(不会影响下一次每日计划)。 - 执行记录:每次运行会产生日志,包含成功/失败原因、最后运行时间、下次每日计划以及(如有)下次重试计划,可在「自动签到」页面查看。
使用前提
- 在 账号管理 → 编辑账号 中开启“签到检测”,并确保能手动签到成功。
- 对需要自动签到的账号勾选“自动签到”开关(默认开启,可单个账号关闭)。
- 在 设置 → 自动签到 中开启全局自动签到,并设定时间窗口。
- 浏览器需支持
chrome.alarms(Chrome、Edge、Kiwi 浏览器正常,部分 Firefox 移动端可能不支持)。
设置步骤
1. 账号级开关
- 打开任意账号详情 → “更多设置”。
- 启用“签到检测”后,可配置:
- 自定义签到 URL(若站点默认入口不可用)。
- 自定义充值 URL 及“签到时顺带打开充值页”。
- “自动签到”开关(关闭后即使全局启用,该账号也不会参与自动签到)。
2. 全局时间窗口
在 设置 → 自动签到 面板中:
| 选项 | 说明 |
|---|---|
| 启用自动签到 | 控制全局 globalEnabled。关闭后不会创建闹钟。 |
| 打开界面时提前触发今日签到 | 默认开启。打开 popup / 侧边栏 / 设置页时,若今日每日计划尚未执行且当前时间在窗口内,会提前触发一次“每日运行”。运行完成后会弹出结果汇总对话框,并提供“查看详情”跳转到「自动签到」页面。 |
| 时间窗开始 / 结束 | 24 小时格式,允许跨夜(例如 22:00 → 06:00)。调度器会在该时间范围内随机选择一个时间运行。 |
| 查看执行记录 | 快捷跳转到「自动签到」页面,查看状态与日志。 |
| 恢复默认 | 调用 resetAutoCheckinConfig(),恢复到 09:00~18:00、关闭状态。 |
3. 查看执行状态
- 打开 插件侧边栏 → 自动签到 页面,可查看:
- 最近执行结果(成功 / 部分成功 / 失败)。
- 下次每日计划时间
nextDailyScheduledAt。 - (如有)下次重试计划时间
nextRetryScheduledAt。 - 账号维度日志(耗时、失败原因等)。
- 可点击“立即执行”手动触发一次
autoCheckin:runNow,用于调试。
工作原理
- 配置写入:
UserPreferencesContext将autoCheckin配置保存到本地偏好,并通过sendRuntimeMessage通知后台。 - 调度初始化:
autoCheckinScheduler.initialize()在扩展启动时创建闹钟监听:- 每日闹钟:常规自动签到(每天最多一次)。
- 重试闹钟:仅在当日常规运行存在失败账号时触发(只重试失败账号)。
- 执行流程:
- 读取账号并构建快照(启用检测的账号会显示在「账号检测状态」里)。
- 过滤满足条件的账号(开启检测、允许自动签到、存在 provider 且可用)。
- 不会使用
checkIn.siteStatus.isCheckedInToday判断是否执行(该字段不可信);由 provider 返回already_checked作为“已签到”的真实结果来源。 - 并发调用对应 provider(目前内置 Veloera,可扩展),并记录成功/失败信息。
- 成功或
already_checked会写入accountStorage.markAccountAsSiteCheckedIn();失败会记录日志并进入当日重试队列(若已启用重试)。 - 最终写入
autoCheckinStorage,供前端页面展示每个账号的状态与重试信息。
- 重新调度:
- 常规每日运行完成后,会为下一天重新计划每日闹钟(确保每日最多一次)。
- 当日存在失败账号且启用重试时,会计划重试闹钟,并按账号维度记录当日尝试次数(达到
maxAttemptsPerDay后停止重试)。
最佳实践
- 时间窗建议:设置在凌晨或站点低峰期(例如 02:00-05:00),提高成功率。
- 跨设备同步:结合 WebDAV 备份与自动同步,确保多设备共用同一份账号与签到设置,避免重复签到。
- 异常通知:暂未内置通知,可自行监听背景页
autoCheckinStorage或查看「自动签到」页面发现失败记录。
常见问题
| 问题 | 排查方法 |
|---|---|
| 页面显示“未计划 / 已禁用 / 无待重试” | “已禁用”:全局自动签到开关关闭。 “重试未启用”:未开启重试策略。 “无待重试”:已开启重试但当前没有失败账号。 “未计划”:已启用但浏览器不支持 chrome.alarms 或闹钟尚未创建/被清除;尝试重新保存设置或换用 Chrome/Edge。 |
| 某账号每天失败 | 检查该站是否支持自动签到 provider,必要时关闭该账号的自动签到改为手动。 |
| 自定义 URL 无效 | 确认可在浏览器中直接访问并成功签到;部分站点需要额外的 form data,目前仅支持 GET/简单 POST 的签到流程。 |
| 多个账号重复签到 | 可能来自多台设备同时运行,建议启用 WebDAV 同步保持配置一致,或仅保留一台设备开启自动签到。 |