Repository navigation
Releases
Releases · LLYlab/DBS
DBS v0.1.0
Changelog
All notable changes to DBS (dsh-bgm-service) are documented here.
[0.1.0] — 2026-09-18
首个发布版本(此前以本地 junction 方式接入 DSH profile)。
功能
- 本地音乐库:扫描
musicDir/musicDirs下的.mp3/.flac/.wav/.m4a/.aac/.ogg/.opus/.webm;文件名按艺术家 - 标题解析曲目 / 艺术家 / 标签。 - 添加本地文件:播放器歌单「+添加本地」上传进音乐库(
POST /dbs/upload)。 - 浮动播放器(左下角):播放/暂停/上下首/音量/进度条;点标题展开歌单;播放结束自动下一首;音频流走宿主
GET /dbs/stream/<id>(支持 Range 拖动)。 - 最小化:标题栏「—」收成 38px 圆球,可继续拖动、点击还原、播放中变色。
- AI 依据任务控制播放:模型工具
bgm_list/bgm_play/bgm_play_auto/bgm_next/bgm_prev/bgm_pause/bgm_stop/bgm_set_volume;命令队列由播放器轮询执行;可选autoLink自动联动。 - 网络下载入库:
dbsDownload(url),带 SSRF 校验(禁私网/环回/元数据)与大小上限。 - 乐评抓取(尽力而为):
dbsReview(query),按查询词缓存,默认源为豆瓣音乐「简介」。
安全与健壮性加固(2026-09-08 审计)
fetchGuarded():手动逐跳跟随重定向,每一跳都复验私网 / 环回 / 元数据,最多 5 跳(修复"302 指向内网绕过 SSRF 校验")。- 两处
fetch统一加 15sAbortSignal超时。 - 下载改为先看
Content-Length再流式读取并按上限截断(原先整体读入内存再判大小,可被超大响应撑爆内存)。 dbsList等待首次扫描 Promise +_ensureScanned(30s)新鲜度与并发去重(修复刚打开时曲库为空)。bgm_list由只返回count改为返回曲目列表(id/title/artist/tags,默认 40、上限 200)。pickFor改为关键词命中优先(标题 5 / 标签 4 / 艺术家 3),修复"标签多但与 query 无关"的曲子总胜出。- 客户端
useDbs每次传新的浅拷贝(修复 ReactObject.isbail out 导致播放器 UI 永不刷新)。 - 播放器拖动改为写入坐标时一并
bottom:auto;right:auto(修复拖完被纵向拉伸)+ 3px 拖动阈值。 decodeURIComponent畸形%转义兜底;删除死代码fsPath()。
发布说明
- 包名从
dbs改为dsh-bgm-service:npm 上的dbs已被 2014 年的无关包占用(charliedowler/dbs),无法发布。 - 命名与
dsh-essential-tools(DET)、dsh-light-tool(DLT)保持一致。 - 本地开发可用 junction 接入(见 README);正式接入改为 npm 安装。