Commit Graph

53 Commits

Author SHA1 Message Date
38097da994 v0.3.52: Retry creates subfolder inside daily folder for new share link, preserving folder structure v0.3.52 2026-05-18 01:48:05 +08:00
94d8fa455d v0.3.51: Fix broken seed, retry save with random suffix folder for new share link v0.3.51 2026-05-18 01:38:10 +08:00
9f959ca87b v0.3.50: Retry save creates new folder with random suffix to produce genuinely different share link v0.3.50 2026-05-18 01:24:37 +08:00
7f4ab50557 v0.3.49: Dedup validation — validate cached link before returning to avoid showing invalid links v0.3.49 2026-05-18 01:06:28 +08:00
e4e3884ffc fix: 转存记录时间列155px+推广账号列140px,避免截断 2026-05-17 23:19:52 +08:00
a609379d20 v0.3.41 2026-05-17 23:12:50 +08:00
d78412646e v0.3.41: save_records新增推广账号/promotion_account字段 2026-05-17 23:12:46 +08:00
7e22c879b9 v0.3.40: 6组累积修复 — cookie解密/rename模块/通知模板/IP归属地 v0.3.40 2026-05-17 23:04:00 +08:00
879d5bea95 refactor: IP归属地改为apihz.cn id+key配置,后端测试修复验证条件 2026-05-17 23:02:16 +08:00
8333d203db fix: applyTemplate用??替代||避免空字符串被回退为占位符 2026-05-17 22:46:00 +08:00
a51ffb4de3 fix: notifyEvent二次应用模板冲掉已替换变量 → 传递templateVars 2026-05-17 22:43:32 +08:00
1080c530a7 fix: 恢复丢失的 HOMOPHONE_MAP 同音字映射表 (从 v0.2.4) 2026-05-17 22:22:15 +08:00
b22cddc7f7 fix: quark-rename.js 缺少 crypto import 2026-05-17 22:14:48 +08:00
98b779a622 fix: getAndValidateCredential 返回加密cookie导致夸克API 401 2026-05-17 22:11:05 +08:00
cf2796666d v0.3.34: 每日汇报增加推送通道选择UI 2026-05-17 21:52:37 +08:00
17b40cea7b docs: 添加 README、Release 模板、docker-compose 编排、构建发布脚本 v0.3.32 2026-05-17 20:05:45 +08:00
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
063fa6b065 v0.3.29: 推送用户改为单一渠道+参数输入 — 选频道后显示 webhook/ token 等输入框,列表显示渠道摘要 2026-05-17 19:18:52 +08:00
26b579717c v0.3.28: 消息模板改为弹窗编辑 — 每个事件开关旁加✏️按钮,点击弹窗编辑标题和内容,变量带中文说明 2026-05-17 19:09:16 +08:00
4131ccece9 v0.3.27: 全局事件开关下展示自定义消息模板,支持编辑标题和内容 2026-05-17 18:49:15 +08:00
71990554c4 v0.3.26: 保存配置按钮改为 sticky 定位,不再遮挡底部内容 2026-05-17 18:41:55 +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
ad186431dd v0.3.16: 消息推送模版功能恢复 + global-config API
- 写入global_notify_config系统配置(含3个事件的默认模版)
- 新增GET/PUT /api/admin/notify/global-config端点
- notification.service导出getGlobalNotifyConfig/getEventTemplates
- 模版支持{variable}变量替换: cloud_type/nickname/file_name/file_size/duration等
2026-05-17 16:20:01 +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
514922f21a v0.3.9: 替换占位图标为原始高清云盘图标 2026-05-17 13:42:41 +08:00
25ad1802dc v0.3.8: 修复网盘图标(icons/)未包含在Vite构建产物中 2026-05-17 13:34:59 +08:00
8cd4dabb60 v0.3.7: 恢复前端Vue源码 + 修复AdminDashboard 401根源 2026-05-17 13:26:36 +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
e57298471a v0.3.1-hotfix: 修复 AdminDashboard TDZ 错误 (x 声明提升)
- 问题: qu(()=>x.value) 在 const x=Ce("dashboard") 之前调用
- 修复: 将 const x 声明提升到 setup() 顶部
2026-05-17 03:58:46 +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
476a7d458a fix: compose镜像标签同步至v0.3.0 2026-05-17 02:55:38 +08:00
1c5deb08f6 v0.3.0: 容器内版本号同步至0.3.0 2026-05-17 02:53:35 +08:00
9a1e16d31c v0.3.0: 管理后台UI全面美化
- 全新玻璃拟态设计(Glassmorphism)
- 渐变背景+模糊效果
- 统计面板集成(今日搜索/转存/总计)
- 功能卡片悬停动画+状态指示条
- 滑块开关带发光效果
- Toast通知动画优化
- 完全响应式适配移动端
2026-05-17 02:50:10 +08:00