diff --git a/CHANGELOG.md b/CHANGELOG.md
index 7290e23..4a8b33d 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,38 +1,48 @@
# 更新日志
-## v4.9.0
+## v5.0.0
### ✨ 新功能
-- 重新设计pc端歌词页面Mini播放栏
-- 添加清除歌曲自定义解析功能
-- 添加Cookie登录功能及自动获取等相关管理设置 ([16aeaf2](https://github.com/algerkong/AlgerMusicPlayer/commit/16aeaf2)) - 支持通过Cookie方式登录,提供更便捷的登录体验
-- 添加UID登录功能,优化登录流程 ([daa8e75](https://github.com/algerkong/AlgerMusicPlayer/commit/daa8e75)) - 新增用户ID直接登录方式
-- 添加主题根据系统切换功能 ([d5ba218](https://github.com/algerkong/AlgerMusicPlayer/commit/d5ba218)) - 支持跟随系统主题自动切换明暗模式
-- 桌面歌词添加主题颜色面板组件 ([d1f5c8a](https://github.com/algerkong/AlgerMusicPlayer/commit/d1f5c8a)) - 为桌面歌词提供丰富的主题颜色自定义选项
-- 增强播放速度控制,添加滑块控制并改善播放安全性 ([8fb382e](https://github.com/algerkong/AlgerMusicPlayer/commit/8fb382e)) 感谢[Qumo](https://github.com/Hellodwadawd12312312)的pr
-- 添加日语和韩语国际化支持,并优化语言相关代码 ([3062156](https://github.com/algerkong/AlgerMusicPlayer/commit/3062156))
-- 添加繁体中文本地化支持 ([2cc03cb](https://github.com/algerkong/AlgerMusicPlayer/commit/2cc03cb)) 感谢[dongguacute](https://github.com/dongguacute)的pr
-- 播放速度设置弹窗标题添加速度显示 ([aeb7f03](https://github.com/algerkong/AlgerMusicPlayer/commit/aeb7f03))
+- LX Music 音源脚本导入
+- 逐字歌词,支持全屏歌词和桌面歌词同步显示
+- 心动模式播放
+- 移动设备整体页面风格和效果优化
+- 移动端添加平板模式设置
+- 歌词页面样式控制优化 支持背景、宽度、字体粗细等个性化设置
+- 历史日推查看
+- 播放记录热力图
+- 历史记录支持本地和云端记录
+- 用户页面收藏专辑展示
+- 添加 GPU 硬件加速设置
+- 菜单展开状态保存 - 感谢 [harenchi](https://github.com/souvenp) 的贡献
+- 搜索建议 - 感谢 [harenchi](https://github.com/souvenp) 的贡献
+- 歌词繁体中文翻译模块,集成 OpenCC 引擎 - 感谢 [Leko](https://github.com/lekoOwO) 的贡献
+- 自定义 API源 支持 [自定义源文档](https://github.com/algerkong/AlgerMusicPlayer/blob/main/docs/custom-api-readme.md) - 感谢 [harenchi](https://github.com/souvenp) 的贡献
### 🐛 Bug 修复
-- 修复mac快捷键关闭窗口报错的问题 ([67ef4d7](https://github.com/algerkong/AlgerMusicPlayer/commit/67ef4d7))
-- 修复mini窗口恢复时导致的应用窗口变小问题 ([9b3019d](https://github.com/algerkong/AlgerMusicPlayer/commit/9b3019d))
-- 修复歌单列表页面翻页类型问题 ([e489ab4](https://github.com/algerkong/AlgerMusicPlayer/commit/e489ab4))
-- 修复歌曲初始化问题 ([b7a58a0](https://github.com/algerkong/AlgerMusicPlayer/commit/b7a58a0))
-- 修复音量调整不同步的问题 ([679089e](https://github.com/algerkong/AlgerMusicPlayer/commit/679089e))
-- 修复菜单显示不全的问题,添加滚动条 ([09ccd9f](https://github.com/algerkong/AlgerMusicPlayer/commit/09ccd9f))
+- 修复随机播放顺序异常
+- 修复音源解析错误处理
+- 修复 Mini 播放栏主题颜色问题
+- 修复桌面歌词透明模式标题栏显示
+- 修复逐字歌词字间距
+- 修复远程控制设置无法保存
+- 修复下载无损格式返回 HiRes 音质 - 感谢 [harenchi](https://github.com/souvenp) 的贡献
+- 兼容 pnpm 包管理器 - 感谢 [Leko](https://github.com/lekoOwO) 的贡献
### 🎨 优化
-- 更新 eslint 和 prettier 配置,格式化代码 ([c08c2cb](https://github.com/algerkong/AlgerMusicPlayer/commit/c08c2cb))
-- 优化类型处理和登录功能 ([3ba85f3](https://github.com/algerkong/AlgerMusicPlayer/commit/3ba85f3))
-- 优化Cookie相关文字描述 ([1597fbf](https://github.com/algerkong/AlgerMusicPlayer/commit/1597fbf))
+- 音源解析缓存
+- 完善多语言国际化
+- 优化播放检测和错误处理
+- FLAC 元数据和封面图片处理 - 感谢 [harenchi](https://github.com/souvenp) 的贡献
+- 日推不感兴趣调用官方接口 - 感谢 [harenchi](https://github.com/souvenp) 的贡献
+- 代码提交流程优化,添加 lint-staged
## 赞赏支持☕️
-[赞赏列表](http://donate.alger.fun/)
+[赞赏列表](https://donate.alger.fun/donate)
diff --git a/custom-api-readme.md b/docs/custom-api-readme.md
similarity index 56%
rename from custom-api-readme.md
rename to docs/custom-api-readme.md
index b5bae12..e6ee22b 100644
--- a/custom-api-readme.md
+++ b/docs/custom-api-readme.md
@@ -13,21 +13,21 @@
导入的配置文件必须是一个合法的 JSON 文件,并包含以下字段:
-| 字段名 | 类型 | 是否必须 | 描述 |
-| ---------------- | --------- | -------- | ---------------------------------------------------------------------------------------------------------------------------------------------- |
-| `name` | `string` | 是 | API 名称,将显示在应用的 UI 界面上。 |
-| `apiUrl` | `string` | 是 | API 的基础请求地址。 |
-| `method` | `string` | 否 | HTTP 请求方法。可以是 `"GET"` 或 `"POST"`。**如果省略,默认为 "GET"**。 |
-| `params` | `object` | 是 | 请求时需要发送的参数。对于 `GET` 请求,它们会作为查询字符串;对于 `POST` 请求,它们会作为请求体。 |
-| `qualityMapping` | `object` | 否 | **音质映射表**。用于将应用内部的音质值(如 `"lossless"`)翻译成你的 API 需要的特定值。如果省略,则直接使用应用内部值。 |
-| `responseUrlPath`| `string` | 是 | **URL提取路径**。用于从 API 返回的 JSON 响应中找到最终可播放的音乐链接。支持点 `.` 和方括号 `[]` 语法来访问嵌套对象和数组。 |
+| 字段名 | 类型 | 是否必须 | 描述 |
+| ----------------- | -------- | -------- | --------------------------------------------------------------------------------------------------------------------------- |
+| `name` | `string` | 是 | API 名称,将显示在应用的 UI 界面上。 |
+| `apiUrl` | `string` | 是 | API 的基础请求地址。 |
+| `method` | `string` | 否 | HTTP 请求方法。可以是 `"GET"` 或 `"POST"`。**如果省略,默认为 "GET"**。 |
+| `params` | `object` | 是 | 请求时需要发送的参数。对于 `GET` 请求,它们会作为查询字符串;对于 `POST` 请求,它们会作为请求体。 |
+| `qualityMapping` | `object` | 否 | **音质映射表**。用于将应用内部的音质值(如 `"lossless"`)翻译成你的 API 需要的特定值。如果省略,则直接使用应用内部值。 |
+| `responseUrlPath` | `string` | 是 | **URL提取路径**。用于从 API 返回的 JSON 响应中找到最终可播放的音乐链接。支持点 `.` 和方括号 `[]` 语法来访问嵌套对象和数组。 |
#### 占位符
在 `params` 对象的值中,你可以使用以下占位符,程序在请求时会自动替换它们:
-* `{songId}`: 将被替换为当前歌曲的 ID。
-* `{quality}`: 将被替换为当前用户设置的音质字符串 (例如, `"higher"`, `"lossless"`)。
+- `{songId}`: 将被替换为当前歌曲的 ID。
+- `{quality}`: 将被替换为当前用户设置的音质字符串 (例如, `"higher"`, `"lossless"`)。
#### 音质值列表
@@ -45,18 +45,18 @@
```json
{
- "name": "Example API",
- "apiUrl": "https://api.example.com/music",
- "method": "GET",
- "params": {
- "song_id": "{songId}",
- "bitrate": "{quality}"
- },
- "qualityMapping": {
- "higher": "128000",
- "exhigh": "320000",
- "lossless": "999000"
- },
- "responseUrlPath": "data.play_url"
+ "name": "Example API",
+ "apiUrl": "https://api.example.com/music",
+ "method": "GET",
+ "params": {
+ "song_id": "{songId}",
+ "bitrate": "{quality}"
+ },
+ "qualityMapping": {
+ "higher": "128000",
+ "exhigh": "320000",
+ "lossless": "999000"
+ },
+ "responseUrlPath": "data.play_url"
}
-```
\ No newline at end of file
+```
diff --git a/docs/image6.png b/docs/image6.png
index b1ed718..b35dbb2 100644
Binary files a/docs/image6.png and b/docs/image6.png differ
diff --git a/package.json b/package.json
index dd5c460..bfa5e61 100644
--- a/package.json
+++ b/package.json
@@ -149,6 +149,12 @@
"gatekeeperAssess": false,
"entitlements": "build/entitlements.mac.plist",
"entitlementsInherit": "build/entitlements.mac.plist",
+ "extendInfo": {
+ "NSMicrophoneUsageDescription": "AlgerMusicPlayer needs access to the microphone for audio visualization.",
+ "NSCameraUsageDescription": "Application requests access to the device's camera.",
+ "NSDocumentsFolderUsageDescription": "Application requests access to the user's Documents folder.",
+ "NSDownloadsFolderUsageDescription": "Application requests access to the user's Downloads folder."
+ },
"notarize": false,
"identity": null,
"type": "distribution",