Skip to content

Commit

Permalink
Merge branch 'dev'
Browse files Browse the repository at this point in the history
  • Loading branch information
lyswhut committed Sep 5, 2021
2 parents 5ccf6f0 + 246412c commit a4d3c06
Show file tree
Hide file tree
Showing 38 changed files with 2,426 additions and 1,329 deletions.
3 changes: 2 additions & 1 deletion .ncurc.js
@@ -1,7 +1,8 @@
module.exports = {
upgrade: true,
reject: [
'vue-loader'
'vue-loader',
'webpack-dev-server',
// 'eslint-config-standard'
]
}
21 changes: 21 additions & 0 deletions CHANGELOG.md
Expand Up @@ -6,6 +6,27 @@ Project versioning adheres to [Semantic Versioning](http://semver.org/).
Commit convention is based on [Conventional Commits](http://conventionalcommits.org).
Change log format is based on [Keep a Changelog](http://keepachangelog.com/).

## [1.13.0](https://github.com/lyswhut/lx-music-desktop/compare/v1.12.2...v1.13.0) - 2021-09-05

如果你喜欢并经常使用洛雪音乐,并想要第一时间尝鲜洛雪的新功能,可以加入测试企鹅群768786588,
注意:测试版的功可能会不稳定,打算潜水的勿加。

### 新增

- 歌曲搜索框新增清理按钮,点击此按钮可以清理搜索框并返回初始搜索界面
- 新增“下载的歌词文件编码格式”设置,默认下载的歌词编码仍是`UTF-8`,对于某些在设备(如车机)上出现歌词中文乱码的用户可以尝试选择以`GBK`编码格式保存歌词文件
- 新增设置-桌面歌词-歌词字体设置,此设置可用于设置桌面歌词的字体(已知的问题:Windows 7 下可能会出现字体列表为空的情况,这是当前系统的 Powershell 版本小于5.1导致的,请自行**尝试**看常见解决)

### 优化

- 支持网易源“我喜欢”歌单以注入token的方式打开。由于网易源的“我喜欢”歌单需要登录才能打开(若你看不懂后半句就去阅读 常见问题-无法打开外部歌单),现若想要打开此类歌单,需要在歌单链接后面拼上 `###` 再加上有效的token,拼接格式:`[id|url]###token`,例子(最后面的xxxxxx替换成你的token):`https://music.163.com/#/playlist?id=123456&userid=123456###xxxxxx`
- 软件内快捷键的最小化触发时,如果已启用托盘,则隐藏程序,否则最小化程序

### 修复

- 修复某些情况下同步功能会导致切歌混乱的问题
- 修复从电脑浏览器复制的企鹅歌单链接无法打开的问题

## [1.12.2](https://github.com/lyswhut/lx-music-desktop/compare/v1.12.1...v1.12.2) - 2021-08-11

### 修复
Expand Down
63 changes: 52 additions & 11 deletions FAQ.md
Expand Up @@ -19,7 +19,7 @@
若网页无法打开或打开来不是404,则可能是DNS的问题,可以尝试以下办法:

1. 将DNS改成自动获取试试(注:改完可能需要清理下系统DNS缓存才生效)
2. 手动把DNS改一下,不要用360的DNS,可以把DNS改成`114.114.114.114``8.8.8.8`(注:改完可能需要清理下系统DNS缓存才生效)
2. 手动把DNS改一下,不要用360的DNS,可以把DNS改成`223.6.6.6``8.8.8.8`(注:改完可能需要清理下系统DNS缓存才生效)

改完DNS后可能需要重启软件才生效

Expand All @@ -38,7 +38,7 @@
若网页无法打开或打来不是404,则应该是DNS的问题,可以尝试以下办法:

1. 将DNS改成自动获取试试
2. 手动把DNS改一下,不要用360的DNS,可以把DNS改成`114.114.114.114``8.8.8.8`
2. 手动把DNS改一下,不要用360的DNS,可以把DNS改成`223.6.6.6``8.8.8.8`

## 列表多选

Expand All @@ -64,6 +64,35 @@

注:网易源的“我喜欢”歌单无法在未登录的情况下打开,所以你需要手动创建一个歌单后将“我喜欢”里的歌曲移动到该歌单打开

### 打开网易源“我喜欢”歌单

由于网易源的“我喜欢”歌单需要登录才能打开,从v1.13.0起提供了可以以注入token的方式打开网易源“我喜欢”歌单的功能,现若想要打开此类歌单,需要在歌单链接或id后面拼上 `###` 再加上有效的token,拼接格式:`[id|url]###token`,例子(最后面的xxxxxx替换成你的token):
- `https://music.163.com/#/playlist?id=11332&userid=123456###xxxxxx`
- `11332###xxxxxx`

即:将 `歌单链接或者歌单ID``###``token` 这三者拼到一起。

#### `token`的获取方法

**注:`token`是你账号的临时身份令牌,不要随便泄露给他人**<br>
在浏览器打开登录网易云音乐并**登录**后,按`F12`,此时将会打开开发者窗口,然后按你使用的浏览器操作:

##### Chrome、360、QQ等浏览器

这些浏览器打开此窗口时界面可能是中文也可能是英文,英文的话按括号里的来

1. 点击窗口顶部`应用程序(application)`
2. 展开左侧 `Cookies`
3. 点击 `https://music.163.com`
4. 在右侧窗口找到 `名称(Name)``MUSIC_U` 的这行,这行的第二列(`值(Value)`)内的那串内容就是`token`,双击它进入编辑状态,然后按`ctrl + c`键就可以将它复制

##### 火狐浏览器

1. 点击窗口顶部`存储`
2. 展开左侧 `Cookie`
3. 点击 `https://music.163.com`
4. 在右侧窗口找到 `名称``MUSIC_U` 的这行,这行的最后一列(``)内的那串内容就是`token`,双击它进入编辑状态,然后按`ctrl + c`键就可以将它复制

## 更新已收藏的在线歌单

该功能仅对直接从歌单详情页点“收藏”按钮收藏的歌单有效,可右击已收藏的列表名从弹出的菜单中选择“更新”使用该功能,
Expand All @@ -81,12 +110,16 @@
3. 输入完这两项后点击“启动同步”
4. 若连接成功,对于首次同步时,若两边的设备的列表不为空,则PC端会弹出选择列表同步方式的弹窗,同步方式的说明弹窗下面有介绍

对于连接同步服务失败的可能原因:
#### 关于同步弹窗的说明

对于首次同步时,若两边的设备的列表不为空,则PC端会弹出选择列表同步方式的弹窗,此弹窗内的同步方式仅针对**首次同步**,<br>
第一次同步成功后,以后再同步时将会自动根据两边设备的列表内容合并同步,不信你可以在同步完成后断开两边的连接,然后在两边增删一些歌曲或列表后再同步试试看~😉

#### 连接同步服务失败的可能原因

- 此功能需要PC端与移动端都连接在同一个路由器下的网络才能使用
- 路由器若开启了AP隔离,则此功能无法使用
- 检查防火墙是否拦截了PC端的服务端口

- 路由器若开启了AP隔离,则此功能无法使用

## 界面异常(界面显示不完整)

Expand Down Expand Up @@ -123,6 +156,14 @@
- 添加启动参数`-dha`运行(添加的方法请自行百度“给快捷方式加参数”)
- 尝试将绿色版的软件放在**桌面****我的文档**运行

## Windows 7 下桌面歌词字体列表为空

Windows 7 系统系统需要安装 Powershell 5.1及以上版本才可正常获取系统字体列表。

想要查看当前 Powershell 版本可以在 Powershell 窗口输入命令:`Get-Host`

最新 Powershell 安装包可以去官方 [Github releases](https://github.com/PowerShell/PowerShell/releases) 页下载,安装过程中若出现错误,请自行按照提示或者百度/Google解决。

## 安装版安装失败,提示安装程序并未成功地运行完成

对于部分电脑出现安装失败的问题,可以做出以下尝试:
Expand Down Expand Up @@ -178,23 +219,23 @@ Windows 7 未开启 Aero 效果时桌面歌词会有问题,详情看上面的

**`.dmg`** 结尾的文件为 MAC 版本;

**`.AppImage`****`.deb`** 结尾的为 Linux 版本。
**`.AppImage`****`.deb`****`.rpm`****`.pacman`** 结尾的为 Linux 版本。

带有`x64`的为64位的系统版本,带`x86`的为32位的系统版本;若两个都带有的则为集合版,安装时会自动根据系统位数选择对应的版本安装。
带有`x64`的为64位的系统版本,带`x86`的为32位的系统版本;若两个都带有的则为集合版,安装时会自动根据系统位数选择对应的版本安装;带有`arm`的为arm架构系统的版本

## 软件更新

软件启动时若发现新版本时会自动从本仓库下载安装包,下载完毕会弹窗提示更新。<br>
若下载未完成时软件被关闭,下次启动软件会再次自动下载。<br>
若还是**更新失败**,可能是无法访问GitHub导致的,这时需要手动更新,即下载最新安装包直接覆盖安装即可。<br>
注意:**绿色版**的软件自动更新功能**不可用**,建议使用安装版!!<br>
注意:**Mac版****Linux deb**版不支持自动更新!
注意:**Mac版****Linux**版不支持自动更新!

## 更新已收藏的在线歌单
### Windows 安装版在升级后,卸载了旧版本,但没有安装新版本

该功能仅对直接从歌单详情页点“收藏”按钮收藏的歌单有效,可右击已收藏的列表名从弹出的菜单中选择“同步”使用该功能,
出现这个问题的原因一般是你当初在安装本软件的时候是以管理员身份安装的,运行软件的时候没有以管理员身份运行,所以卸载后无法再装上。

需要注意的是:这将会覆盖本地的目标列表,歌曲将被替换成最新的在线列表
安装本软件时建议选择 `为当前用户安装`,并安装在当前用户目录或者安装在不需要管理员权限的目录(即其他分区下),不要选`为所有用户安装`

## 缺少`xxx.dll`

Expand Down
9 changes: 4 additions & 5 deletions build-config/main/webpack.config.base.js
Expand Up @@ -29,11 +29,10 @@ module.exports = {
exclude: /node_modules/,
enforce: 'pre',
},
// {
// test: /\.js$/,
// loader: 'babel-loader',
// exclude: /node_modules/,
// },
{
test: /\.node$/,
use: 'node-loader',
},
],
},
performance: {
Expand Down
1 change: 1 addition & 0 deletions build-config/main/webpack.config.prod.js
Expand Up @@ -15,6 +15,7 @@ module.exports = merge(baseConfig, {
},
externals: [
...Object.keys(dependencies || {}),
// 'font-list',
],
node: {
__dirname: false,
Expand Down
13 changes: 4 additions & 9 deletions build-config/renderer-lyric/webpack.config.base.js
Expand Up @@ -44,6 +44,10 @@ module.exports = {
exclude: /node_modules/,
enforce: 'pre',
},
{
test: /\.node$/,
use: 'node-loader',
},
{
test: /\.vue$/,
loader: 'vue-loader',
Expand Down Expand Up @@ -72,15 +76,6 @@ module.exports = {
},
}),
},
{
test: /\.styl(:?us)?$/,
oneOf: mergeCSSLoader({
loader: 'stylus-loader',
options: {
sourceMap: true,
},
}),
},
{
test: /\.pug$/,
oneOf: [
Expand Down
13 changes: 4 additions & 9 deletions build-config/renderer/webpack.config.base.js
Expand Up @@ -44,6 +44,10 @@ module.exports = {
exclude: /node_modules/,
enforce: 'pre',
},
{
test: /\.node$/,
use: 'node-loader',
},
{
test: /\.vue$/,
loader: 'vue-loader',
Expand Down Expand Up @@ -72,15 +76,6 @@ module.exports = {
},
}),
},
{
test: /\.styl(:?us)?$/,
oneOf: mergeCSSLoader({
loader: 'stylus-loader',
options: {
sourceMap: true,
},
}),
},
{
test: /\.pug$/,
oneOf: [
Expand Down
34 changes: 18 additions & 16 deletions build-config/runner-dev.js
Expand Up @@ -16,31 +16,32 @@ const rendererLyricConfig = require('./renderer-lyric/webpack.config.dev')

let electronProcess = null
let manualRestart = false
let hotMiddleware
let hotMiddlewareRenderer
let hotMiddlewareRendererLyric


function startRenderer() {
return new Promise((resolve, reject) => {
// rendererConfig.entry.renderer = [path.join(__dirname, 'dev-client')].concat(rendererConfig.entry.renderer)
// rendererConfig.mode = 'development'
const compiler = webpack(rendererConfig)
hotMiddleware = webpackHotMiddleware(compiler, {
hotMiddlewareRenderer = webpackHotMiddleware(compiler, {
log: false,
heartbeat: 2500,
})

compiler.hooks.compilation.tap('compilation', compilation => {
// console.log(Object.keys(compilation.hooks))
HtmlWebpackPlugin.getHooks(compilation).beforeEmit.tapAsync('html-webpack-plugin-after-emit', (data, cb) => {
hotMiddleware.publish({ action: 'reload' })
hotMiddlewareRenderer.publish({ action: 'reload' })
cb()
})
})

compiler.hooks.done.tap('done', stats => {
// logStats('Renderer', 'Compile done')
// logStats('Renderer', stats)
})
// compiler.hooks.done.tap('done', stats => {
// // logStats('Renderer', 'Compile done')
// // logStats('Renderer', stats)
// })

const server = new WebpackDevServer(
compiler,
Expand All @@ -54,7 +55,7 @@ function startRenderer() {
errors: true,
},
before(app, ctx) {
app.use(hotMiddleware)
app.use(hotMiddlewareRenderer)
ctx.middleware.waitUntilValid(() => {
resolve()
})
Expand All @@ -71,23 +72,23 @@ function startRendererLyric() {
// rendererConfig.entry.renderer = [path.join(__dirname, 'dev-client')].concat(rendererConfig.entry.renderer)
// rendererConfig.mode = 'development'
const compiler = webpack(rendererLyricConfig)
hotMiddleware = webpackHotMiddleware(compiler, {
hotMiddlewareRendererLyric = webpackHotMiddleware(compiler, {
log: false,
heartbeat: 2500,
})

compiler.hooks.compilation.tap('compilation', compilation => {
// console.log(Object.keys(compilation.hooks))
HtmlWebpackPlugin.getHooks(compilation).beforeEmit.tapAsync('html-webpack-plugin-after-emit', (data, cb) => {
hotMiddleware.publish({ action: 'reload' })
hotMiddlewareRendererLyric.publish({ action: 'reload' })
cb()
})
})

compiler.hooks.done.tap('done', stats => {
// logStats('Renderer', 'Compile done')
// logStats('Renderer', stats)
})
// compiler.hooks.done.tap('done', stats => {
// // logStats('Renderer', 'Compile done')
// // logStats('Renderer', stats)
// })

const server = new WebpackDevServer(
compiler,
Expand All @@ -101,7 +102,7 @@ function startRendererLyric() {
errors: true,
},
before(app, ctx) {
app.use(hotMiddleware)
app.use(hotMiddlewareRendererLyric)
ctx.middleware.waitUntilValid(() => {
resolve()
})
Expand All @@ -120,7 +121,8 @@ function startMain() {
const compiler = webpack(mainConfig)

compiler.hooks.watchRun.tapAsync('watch-run', (compilation, done) => {
hotMiddleware.publish({ action: 'compiling' })
hotMiddlewareRenderer.publish({ action: 'compiling' })
hotMiddlewareRendererLyric.publish({ action: 'compiling' })
done()
})

Expand Down

0 comments on commit a4d3c06

Please sign in to comment.