24 Commits

Author SHA1 Message Date
389df53d2d v0.3.31: 全局配置保留title/content仅移除level/priority;推送用户SMTP只显示收件人 2026-05-17 19:37:52 +08:00
4c46685d1f v0.3.30: 清理notifier参数 — 移除title/content/level/priority,标题内容由消息模板统一管理 2026-05-17 19:29:05 +08:00
0bc848e196 v0.3.25: 外部依赖内置化 — qrcodejs/Hitokoto/IPgeo/代理测试 2026-05-17 18:31:23 +08:00
32dcc44524 v0.3.24: 清理设置4个后端接线 — 白名单/cookie检测/空间校准开关
补全前端4个控制项的后端实现:
- cleanup_whitelist_dirs → cleanupCloudFiles + cleanupAllBySpaceThreshold 读取并传递
- cleanup_auto_refresh_storage → scheduleStorageRefresh 读取开关,false时跳过
- cleanup_verify_enabled + cleanup_verify_interval → 新增Cookie验证调度器
- CloudCleanupDriver 接口 + baidu.driver 签名同步支持 whitelistDirs 可选参数

验证: 4个key从仅前端 → 全部有后端读取模块
2026-05-17 18:10:12 +08:00
1fd64e0788 v0.3.23: 去重 — 删除重复模块,统一为单一实现+调用
修复的重复:
- 删除 src/utils/qr-login.service.ts(与 src/cloud/ 完全一致)
- qr-login.service.ts 本地 formatBytes → import { formatBytes } from quark-api
- daily-report.service.ts 本地 CLOUD_LABELS → import from cloud-constants
- 新增 cloudLabel() 本地映射(短标签 vs cloud-constants 全名)

确认无其他重复: 文件级(utils vs cloud)、函数级(export function)、字节解析
2026-05-17 17:59:23 +08:00
f9338e5906 v0.3.22: 存储刷新改用 /member API 秒级精准获取,删除文件遍历
根因: /1/clouddrive/capacity/detail 只返回总容量不含已用空间。
      之前的方案遍历所有文件计算已用空间,根目录估算只有 2.38 GB,
      全量遍历走后台回调但不被 refreshAllStorageInfo 接收。

修复: 发现 /1/clouddrive/member API 直接返回 use_capacity + total_capacity。
      getStorageInfoQuick/getStorageInfo 统一改为 member API 单次调用,
      返回 2.76 TB / 6 TB 精准值。删除昂贵的文件遍历逻辑。
      refreshAllStorageInfo 移除后台回调复杂度
2026-05-17 17:52:06 +08:00
d87bc6fd5a v0.3.21: 修复存储空间自动刷新不生效
根因:
1. refreshAllStorageInfo 只过滤 quark, 百度等其他网盘永远不会刷新
2. 主调度器硬编码 60 分钟, 未读取 storage_refresh_interval 配置(用户设的180分钟)
3. 条件检查用 totalBytes/usedBytes, 百度返回对象无此字段 → 永远跳过

修复:
- refreshAllStorageInfo: 改为驱动注册表模式, 支持 quark+baidu, 兼容不同驱动返回格式
- main.ts: 用 setTimeout 链替代 setInterval, 每次动态读 storage_refresh_interval, 修改后无需重启即生效
2026-05-17 17:26:45 +08:00
0e0cad1271 v0.3.20: 每日汇报系统 — 每天8点自动收集前一日数据并推送汇总报告
新增:
- src/services/daily-report.service.ts (核心服务: 数据收集/报告生成/格式化/调度器)
- API: GET/PUT daily-report/config, GET daily-report/preview, POST daily-report/test, GET daily-report/last-run
- 前端: 侧边栏"📊 每日汇报"菜单 + SystemConfig.vue 配置面板(时间/内容开关/预览/测试发送)
- main.ts: 每60秒检查调度, 08:00-08:04 窗口内运行

报告内容: 搜索统计/转存统计(成功率)/各网盘容量和活跃状态/用户数
2026-05-17 17:10:39 +08:00
95df193e26 v0.3.18: 消息模版API + global-config端点 2026-05-17 16:41:46 +08:00
e1931cdee6 v0.3.15: SELECT补全cloud_type_uid和promotion_account 2026-05-17 16:01:50 +08:00
ea03ff2203 v0.3.14: cookie_uid/空间修复 + checkin/cleanup统一走getter解密
修复:
- testCloudConnection: 验证成功后更新cookie_uid和storageUsed
- 5个getter SELECT添加cookie_uid列
- checkin.service: dailyCheckIn改用getCloudConfigById(自带解密)
- cleanup.service: getActiveCleanupConfigs改用getActiveCloudConfigs(自带解密)
- checkin/cleanup不再直接查DB绕开解密
2026-05-17 15:49:43 +08:00
eebf4b6c97 v0.3.13: Cookie解密修复 + 配置统一化
修复:
- credential.service.ts: 5个getter函数统一解密cookie (解决夸克连接失败)
- decryptCookie从extractCookieUid嵌套作用域提到模块顶层
- testCloudConnection/getAndValidateCredential添加解密调用
- 去掉docker run的COOKIE_ENCRYPTION_KEY(回退默认key与旧数据一致)

