alger
|
b0b3eb3326
|
ci: 移除 PR 检查中已删除的 dev_electron 分支
|
2026-04-11 22:53:17 +08:00 |
|
alger
|
4a50886a68
|
ci: 添加 PR 提交规范检查和 commitlint
- 添加 commitlint 及 Conventional Commits 规范配置
- 添加 commit-msg husky hook 本地校验提交信息
- 添加 GitHub Actions PR 检查 workflow:
- PR 标题符合 Conventional Commits
- 所有 commit message 符合规范
- ESLint + TypeScript 类型检查 + i18n 检查
|
2026-04-11 22:50:20 +08:00 |
|
Alger
|
f9222b699d
|
Merge pull request #644 from algerkong/fix/mpris-review-643
fix(mpris): 修复 MPRIS 模块多项安全和性能问题
|
2026-04-11 22:44:38 +08:00 |
|
alger
|
030a1f1c85
|
fix(mpris): 修复 MPRIS 模块多项安全和性能问题
- 将 fix-sandbox.js 从 postinstall 移除,避免 npm install 时执行 sudo
- 修复 play/pause/stop 事件语义错误,不再全部映射到 togglePlay
- 缓存平台信息避免 sendSync 阻塞渲染进程
- 修复 cleanupAppShortcuts 中缺少 MPRIS 监听器清理导致的事件泄漏
- destroyMpris 中添加 IPC 监听器清理
- 清理冗余调试日志,安全加载 dbus-native 模块
- 添加 mpris-service 类型声明解决跨平台类型检查问题
|
2026-04-11 22:37:26 +08:00 |
|
stark81
|
3f31278131
|
fix-sandbox
|
2026-04-11 16:01:06 +08:00 |
|
alger
|
33fc4f768c
|
1. 实现linux下的mpris和gnome状态栏歌词功能
|
2026-04-11 15:45:14 +08:00 |
|
alger
|
8e3e4e610c
|
fix(pwa): 修复 manifest.json 未被引用导致浏览器无法识别 PWA (#640)
在 index.html 中添加 manifest 引用,并补全 PWA 必需字段
|
2026-04-10 23:27:19 +08:00 |
|
alger
|
03b52cd6e2
|
fix(audio): 移除不必要的麦克风权限请求 (#639)
枚举音频输出设备时不再调用 getUserMedia,避免安全软件误报
|
2026-04-10 23:27:12 +08:00 |
|
4everWZ
|
8726af556a
|
perf: 长列表渐进式渲染优化与播放栏遮挡修复 (#589)
- 新增 useProgressiveRender composable,提取手工虚拟化逻辑(renderLimit + placeholderHeight)
- FavoritePage/DownloadPage 使用 composable 实现渐进式渲染,避免大量 DOM 一次性渲染
- MusicListPage 初始加载扩大至 200 首,工具栏按钮添加 n-tooltip,新增回到顶部按钮
- 播放栏动态底部间距替代 PlayBottom 组件,修复播放时列表底部被遮挡
- 下载页无下载任务时自动切换到已下载 tab
- i18n: 添加 scrollToTop/compactLayout/normalLayout 翻译(5 种语言)
Inspired-By: https://github.com/algerkong/AlgerMusicPlayer/pull/589
|
2026-04-10 23:26:34 +08:00 |
|
Vanilla-puree
|
0ab784024c
|
feat(download): 新增未保存下载设置时的确认对话框 (#507)
- feat(download): 关闭下载设置抽屉时检测未保存更改,提供取消/放弃/保存选项
- fix: 自动播放首次暂停无法暂停,移除不必要的 isFirstPlay 检查
- fix: 歌手详情路由添加 props key,修复跳转歌手详情不生效问题
- i18n: 添加 download.save.* 翻译(5 种语言)
Co-Authored-By: 心妄 <1661272893@qq.com>
|
2026-04-10 23:26:33 +08:00 |
|
alger
|
ad2df12957
|
fix(core): 修复事件监听器泄漏
- App.vue: offline 监听器添加 onUnmounted 清理,移除冗余 console.log
- MusicHook.ts: document.onkeyup 直接赋值改为 addEventListener + 防重复
- MusicHook.ts: audio-ready 监听器提取为命名函数,先移除再注册防堆叠
|
2026-04-10 23:26:33 +08:00 |
|
alger
|
a407045527
|
fix(player): 修复迷你模式恢复后歌词页面空白偏移
迷你播放栏的 togglePlaylist 设置 document.body.style.height='64px'
和 overflow='hidden',恢复主窗口时未清理,导致歌词 drawer 高度被限制。
在 mini-mode 事件处理中添加 body 样式重置。
|
2026-04-10 23:26:33 +08:00 |
|
alger
|
38723165a0
|
refactor(player): 提取播放栏共享逻辑为 composable
- 新增 useVolumeControl:统一音量管理(volumeSlider、mute、滚轮调节)
- 新增 useFavorite:收藏状态与切换
- 新增 usePlaybackControl:播放/暂停、上/下一首
- PlayBar、MiniPlayBar、SimplePlayBar、MobilePlayBar 使用新 composable
- 修复音量存储不一致:MiniPlayBar/SimplePlayBar 原先绕过 playerStore 直接操作 localStorage
|
2026-04-10 23:26:33 +08:00 |
|
alger
|
042b8ba6f8
|
fix(i18n): 补充 player.autoResumed/resumeFailed 翻译(5 种语言)
|
2026-03-29 13:20:45 +08:00 |
|
alger
|
eb801cfbfd
|
style(ui): 桌面端 message 毛玻璃样式,本地音乐页面全页滚动优化
- message 提示适配项目设计:全圆角、backdrop-blur、半透明背景、深色/浅色模式
- 本地音乐页面:hero 缩小可滚出、action bar 吸顶、歌曲列表跟随全页滚动
- 顺序播放到最后一首:用户点下一首保持播放仅提示,自然播完才停止
- i18n 新增 playListEnded(5 种语言)
|
2026-03-29 13:18:56 +08:00 |
|
alger
|
0cfec3dd82
|
refactor(player): 重构播放控制系统,移除 Howler.js 改用原生 HTMLAudioElement
- 新建 playbackController.ts,使用 generation-based 取消替代 playbackRequestManager 状态机
- audioService 重写:单一持久 HTMLAudioElement + Web Audio API,createMediaElementSource 只调一次
- playerCore 瘦身为纯状态管理,移除 handlePlayMusic/playAudio/checkPlaybackState
- playlist next/prev 简化,区分用户手动切歌和歌曲自然播完
- MusicHook 适配 HTMLAudioElement API(.currentTime/.duration/.paused)
- preloadService 从 Howl 实例缓存改为 URL 可用性验证
- 所有 view/component 调用者迁移到 playbackController.playTrack()
修复:快速切歌竞态、seek 到未缓冲位置失败、重启后自动播放循环提示、EQ 重建崩溃
|
2026-03-29 13:18:05 +08:00 |
|
alger
|
167f081ee6
|
fix(download): 下载中列表封面使用缩略图加速加载
|
2026-03-27 23:06:38 +08:00 |
|
alger
|
c28368f783
|
fix(local-music): 扫描自动清理已删除文件,修复双滚动条
- scanFolders() 扫描时收集磁盘文件路径,完成后自动移除 IndexedDB 中已删除的条目
- 移除外层 n-scrollbar,改用 flex 布局,n-virtual-list 作为唯一滚动容器
|
2026-03-27 23:02:09 +08:00 |
|
alger
|
bc46024499
|
refactor(download): 重构下载系统,支持暂停/恢复/取消,修复歌词加载
- 新建 DownloadManager 类(主进程),每个任务独立 AbortController 控制
- 新建 Pinia useDownloadStore 作为渲染进程单一数据源
- 支持暂停/恢复/取消下载,支持断点续传(Range header)
- 批量下载全部完成后发送汇总系统通知,单首不重复通知
- 并发数可配置(1-5),队列持久化(重启后恢复)
- 修复下载列表不全、封面加载失败、通知重复等 bug
- 修复本地/下载歌曲歌词加载:优先从 ID3/FLAC 元数据提取,API 作为 fallback
- 删除 useDownloadStatus.ts,统一状态管理
- DownloadDrawer/DownloadPage 全面重写,移除 @apply 违规
- 新增 5 语言 i18n 键值(暂停/恢复/取消/排队中等)
|
2026-03-27 23:02:08 +08:00 |
|
alger
|
59f71148af
|
fix: 修复打包后白屏问题(createDiscreteApi 循环依赖)
playlist.ts 被 Vite 拆分为独立 chunk 后与主 chunk 形成循环依赖,
顶层调用 createDiscreteApi 导致 NMessageProvider 组件 TDZ 错误。
改为延迟初始化解决。同时移除调试代码。
v5.1.0
|
2026-03-22 22:46:59 +08:00 |
|
alger
|
c5417a12ec
|
fix: CI 升级 Node.js 至 24,移除 lock 文件缓存依赖
|
2026-03-22 19:18:36 +08:00 |
|
alger
|
b6d08b9660
|
fix: 扫码登录改为默认首选 & 更新 CHANGELOG v5.1.0
|
2026-03-22 19:13:34 +08:00 |
|
alger
|
3fd8bff7b4
|
chore: 版本号更新至 5.1.0
|
2026-03-22 19:09:55 +08:00 |
|
alger
|
2ef08412cf
|
fix: 替换 NeteaseCloudMusicApi 为 netease-cloud-music-api-alger
|
2026-03-22 19:08:50 +08:00 |
|
alger
|
8e1dcd5c06
|
fix: 修复移动端全屏歌词前奏阶段第一句歌词不可见
getLrcStyle 在当前行无条件设置 color: transparent,
但前奏阶段 originalStyle 无 backgroundImage,导致文字透明不可见
|
2026-03-22 18:31:58 +08:00 |
|
alger
|
91ecad7f3d
|
docs: 更新 CHANGELOG v5.1.0
|
2026-03-22 16:49:11 +08:00 |
|
alger
|
2b8378bbae
|
✨ feat: 重构心动模式与私人FM播放逻辑
- 心动模式从播放模式循环中独立,移至 SearchBar 作为独立按钮
- 新增私人FM自动续播:播放结束后自动获取下一首
- 播放列表设置时自动清除FM模式标志
- 顺序播放模式播放到最后一首后正确停止
- 新增获取关注歌手新歌 API
- 补充心动模式相关 i18n 翻译
|
2026-03-22 16:49:00 +08:00 |
|
alger
|
7f0b3c6469
|
fix: 设置桌面端最小窗口尺寸为 900x640 防止内容截断
|
2026-03-22 16:48:01 +08:00 |
|
alger
|
2f05663093
|
fix: 优化音乐列表页移动端按钮尺寸
|
2026-03-22 16:47:48 +08:00 |
|
alger
|
0ea3ac5b60
|
fix: 移除首页顶部多余 padding
|
2026-03-22 16:47:38 +08:00 |
|
alger
|
bf3155b80a
|
fix: HomeHero 快捷导航仅在移动端显示
|
2026-03-22 16:47:28 +08:00 |
|
alger
|
8a83281d1b
|
fix: 修复 NeteaseCloudMusicApi anonymous_token 文件不存在导致启动崩溃
将 NeteaseCloudMusicApi/server 从静态 import 改为动态 require(),
确保 anonymous_token 文件在模块加载前创建
|
2026-03-22 16:47:15 +08:00 |
|
alger
|
a3f91c45f0
|
✨ feat: 重构首页Hero、导航菜单与页面布局统一
HomeHero:
- 重建每日推荐(左)+私人FM(右)双栏布局
- FM播放/暂停切换、不喜欢/下一首、背景流动动画、均衡器特效
- 修复FM数据获取(res.data.data双层结构)
- 歌单预加载改为hover懒加载避免502
导航优化:
- SearchBar顶部菜单: 首页/歌单/专辑/排行榜/MV/本地音乐
- 侧边栏隐藏MV和本地音乐(hideInSidebar)
- 修复搜索类型切换时失焦收起(@mousedown.prevent)
页面统一:
- 新建StickyTabPage通用布局组件(标题+吸顶tabs+内容slot)
- 歌单/专辑/MV/播客页面统一使用StickyTabPage重构
- CategorySelector第一项添加ml-0.5防scale裁切
播客优化:
- RadioCard简化去除订阅按钮、容忍radio为undefined
- 去除最近播放section、loadDashboard包含loadSubscribedRadios
i18n: 新碟上架→专辑(5语言)、新增fmTrash/fmNext(5语言)
|
2026-03-16 23:22:35 +08:00 |
|
alger
|
68b3700f3f
|
✨ feat: 歌曲右键菜单添加下载歌词功能及下载设置中保存歌词文件选项
- 右键菜单新增"下载歌词"选项,支持获取歌词并保存为 .lrc 文件
- 如有翻译歌词会自动合并到 LRC 文件中
- 下载设置面板新增"单独保存歌词文件"开关
- 开启后下载歌曲时自动在同目录生成同名 .lrc 歌词文件
- 主进程新增 save-lyric-file IPC handler
- 完成 5 种语言的国际化翻译
|
2026-03-16 23:22:17 +08:00 |
|
alger
|
b86661ca11
|
✨ feat: 替换 netease-cloud-music-api-alger 为官方 NeteaseCloudMusicApi
- 依赖从 netease-cloud-music-api-alger@4.26 升级为 NeteaseCloudMusicApi@4.29
- 新增 fmTrash API 支持私人FM不喜欢功能
- getPersonalFM 移除重复 timestamp(拦截器已自动添加)
|
2026-03-16 23:11:25 +08:00 |
|
alger
|
51910011c8
|
fix: 隐藏 Web 端本地音乐菜单项
|
2026-03-15 16:41:47 +08:00 |
|
alger
|
24aa574176
|
fix(i18n): 补全 MV/排行榜/歌单/搜索/专辑页面缺失的国际化
- 新增 comp.pages 命名空间,包含页面描述、地区分类、加载状态等 i18n 键
- toplist: 标题和描述文本国际化
- mv: 描述、加载状态、6 个地区分类标签国际化
- list: 描述、加载/无更多状态国际化,提取每日推荐常量
- search: 描述文本国际化
- album: 5 个地区分类标签国际化
- 覆盖全部 5 种语言 (zh-CN/en-US/ja-JP/ko-KR/zh-Hant)
|
2026-03-15 15:57:17 +08:00 |
|
alger
|
239229a60c
|
fix: 修复自动播放循环与暂停失效问题 (H-UI-05/H-UI-07)
- fix(player): 修复 checkPlaybackState 无限重试循环,添加最大重试次数限制 (3次)
- fix(player): 修复 handlePlayMusic 参数 isPlay 遮蔽同名 ref 导致 play/isPlay/userPlayIntent 状态不同步
- fix(player): 播放成功后清除 isFirstPlay 标记,避免暂停时被 setPlay 误判为新歌从头播放
- fix(ui): 移除 AppMenu z-index 重复声明 (H-UI-05)
- perf(ui): MiniPlayBar 进度条 hover 改用 transform: scaleY() 替代 height 变化 (H-UI-07)
|
2026-03-15 15:49:59 +08:00 |
|
alger
|
2182c295c1
|
style: 统一 MiniSongItem/ListSongItem hover 背景色并清理 @apply (M-UI-02)
|
2026-03-15 15:15:23 +08:00 |
|
alger
|
66b5aac224
|
style: 清理 CategorySelector 和 TitleBar 中的 @apply 违规 (M-UI-10/M-UI-12)
|
2026-03-15 15:13:56 +08:00 |
|
alger
|
a7b05e6d02
|
fix(ui): 播放列表抽屉关闭动画改用 animationend 替代 setTimeout (M-UI-08)
|
2026-03-15 15:13:44 +08:00 |
|
alger
|
915f4f8965
|
fix(ui): 优化搜索结果滚动加载触发距离 150px → 100px (M-UI-06)
|
2026-03-15 15:13:33 +08:00 |
|
alger
|
292706a821
|
fix(ui): 修复 AppMenu 错误主题色 #10B981 → #22c55e (M-UI-05)
|
2026-03-15 15:13:21 +08:00 |
|
alger
|
baabb0c273
|
feat(lyric): 新增 single/double 模式 CSS 样式
|
2026-03-15 15:08:50 +08:00 |
|
alger
|
87a4773ece
|
feat(lyric): 重构歌词渲染区域为 scroll/single/double 三路分支
|
2026-03-15 15:07:57 +08:00 |
|
alger
|
c8ba6cbd44
|
feat(lyric): 控制栏新增翻译开关和显示模式切换按钮
|
2026-03-15 15:05:24 +08:00 |
|
alger
|
c4b178f925
|
fix(lyric): 组件卸载时清理 groupFadeTimer 防止内存泄漏
|
2026-03-15 15:04:19 +08:00 |
|
alger
|
345da7d9e8
|
feat(lyric): 新增双行分组 computed、淡出动画和 wrapperStyle 守卫
|
2026-03-15 14:59:53 +08:00 |
|
alger
|
f36f777e65
|
feat(lyric): 扩展 lyricSetting 支持 showTranslation 和 displayMode
|
2026-03-15 14:55:08 +08:00 |
|
alger
|
3e6f981379
|
refactor(ui): 统一 SongItem 圆角、抽象 HistoryItem、新增 EmptyState、修复主题色
- SongItem 5 变体容器/图片圆角统一为 rounded-xl(12px):
BaseSongItem(rounded-3xl→xl) / Standard(img rounded-2xl→xl) /
Compact(rounded-lg→xl) / List(rounded-lg→xl) / Mini(rounded-2xl→xl)
- 抽象 HistoryItem.vue:AlbumItem 和 PlaylistItem 提取共享 UI 组件,
消除 ~80 行重复样式代码,同时迁移至内联 Tailwind class
- 新增 EmptyState.vue:统一空状态组件(icon + text,暗色模式完整适配)
- 动画时长:SearchItem 图片 hover duration-700→duration-500
- MobilePlayBar:进度条颜色 Spotify #1ed760→项目主色 #22c55e
|
2026-03-15 14:14:52 +08:00 |
|