# N2 Auto Update Program ## 简介 这是一个自动更新程序,用于保持 Gitea 仓库中的 `n2.json` 文件与上游源同步。程序会自动处理下载、格式化、字段强制覆盖以及通知发送。 ## 功能特性 1. **自动同步**: 每日定时(05:30)从指定 URL 下载最新的 JSON 文件。 2. **智能比对**: 仅在内容发生实质变化时才触发更新。 3. **字段强制**: * 强制设置 `logo` 字段为 `./bj/fyj.gif`,且更新时不会被覆盖。 * 保留或插入 `lf_js_search` (大鹏私人影库) 字段,并始终置顶。 4. **自动验证**: 每次运行都会自动从 Gitea 拉取最新文件进行验证,确保关键字段正确。 5. **Telegram 通知**: * 仅在发生更新或验证失败时发送通知。 * 通知包含更新内容详情及验证结果。 * 支持长消息分片发送。 6. **安全可靠**: * 使用 Git SHA 校验防止并发冲突。 * 文件锁机制防止程序重复运行。 * Gitea 提交使用服务器自动时间戳,避免时间穿越问题。 ## 部署信息 * **程序路径**: `/root/n2-auto-update/` * **配置文件**: `/root/n2-auto-update/config.yaml` * **服务名称**: `n2-update.service` * **定时任务**: `n2-update.timer` ## 运行日志 日志文件位于 `/root/n2-auto-update/logs/n2_update.log`,会自动轮转。 ## 更新记录 ### 2026-02-05 * **优化**: 调整通知策略,仅在文件更新或验证失败时发送 Telegram 通知,避免每日无效打扰。 * **修复**: 修正 Gitea 提交时间显示为 "26 years ago" 的问题 (移除显式时间戳,使用服务器时间)。 * **增强**: 添加 `verify_and_notify` 模块,每次运行自动验证 `logo` 和 `lf_js_search` 字段。 * **功能**: 强制 `logo` 字段值为 `./bj/fyj.gif`,并确保 `lf_js_search` 字段不被修改且置顶。 ### 2026-02-04 * **初始部署**: 完成基础框架搭建,包括下载、Diff 比对、Gitea 上传及 Systemd 定时任务配置。