配置统一化:
- config/index.ts新增: corsOrigin/cookieEncryptionKey/logLevel/appVersionFile/uploadDir
- main.ts: CORS_ORIGIN/REDIS_URL/uploads改用config而非raw process.env
- middleware/cache.ts: REDIS_URL改用config
- docker-compose.env: 完整环境变量模板(18个变量)
2026-05-17 15:07:38 +08:00
1e0d408dd2 v0.3.12: 统一环境变量管理 + 去重
- CHROMIUM_PATH 从3处散落移到 config/index.ts 统一管理
- startup-validator 移除冗余 CORS_ORIGIN 检查 (main.ts 已处理)
- docker run 补充 JWT_SECRET/ADMIN_PASSWORD/COOKIE_ENCRYPTION_KEY
- 云盘常量统一到 cloud-constants.ts (图标/标签/颜色)
2026-05-17 14:13:51 +08:00
77a8c5126f v0.3.11: 统一云盘常量到 cloud-constants.ts (图标/标签/颜色) 2026-05-17 14:10:39 +08:00
7d2d883b81 v0.3.10: cloud-types API 图标从内联SVG改为PNG路径 /icons/xxx.png 2026-05-17 14:02:21 +08:00
09be4c307e v0.3.6: 恢复丢失的11个模块 + 接线基础设施
恢复内容:
- quark驱动拆解为7个子模块 (quark-api/auth/share/storage/cleanup/rename/ad-cleanup)
- 工具模块: utils/crypto, utils/logger, utils/proxy-agent
- 配置校验: config/startup-validator
- 接线: main.ts(checkStartup), credential.service.ts(加密Cookie), admin.routes.ts(代理测试)
- quark.driver.ts 从1533行巨兽瘦身到130行壳子
2026-05-17 06:05:47 +08:00
64b00661a2 v0.3.5: restore full push notification system (14 channels)
Restored from v0.2.4:
- notifiers/: 14 push channels (bark/serverchan/telegram/lark/webhook/wechat/discord/smtp/...)
- push-user.service.ts: multi-user push config linked to cloud_configs.promotion_account
- notification.service.ts: full dispatcher with per-config + global fallback

New integrations:
- cloud.service.ts: notifyConfigEvent on save_success/cookie_expire/save_fail
- admin.routes.ts: 7 new API endpoints for push users, notify providers, channel test
- database.ts: migration for cloud_configs.notify_config column

How it works:
- Configure push channels in /admin/system-configs (global_notify_config JSON)
- Or per-cloud: link push_users.account = cloud_configs.promotion_account
- Notify events: save_success (green), cookie_expire (red), save_fail >=3 consecutive (yellow)
2026-05-17 05:15:26 +08:00
29e0fcbd43 v0.3.4: redis_status returns Chinese labels for frontend color
- db-status endpoint: redis_status returns 已连接/未连接/错误 instead of English
- Frontend compares k.redis_status === "已连接" → green text-success badge
- English connected was not matching, always showed yellow text-warning
2026-05-17 04:40:53 +08:00
b852d9577a v0.3.3: fix db_size N/A + fix test-redis missing await
- db-status endpoint: fallback to config.dbPath when system_config db_path is empty
- test-redis endpoint: handler wasnt async, causing Promise serialization to {} instead of result
- Both endpoint handlers now properly async with await
2026-05-17 04:31:14 +08:00
9a4751692f v0.3.2: fix 401 on save-records fetch + fix 429 rate limiter behind proxy
- AdminDashboard: M() now sends admin_token from localStorage with fetch
- rate-limit: keyGenerator uses req.ip instead of req.socket.remoteAddress
  (Express trust proxy reads X-Forwarded-For for real client IP)
- main.ts: moved global rateLimiter after express.static so static files
  (JS/CSS/admin page/favicon) are never rate-limited
2026-05-17 04:20:30 +08:00
3d6add4636 v0.3.1: 修复仪表盘缓存问题 + 版本号同步
- 修复: admin.html 无缓存, /assets/ immutable + 1年缓存
- 修复: 清理过期 index-Bz21yOih.js 残留文件
- 版本: VERSION → 0.3.1 (唯一来源)
2026-05-17 03:44:43 +08:00
d5aa799acc v0.3.1: 版本号架构重构 — VERSION为唯一真相来源
- 新增 src/version.ts: 从文件读取版本(APP_VERSION_FILE → /app/VERSION)
- main.ts 改为 import { VERSION } from './version'(不再读 package.json)
- Dockerfile 构建时 COPY VERSION 到 /app/VERSION
- 新增 build.sh: 一键读取VERSION→构建→打标签
- docker-compose.yml: 清理重复/损坏内容, 添加 pansou network-alias
- package.json version 设为 0.0.0 (不再作为真相来源)
- 清理 .env 和 compose 注释中的过期版本号
2026-05-17 03:26:00 +08:00
96b989ec25 v0.2.8: XSS净化 + 速率限制修复
- 搜索关键词存储前HTML标签剥离
- 速率限制keyGenerator改用getClientIP(读X-Forwarded-For)
- 搜索限流从150/min降至60/min
- 清理数据库中历史XSS条目
2026-05-17 02:32:48 +08:00
83cbfaf03f v0.2.7: 修复Redis连接 + 启动管理后台
- 修复Redis认证 (配置密码)
- 启动Python管理后台 (端口9531, 15个功能开关)
- 统一版本号 0.2.7
- 更新docker-compose.yml (镜像版本/Redis URL/Admin服务)
2026-05-17 02:22:18 +08:00