Skip to content

v0.33.1

Choose a tag to compare

@deltrivx deltrivx released this 03 Oct 15:49
· 1 commit to main since this release

ToneCore v0.33.1

修复封面补齐的匹配顺序 bug(先归一化把括号删了,导致「截掉版本后缀」失效),覆盖率 15% → 85~100%。

这是个什么 bug

v0.33.0 里我加了「按主标题匹配」来对齐酷我的版本后缀 —— 例如把
稻香 (完整版|DJ Ray版)、稻 香(堵桥版) 都归一到 稻香,好去匹配网易那边干净的 稻香。

但实现写成了:

const base = (s) => {
  const t = norm(s);          // ← 先归一化
  const i = t.search(/[((]/); // ← 再找括号
  ...
};

norm() 会把 ()() 当标点一并删掉。所以等它执行完,字符串里已经一个括号都没有了,
后面那句 search 永远找不到 —— base() 退回返回整个字符串。

结果:改进写进去了,但完全没生效。

修正

顺序反过来 —— 先截括号,再归一化:

const base = (s) => {
  const raw = String(s || '');
  const i = raw.search(/[((]/);
  return norm(i > 0 ? raw.slice(0, i) : raw);
};

实测覆盖率(同一批真实搜索数据)

关键词 v0.33.0(实际未生效) v0.33.1
稻香 3/20 (15%) 17/20 (85%)
孤勇者 3/20 (15%) 20/20 (100%)
起风了 5/20 (25%) 18/20 (90%)
晴天 7/20 (35%) 17/20 (85%)

(统计口径:一次搜索里,除网易外其它平台曲目中能补到封面的比例。)

教训

v0.33.0 是改完就发、没有验证覆盖率。而新旧逻辑跑出来的数字完全一样(都是 15%)
——这种「改了等于没改」,只有拿真实数据做前后对比才能发现。

这次补了验证:用 4 个关键词各 20 首真实数据跑新旧对照,确认提升后才发。

验证

npm run build   ✅ server 通过
npm test        ✅ 15 项全过
package-lock    ✅ 未漂移

需要你实测

搜一首歌(比如「稻香」),看酷我那组结果是不是几乎都有封面了 ——
此前是清一色灰度占位方块。

待办

  • 音源状态显示口径
  • 锁屏动态歌词:浏览器能力边界,做不到