Releases: doc2page/mcard
Releases · doc2page/mcard
Release list
v1.5.0 — 定向开关 + 机制卡细分 + 探测入库
✨ 新功能
- 🎚️ 定向搜索启用开关 —— 「定向搜索」标签前的复选框:取消勾选 = 暂时回到常规市场(词条全部保留,重新勾选即恢复);状态存后端(跨设备同步),刷新不丢
- 🧩 机制卡筛选拆三细分 —— 持有 / 挂单 / 交易三 view 的「机制卡」筛选拆为魔力符券 / 置顶免费符 / VIP七日符独立 chips(多选叠加)
- 📥 探测层 orders 顺手入库 —— 打开页面的挂单轻探拉取的最新一页直接合并入库(原用完即弃):侧栏挂单计数刷新即准确;进 view 冷却跳过时也显示新数据
🐛 修复
- 定向搜索合并去重丢失同款多价挂单(只显示价格高的那张)
- 定向模式购买被常规市场阈值模板拦截(改为词条自身价格门,所见即所得)
- 定向搜索购买后结果不刷新(runSearch 支持强制刷新绕节流)
- 搜索慢返回时结果写进挂单等其它 view 的渲染竞态
🔧 工程
- Dockerfile 同层清 npm 缓存 + better-sqlite3 编译中间产物(镜像稳定最小);push 前硬性双检(镜像可跑 + node_modules ~19MB)
🐳 镜像:doc2page/mcard:1.5.0(amd64)
变更对比:v1.4.1...v1.5.0
v1.4.1 — 卡册一键锁 + view 独立滚动
✨ 新功能
- 🔒 卡册一键锁 —— 我的卡册每张卡 poster 左上角锁按钮:一键锁定每稀有度未挂单中称号最高的一张(同档低称号旧锁自动换代升级);全锁态一键解锁全部(含手动锁定);锁操作局部更新零跳动(不重绘不跳位);矩阵左格主题色描边直观显示锁定分布;全挂单影片隐藏锁图标(语义清晰);悬浮提示按状态说明
- 🔄 view 独立滚动 —— 各视图(市场/持有/卡册等)滚动位置互不干扰,切换保存/恢复
🐛 修复
- 定向搜索只显示同款高价挂单:合并去重 key 补 title + lowestAsk(粗三元组曾把同片同稀有度多价挂单压成一张)
- 定向搜索购买被常规阈值拦截:定向模式所见即所得——不受市场阈值模板限制,改用词条自身的每档最大价
- 定向搜索购买后结果不刷新:runSearch 支持 force 绕 2s 节流,买到的卡即从结果消失
- 卡册锁反复点击失效(闭包聚合快照过期)、单稀有度全挂单误判解锁态
🐳 镜像:doc2page/mcard:1.4.1(amd64)
变更对比:v1.4.0...v1.4.1
v1.4.0 — 定向搜索筛选 + 挂买管理
✨ 新功能
- 🎯 定向搜索词条筛选(核心新能力)—— 每个词条支持勾选稀有度 / 称号 + 每档最大价(都不勾 = 全要);
+新增与词条✎编辑共用模态;多词条各自条件互不干扰;胶囊按词条稳定随机配色(深浅主题各配 8 色) - 🗂️ 我的卡册 × 定向搜索联动 —— 卡册放大镜弹词条模态:片名自动锁定、稀有度默认勾选该影片未拥有的档(补缺导向);已设词条的卡图标变编辑铅笔
- 💰 挂买管理补全 —— 挂买单改价(撤单 + 纯限价重挂,open 即挂上不撤;市场有更低价直接成交);改价模态提交期间按钮 loading 禁关;挂单 view 新增挂买/挂卖互斥筛选按钮
- 🔖 侧栏版本行 —— 当前版本 + 最新版本(GitHub releases 实时读取,失败直说);有新版金色高亮,点击打开 release 页;中英实时切换
🐛 修复
- 持有采集 >200 张漏尾:inventory 单页 200 上限导致持有超 200 张后尾页永远拉不到(变化角标去不掉的根因),改翻页拿全
- 定向搜索渲染竞态:搜索慢返回时结果会写进挂单等其它 view 的卡片网格,加 view 守卫
- 变化角标简化:撤实时层(5s 闪现),只保留打开页面探测的持久角标——避免进 view 后采集冷却跳过导致的重复提醒
- 构建修复:npm 依赖装切 npmmirror 镜像(官方源在部分代理/网络下不稳定曾致构建卡死)
🐳 镜像:doc2page/mcard:1.4.0(amd64)
变更对比:v1.3.0...v1.4.0
v1.3.0 — 兑换机制符 + 变化角标
✨ 新功能
- ♻️ 普通卡兑换机制符(10 换 1) —— 持有页兑换统计卡:各配方自动统计可兑数量(剔除手动锁定);点选进入兑换模式,一键自动选称号最低的 10 张(可手动增删,恰好 10 张封顶);确认模态二次确认 + 前后端双重校验(10 个不同 cardId、稀有度匹配、未锁定);已兑换历史统计卡。配方:10×N → 魔力符 / 10×SR → 置顶免费符 / 10×UR → VIP 符
- 🔔 变化角标 —— 打开页面轻量探测各数据变动(5 个小请求拿 total / 数新增记录,不写库,8s 冷却),侧栏按钮红色数字角标提醒,进 view 即清;页面内刷新出新变化闪现 5s 角标;因角标进入的首次变化不重复提醒;移动端抽屉收起时汉堡按钮红点汇总提醒
- 💰 批量卖出/改价单框双态 —— 输入框聚焦显示净卖价可编辑,移开即显示挂单价(净×1.05)确认;顶部按稀有度/称号批量设价后各行直接显示挂单价
🐛 修复
- 持有 view 称号过滤对机制卡生效(机制卡固定傳火称号,此前缺映射导致点任何称号机制卡都出现)
- 兑换模式:冷却中的卡可选且显示选中态(官方允许冷却卡兑换);浮动面板常驻不收起
🐳 镜像:doc2page/mcard:1.3.0(amd64)
变更对比:v1.2.2...v1.3.0
v1.2.2 — 移动端预算面板重排
🐛 修复(移动端)
- 预算魔力池面板重排:移动端(≤944px)顶栏预算卡片隐藏(此前 300px 悬浮卡会遮盖顶栏品牌与按钮),改为市场页工具行右侧紧凑版——仅市场 view 显示,未设预算自动隐藏
- 数字用 K/M/B 紧凑格式(保 2 位小数,如
3.53M / 3.6M),窄屏不溢出 - 进度条分级配色(≥60% 绿 / ≥20% 金 / 低红,渐变+辉光)与桌面端一致
- 数字用 K/M/B 紧凑格式(保 2 位小数,如
- 桌面端顶栏预算卡片不受影响
🐳 镜像:doc2page/mcard:1.2.2(amd64)
变更对比:v1.2.1...v1.2.2
v1.2.1 — 产品级加固
⚠️ 升级必读(部署行为变更)
- 容器改为非 root 运行(
node, uid 1000)。若宿主./data目录属主不是 uid 1000(群晖等 NAS 常见),升级后首次启动前执行一次:sudo chown -R 1000:1000 ./data,否则数据无法写入
🐳 Docker 产品级加固
- 优雅退出:
docker stop/restart时正确处理 SIGTERM——停止接新连接、SQLite WAL 落盘后退出(消除强制终止的数据库损坏风险) - 健康检查:镜像内置
HEALTHCHECK(/health 探活,30s 间隔),docker ps可见 healthy 状态 - 资源与日志限制:compose 默认 cpus 1.0 / mem 512M / 日志 10M×3(防长期运行日志吃满磁盘)
🔒 健壮性
- 数据并发保护:掉落统计双写源(采集增量 + 手动导入)改原子读改写(
state.mutate),并发时不再丢更新 - SSE 心跳:30s 心跳防 NAT/反向代理静默掐断长连接(半开连接会静默丢推送)
- 前端请求超时:所有 API 请求 30s 超时(防无限挂起)
- 批量购买前置校验:未设预算池 / 可用额度不足时直接 toast(带行动指引与金额明细),不再打开模态
📖 文档
- README 中英新增:数据备份与恢复(热备/稳备/损坏重建)、升级与回滚、安全注意事项(HTTP 明文警示 + Caddy 反代配置)、FAQ 五类排查
♿ 体验
- 对比度达 WCAG AA(次级文字双主题提亮);模态焦点管理(打开聚焦、关闭归还触发元素);toast 读屏可感知(aria-live);错误文案附行动指引(余额/预算/令牌)
- 持有卡片「锁定中」更名「冷却中」(与手动锁定区分概念,中英)
🐳 镜像:doc2page/mcard:1.2.1(amd64)
变更对比:v1.2.0...v1.2.1
v1.2.0 — 手动刷新 + 启动揭幕
✨ 新功能
- 🔄 市场手动刷新按钮 —— 市场页工具行一键刷新,刷新中按钮同步旋转;所有刷新路径(切回市场 / 买入后 / 改分页等)状态一目了然。8s 冷却节流,连点只刷一次
- 🎬 启动揭幕(开箱抽卡) —— 打开页面播一段开箱仪式:卡背 3D 翻面 → SSR 白闪 → 金色流光环 → MCard 金字扫光 → 冲屏揭幕。登录成功后完整仪式 ~2.8s,平时打开 ~1.3s,可点击跳过
🐛 修复
- 我的卡册排序:稀有度种数相同时按档位加权排(UR 30 > SSR 10 > SR 5 > R 3 > N 1,与掉落统计/用户画像同源),再按称号加权(薪王 > 殘焰 > 星火 > 薪火 > 傳火)
- 启动揭幕扫光溢出(卡片左侧斜白块)
- 价格阈值模态移动端稀有度输入框溢出
🔒 加固
- 购买、撤单/改价加单飞锁:连点防双买、防重复撤挂
- 定向搜索 2s 节流(反风控:防连发打搜索接口)
🐳 镜像:doc2page/mcard:1.2.0(amd64)
变更对比:v1.1.0...v1.2.0
v1.1.0 — 我的卡册
✨ 新功能
- 📚 我的卡册 —— 按影片聚合稀有度/称号的收藏册视图:
- 数据:持有卡片 + 当前挂单(open sell)合并统计,按影片聚合,机制卡不计入;排序 = 稀有度种数 → 称号加权分(薪王 > 殘焰 > 星火 > 薪火 > 傳火,每称号只计一次)→ 片名
- 反色收藏卡设计:卡片背景取系统主题反色(深色模式=浅卡、浅色模式=深卡);poster 与市场卡同规格;片名大字顶对齐;5 行稀有度均匀分布;双线框稀有度徽章;5 称号固定列 × 双格矩阵(左=持有(墨绿)右=挂单(金)),无卡稀有度行/无称号组统一暗淡——亮=有、暗=无,一眼看清收集进度
- 快捷入口:卡片右上角放大镜一键把片名加入市场定向搜索(不跳转页面,重复添加有提示)
- 性能:数据签名防重绘(SSE 高频更新不重建)、大列表 rAF 分片渲染、图片滚出视口自动卸载(内存平稳)、屏外卡片跳过渲染
🐛 修复
- 切换语言时卡册图例文案实时跟随(此前需重新进入页面)
🐳 镜像:doc2page/mcard:1.1.0(amd64)
变更对比:v1.0.2...v1.1.0
v1.0.2
🐛 修复
- 掉落统计日界时区错误:容器跑在 UTC,掉落柱状图按 UTC 划分日界,导致北京凌晨(UTC 仍为前一天)掉的卡不计入"今天"的柱子——北京凌晨 0~8 点掉卡当天柱子不显示。已修复:日界改按容器时区(默认
Asia/Shanghai,可在.env设TZ=自定义,如TZ=UTC)。
🔧 改进
- 镜像装
tzdata+ENV TZ=Asia/Shanghai;docker-compose.yml加TZ: ${TZ:-Asia/Shanghai},用户可按所在时区配置。
🐳 镜像:doc2page/mcard:1.0.2(amd64)
变更对比:v1.0.1...v1.0.2
v1.0.1
🐛 修复
- 市场批量购买可选中自己的挂单:市场页里同款同价为本人挂单的卡,单卡购买按钮早已灰显,但批量购买仍能勾选——已修复。批量模式下这类卡不可选(隐藏勾选框 + 点击提示「这是你自己的挂单」),与单卡购买灰显一致,彻底堵住自买路径。
🐳 镜像:doc2page/mcard:1.0.1(amd64)
变更对比:v1.0.0...v1.0.1