Skip to content

v0.27.0

Choose a tag to compare

@deltrivx deltrivx released this 29 Sep 03:53
· 8 commits to main since this release

ToneCore v0.27.0

曲库支持列表 / 小图 / 大图三种显示方式;图标重新设计;主页本地音乐管理补齐(补回被误删的功能)。

变更

1. 曲库支持三种显示方式

列表 / 小图 / 大图,覆盖曲库页两处内容:

  • 云端搜索结果(OnlineSearch)
  • 在线推荐榜单(Library)

三处——主页本地列表、推荐榜单、搜索结果——共用同一个偏好 key tc.home.view。
因为它们本质是同一类内容(封面墙 or 列表),在一处调过显示方式,其余不必再调一遍。

网格视图下的操作按钮(加入队列 / 入库)默认隐藏、hover 浮出,避免小卡片被按钮挤满。

2. 主页本地音乐管理补齐

这里要先说一个我自己的失误:v0.26.0 重写曲库页时,我把单曲详情 /
删除 / 重新刮削整个删掉了,却忘了迁到主页 —— 结果本地歌曲只能播、不能管。
这是功能倒退,本版补回并扩展:

  • 列表行悬停新增「详情」「移入回收站」入口
  • 网格卡片新增常驻「详情」按钮
  • 详情弹窗:封面 / 标题 / 歌手 / 专辑 / 时长 / 格式 / 文件路径,并提供
    播放、加入队列、重新刮削、移入回收站

移动端适配(顺带修的隐性坑):此前操作按钮是 opacity-0 + group-hover 才显形,
但触屏设备没有 hover —— 等于这些功能在手机上根本不存在。
现改为小屏常驻、大屏才收进 hover:

opacity-60 md:opacity-0 md:group-hover:opacity-100

3. 图标重新设计

v0.19.0 之后再没改过,在 Unraid 面板和浏览器标签页的小尺寸下辨识度偏低。

  • 底:深色径向渐变 #2E3846 → #0E1218,深/浅两种主题下都不发灰
  • 声波:由两道弧改为三层同心弧环(青蓝 → 紫渐变),左右严格镜像
    (各以 0° / 180° 为中心 ±35°),语义是「声音由内向外扩散」,小尺寸下层次依然清晰
  • 中心保留发光音符(青蓝竖向渐变),仍是第一眼识别点
  • assets/icon.svg 与 assets/icon.png 已同步

排查记录(避免以后重复踩)

「Unraid 图标是旧版」其实是个误判

我一开始以为是部署没同步或缓存旧版,于是做了 crypto-brute 式的排查。实测结论相反:

位置 md5
仓库 HEAD:assets/icon.png blob 4ba287a6…
/mnt/user/icons/ToneCore.png 4ba287a6…
/var/local/emhttp/…/images/ToneCore-icon.png 4ba287a6…
容器内 /app/public/icon.png 4ba287a6…

四份完全一致,且与仓库当前文件是同一个 blob ——
根本不是缓存问题,而是这个图标自 v0.19.0 起就没再改过。
所以真正该做的是重做设计,清缓存、重新 tag 镜像都是白费功夫。

SVG 弧线端点必须落在圆上

手写 SVG arc 的端点若不落在对应半径的圆上,渲染器会自动缩放弧半径,
结果与 PNG 对不上。我第一版手写端点偏差达 12–26px,弧会明显变形。
现已按 r 与角度重算校验(左弧 145°→215°、右弧 -35°→35°,sweep=1)。

验证

npm run build     ✅ web + server 均通过
npm test          ✅ 15 项全过
悬空引用检查       ✅ 无 recent / home.albums / home.artists / filterBy 残留
package-lock      ✅ 未漂移

未改动(仍是待办)

  • 歌词「提前跑完」:v0.26.0 实测过,跑偏的集中在 online 来源
    (在线按歌名匹配,易命中翻唱版,时间轴天然对不上本地文件)。
    修法是按真实时长校验候选、命中率低就回退本地/内嵌来源,需更多样本验证。
  • 锁屏不显示动态歌词:Media Session API 不提供歌词接口,属浏览器能力边界,
    非 bug —— 专辑图 / 歌名 / 歌手能正常显示即说明该层已通。
  • 酷我(kw)在线搜索封面;音源状态显示口径。