[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"project-73630":3},{"id":4,"name":5,"fullName":6,"owner":7,"repo":5,"description":8,"homepage":9,"htmlUrl":9,"language":10,"languages":9,"totalLinesOfCode":9,"stars":11,"forks":12,"watchers":13,"openIssues":14,"contributorsCount":15,"subscribersCount":15,"size":15,"stars1d":16,"stars7d":17,"stars30d":18,"stars90d":15,"forks30d":15,"starsTrendScore":19,"compositeScore":20,"rankGlobal":9,"rankLanguage":9,"license":21,"archived":22,"fork":22,"defaultBranch":23,"hasWiki":24,"hasPages":22,"topics":25,"createdAt":9,"pushedAt":9,"updatedAt":26,"readmeContent":27,"aiSummary":28,"trendingCount":15,"starSnapshotCount":15,"syncStatus":29,"lastSyncTime":30,"discoverSource":31},73630,"SubsTracker","wangwangit\u002FSubsTracker","wangwangit","基于Cloudflare Workers的轻量级订阅管理系统，帮助您轻松跟踪各类订阅服务的到期时间，并通过Telegram发送及时提醒。",null,"HTML",2893,2229,17,7,0,11,24,68,33,32,"MIT License",false,"master",true,[],"2026-06-12 02:03:16","# SubsTracker - 订阅管理与提醒系统\n\n基于 Cloudflare Workers 的轻量级订阅管理系统，帮助你轻松跟踪各类订阅服务的到期时间，并通过 Telegram、Webhook 等多渠道发送及时提醒。\n\n> 🎉 项目说明：\n> - 原有稳定版本代码已保留在 **`legacy-v1`** 分支（可随时回看\u002F回滚）\n> - 从现在开始，**`main` 分支由 AI 托管持续迭代**（功能优化、体验升级、问题修复）\n> - 欢迎大家直接试用 `main` 分支，遇到问题就提 Issue —— 我会让 AI 第一时间跟进修改 👻\n\n![image](https:\u002F\u002Fgithub.com\u002Fuser-attachments\u002Fassets\u002F22ff1592-7836-4f73-aa13-24e9d43d7064)\n\n---\n\n## ✨ 功能特色\n\n### 🎯 核心功能\n- **订阅管理**：添加、编辑、删除各类订阅服务\n- **智能提醒**：自定义提前提醒天数，自动续订计算\n- **农历显示**：支持农历日期显示，可控制开关\n- **状态管理**：订阅启用\u002F停用，过期状态自动识别\n- **财务追踪**：记录订阅费用，完整的支付历史和统计分析\n- **手动续订**：支持自定义金额、周期和备注\n- **仪表盘**：可视化展示月度\u002F年度支出，支出趋势和分类统计\n\n### 📱 多渠道通知\n- **Telegram**：支持 Telegram Bot 通知\n- **NotifyX**：集成 NotifyX 推送服务\n- **Webhook 通知**：支持自定义 Webhook 推送\n- **企业微信机器人**：支持企业微信群机器人通知\n- **邮件通知**：基于 Resend 的邮件服务\n- **Bark**：支持 iOS Bark 推送\n- **Server酱**：支持 Server酱 3 推送\n- **PushPlus**：支持 PushPlus 推送\n\n### 🌙 农历功能\n- **农历转换**：支持 1900-2100 年农历转换\n- **智能显示**：列表和编辑页面可控制农历显示\n- **通知集成**：通知消息中可包含农历信息\n\n### 🎨 用户体验\n- **响应式设计**：适配桌面端和移动端\n- **备注优化**：长备注自动截断，悬停显示完整内容\n- **实时预览**：日期选择时实时显示对应农历\n- **外观风格**：支持浅色模式、深色模式、跟随系统\n\n### 💰 财务管理\n- **订阅金额追踪**：支持多币种记录\n- **汇率换算**：支持动态汇率、固定汇率\n- **智能仪表盘**：\n  - 📊 月度\u002F年度支出统计，环比趋势分析\n  - 💳 活跃订阅数量，月均支出计算\n  - 📅 最近7天支付记录，即将续费提醒\n  - 📈 按类型\u002F分类的支出排行和占比\n- **支付历史管理**：\n  - 📝 完整支付记录，支持编辑\u002F删除\n  - 🕒 精确显示计费周期\n  - 📊 累计支出和支付次数统计\n  - 🔄 删除支付记录时自动回退订阅周期\n- **高级续订功能**：\n  - 💵 自定义续订金额\n  - 📅 选择续订日期（支持回溯）\n  - 🔢 批量续订多个周期\n  - 📝 添加续订备注\n  - 👁️ 实时预览新的到期日期\n\n---\n\n## 🧰 环境准备\n\n### 1) 下载项目到本地（必须）\n\n本项目采用 Wrangler 本地部署模式，不是 Cloudflare Dashboard 直接连接 GitHub 自动部署。\n请先将项目下载到本地：\n\n```bash\ngit clone https:\u002F\u002Fgithub.com\u002Fwangwangit\u002FSubsTracker.git\ncd SubsTracker\n```\n\n> ⚠️ 必须进入包含 **package.json** 的项目目录后才能执行之后的 **npm install**。\n\n### 2) 安装 Node.js \u002F npm\n\n如果你电脑里没有 `npm`：\n\n- 前往官网下载安装：\u003Chttps:\u002F\u002Fnodejs.org\u002F>\n- 推荐安装 LTS 版本（安装后自动包含 npm）\n\n安装后验证：\n\n```bash\nnode -v\nnpm -v\n```\n\n### 3) 获取 Cloudflare API Token\n\n1. 打开 Cloudflare Dashboard → **My Profile** → **API Tokens**\n2. 点击 **Create Token**\n3. **强烈推荐**使用 Edit Cloudflare Workers 模版（Edit Cloudflare Workers）\n4. 权限至少包含：\n   - Workers Scripts: Edit\n   - Workers KV Storage: Edit\n5. Account Resources 选择你的目标账号\n6. 创建后复制 Token\n\n![image-20260227170420115](https:\u002F\u002Fimg.996007.icu\u002Ffile\u002F1772183075773_20260227170427274.png)\n\n> ⚠️ Token 只显示一次，请妥善保存；泄露后请立刻删除重建。\n\n---\n\n## 🚀 部署方式（推荐）\n\n```bash\nnpm install\n# Windows PowerShell:\n$env:CLOUDFLARE_API_TOKEN=\"你的token\"\nnpm run deploy:safe\n```\n\n`deploy:safe` 会自动执行：\n1. `npm run setup`\n   - 检查是否已有 `SUBSCRIPTIONS_KV` \u002F `SUBSCRIPTIONS_KV_PREVIEW`\n   - 若存在则复用原 ID\n   - 若不存在则自动创建\n   - 自动回写 `wrangler.toml`\n2. `npm run deploy`\n   - 执行部署到 Cloudflare Workers\n\n![image-20260227170513582](https:\u002F\u002Fimg.996007.icu\u002Ffile\u002F1772183123590_20260227170513797.png)\n\n如果你是 Windows CMD：\n\n```bat\nset CLOUDFLARE_API_TOKEN=你的token\nnpm run deploy:safe\n```\n\n---\n\n## 🔄 已部署版本升级（保留原数据）\n\n可以直接升级，且会优先复用原 KV：\n\n```bash\ngit pull\nnpm install\n# Windows PowerShell:\n$env:CLOUDFLARE_API_TOKEN=\"你的token\"\nnpm run deploy:safe\n```\n\n如需备份（可选）：\n\n```bash\nnpx wrangler kv key get --binding=SUBSCRIPTIONS_KV --env=\"\" --remote config > backup-config.json\nnpx wrangler kv key get --binding=SUBSCRIPTIONS_KV --env=\"\" --remote subscriptions > backup-subscriptions.json\n```\n\n---\n\n## 🔐 首次部署登录说明\n\n部署完成后，访问你的 Worker 域名：\n\n- 默认用户名：`admin`\n- 默认密码：`password`\n\n首次登录后请立即在系统配置中修改账号密码。\n\n## 忘记密码\n请前往CloudFlare的KV管理页面,修改KV SUBSCRIPTIONS_KV 下面的config中的内容即可!\n\n---\n\n## 🔧 通知渠道配置\n\n### Telegram\n- **Bot Token**: 从 [@BotFather](https:\u002F\u002Ft.me\u002FBotFather) 获取\n- **Chat ID**: 从 [@userinfobot](https:\u002F\u002Ft.me\u002Fuserinfobot) 获取\n\n### NotifyX\n- **API Key**: 从 [NotifyX 官网](https:\u002F\u002Fwww.notifyx.cn\u002F) 获取\n\n### 企业微信机器人\n- **推送 URL**: 参考 [官方文档](https:\u002F\u002Fdeveloper.work.weixin.qq.com\u002Fdocument\u002Fpath\u002F91770) 获取\n\n### Webhook 通知\n- **推送 URL**: 例如 `https:\u002F\u002Fyour-service.com\u002Fhooks\u002Fnotify`\n- 支持自定义请求方法、请求头与消息模板\n- **模板占位符**：`{{title}}`、`{{content}}`、`{{tags}}`、`{{tagsLine}}`、`{{timestamp}}`、`{{formattedMessage}}`\n\n### Bark（iOS 推送）\n- **服务器地址**：默认 `https:\u002F\u002Fapi.day.app`，也可用自建服务器\n- **设备 Key**：在 Bark App 内复制\n- **历史记录**：勾选“保存推送”后可保留推送历史\n\n### Server酱\n- **SendKey**：从 [Server酱官网](https:\u002F\u002Fsct.ftqq.com\u002F) 获取\n- 使用 Server酱 3 接口发送 Markdown 格式通知\n\n### PushPlus\n- **Token**：从 [PushPlus 官网](https:\u002F\u002Fwww.pushplus.plus\u002F) 获取\n- **Topic**：可选，配置后可发送到指定群组\n- **Channel**：可选，可在系统配置中选择默认、微信公众号、邮件、短信或 Webhook 渠道\n\n### 邮件通知 (Resend)\n- **API Key**: 从 [Resend 官方教程](https:\u002F\u002Fdevelopers.cloudflare.com\u002Fworkers\u002Ftutorials\u002Fsend-emails-with-resend\u002F) 获取\n- **发件人邮箱**: 需为 Resend 已验证域名邮箱\n- **收件人邮箱**: 接收通知的邮箱\n\n### 🔔 通知时间与时区说明\n- 后端调度与计算统一使用 **UTC**\n- `notificationHours` 按 **UTC 小时**解释\n- 留空表示全天允许发送\n- 前端页面时间按“当前设备时区”显示\n\n### 🔐 第三方 API 安全调用\n- `POST \u002Fapi\u002Fnotify\u002F{token}` 可触发系统通知\n- 令牌也支持 `Authorization: Bearer \u003Ctoken>` 或 `?token=\u003Ctoken>`\n- 未配置或令牌不匹配时接口会拒绝请求\n\n---\n\n## 🛠 常见问题排查\n\n### `Authentication error [code: 10000]`\n通常是本地 Wrangler 状态\u002F缓存或 Token 权限问题。\n\n可按顺序处理：\n\n```bash\n# PowerShell 重新设置 token\n$env:CLOUDFLARE_API_TOKEN=\"你的token\"\nnpm run deploy:safe\n```\n\n若仍报错，清理本地 Wrangler 缓存后重试：\n\n- Windows: `C:\\Users\\\u003C你的用户名>\\AppData\\Roaming\\xdg.config\\.wrangler\\`\n\n删除目录后，重新设置 token 再执行部署。\n\n---\n\n## 欢迎关注我的公众号\n\n![39d8d5a902fa1eee6cbbbc8a0dcff4b](https:\u002F\u002Fgithub.com\u002Fuser-attachments\u002Fassets\u002F96bae085-4299-4377-9958-9a3a11294efc)\n\n---\n\n## 赞助\n\n本项目 CDN 加速及安全防护由 Tencent EdgeOne 赞助：EdgeOne 提供长期有效的免费套餐，包含不限量流量和请求，覆盖中国大陆节点，且无超额收费。\n\n[[Best Asian CDN, Edge, and Secure Solutions - Tencent EdgeOne](https:\u002F\u002Fedgeone.ai\u002F?from=github)]\n\n[![image](https:\u002F\u002Fedgeone.ai\u002Fmedia\u002F34fe3a45-492d-4ea4-ae5d-ea1087ca7b4b.png)](https:\u002F\u002Fedgeone.ai\u002Fmedia\u002F34fe3a45-492d-4ea4-ae5d-ea1087ca7b4b.png)\n\n---\n\n## 🤝 贡献\n\n欢迎贡献代码、报告问题或提出新功能建议。\n\n## 📜 许可证\n\nMIT License\n\n## Star History\n\n[![Star History Chart](https:\u002F\u002Fapi.star-history.com\u002Fsvg?repos=wangwangit\u002FSubsTracker&type=Date)](https:\u002F\u002Fwww.star-history.com\u002F#wangwangit\u002FSubsTracker&Date)\n","SubsTracker 是一个基于 Cloudflare Workers 的轻量级订阅管理系统，旨在帮助用户轻松跟踪各类订阅服务的到期时间，并通过多种渠道如 Telegram、Webhook 等发送及时提醒。其核心功能包括订阅管理、智能提醒、农历显示、状态管理和财务追踪等，支持多币种记录和动态汇率换算，提供详细的支付历史和统计分析。此外，项目还提供了响应式设计以适应不同设备，并支持浅色模式、深色模式以及跟随系统设置。SubsTracker 适用于需要管理多个订阅服务并希望避免因忘记续订而造成不便的个人或团队，尤其适合那些经常使用在线服务且对财务管理有一定需求的用户。",2,"2026-06-11 03:46:27","high_star"]