WatchTower 监控中心

已连接 退出
刷新 {{ backfill.running ? `快照中 ${backfill.done}/${backfill.total}` : '补全快照' }}
批量删除
刷新 {{ scan.running ? `扫描中 ${scan.done}/${scan.total}` : '扫描历史通知' }} 手动添加 {{ fanke.running ? `生成中 ${fanke.done}/${fanke.total}` : '导出凡科图文' }} 导出记录
新通知自动整理:{{ settings.enable_competition === '0' ? '已关闭' : '已开启' }}
刷新 推免 / 保研 / 免试 / 夏令营 / 直博 相关通知
批量删除
新建任务 刷新列表
刷新日志 开启实时推送 开启每日汇总 内容快照 发现新通知时保存原文网页、正文和附件 发现竞赛通知时自动整理(AI 提取报名截止日期,原文转图片,归集附件)
{{ reclassify.running ? `AI 分类中 ${reclassify.done}/${reclassify.total}` : '用 AI 重新分类全部通知' }}
新通知抓取时会自动用 AI 判定“保研 / 日常”(竞赛单独判定)。此处可对历史通知重新分类,例如成绩排名公示会被识别为保研。 已分类 {{ reclassify.done }} 条:保研 {{ reclassify.baoyan }},日常 {{ reclassify.daily }}。
已保存 {{ snapStats.ok }} / {{ snapStats.total }} 条通知 (其中 {{ snapStats.gone }} 条保存时原文已下线), 未快照 {{ snapStats.pending }} 条,失败 {{ snapStats.failed }} 条
附件 {{ snapStats.attachments }} 个,磁盘占用 {{ formatSize(snapStats.disk_bytes) }} ({{ snapStats.dir }})
对外 API 启用对外 API(关闭后所有 /api/ 请求返回 403,凡科导出已内置,一般不需要开)
复制 重新生成
供其它系统拉取竞赛整理结果。认证方式:请求头 X-API-Key: 上面的值,或 URL 加 ?key=上面的值。
列表:GET /api/competitions 详情(名称+原文图片+全部附件):GET /api/competitions/{id} 整包下载:GET /api/competitions/{id}/download
返回里的图片、附件 URL 已自动带上 key,可直接下载。重新生成后旧 key 立即失效。
邮件服务器 保存配置 测试邮件
当前勾选的 {{ compSelectedIds.length }} 条 最新 条(按通知发布日期由近及远) 还没导出过的 {{ fanke.unexported }} 条(增量)
zip 内文件名编码: UTF-8(默认) GBK
UTF-8 是 zip 标准写法:凡科导入、Mac、7-Zip / Bandizip / WinRAR 5+ 、新版 Windows 都正常。
若你在 Windows 用系统自带解压或旧版 WinRAR 打开后中文乱码,选 GBK(文件名后缀会带 -GBK 便于区分)。
生成规则:正文 = 通知原文图片(每篇 ≤20 张,超出自动拼接);封面 = 第一张图;附件全部放入 files/;
标题 = 通知原标题(不含报名截止日期);摘要 = “报名截止 YYYY年MM月DD日”;发布时间 = 通知发布日 00:00;单包超 450MB 自动拆成多个 zip。
只生成 zip,不会自动上传凡科,请到凡科后台「图文 → 批量导入」手动上传。
只保留最近 20 个批次 / 30 天内的包,之后自动清理。
搜索
手动添加不经过 AI 判断是否竞赛,但仍会自动提取报名截止日期;处理需要几秒钟。
抓取规则 (CSS Selector)
快照时从这个容器提取正文和附件;这是详情页的选择器,不是列表页的。
新任务第一次运行会把列表页上已有的通知静默入库(做快照、生成摘要,但不发邮件、不进日报),之后再出现的才算新通知。
规则测试区 测试当前规则
⚠️ 未抓取到数据,请检查“列表容器”选择器。
[{{idx+1}}] {{ item.title }}