Merge branch 'dev'

pull/389/head v1.2.1
lyswhut 2020-10-18 09:23:57 +08:00
commit 42604ec737
16 changed files with 1292 additions and 1525 deletions

View File

@ -6,6 +6,17 @@ Project versioning adheres to [Semantic Versioning](http://semver.org/).
Commit convention is based on [Conventional Commits](http://conventionalcommits.org). Commit convention is based on [Conventional Commits](http://conventionalcommits.org).
Change log format is based on [Keep a Changelog](http://keepachangelog.com/). Change log format is based on [Keep a Changelog](http://keepachangelog.com/).
## [1.2.1](https://github.com/lyswhut/lx-music-desktop/compare/v1.2.0...v1.2.1) - 2020-10-18
### 优化
- Linux版的软件界面默认使用圆角与阴影顺便修复了桌面歌词窗口变白的问题已在Ubuntu 18.10测试正常,若显示异常可尝试添加`-nt`参数启动
### 修复
- 修复聚合搜索的分页问题
- 修复代理输入框输入的内容不生效的问题
## [1.2.0](https://github.com/lyswhut/lx-music-desktop/compare/v1.1.1...v1.2.0) - 2020-09-30 ## [1.2.0](https://github.com/lyswhut/lx-music-desktop/compare/v1.1.1...v1.2.0) - 2020-09-30
提前祝大家中秋&国庆快乐~ 提前祝大家中秋&国庆快乐~

5
FAQ.md
View File

@ -87,11 +87,11 @@ Windows 7 未开启 Aero 效果时桌面歌词会有问题,详情看下面的*
因此,当 win7 没有使用**AERO**主题时界面将会显示异常开启AERO的方法请自行百度`win7开启aero效果`(开启后可看到任务栏变透明)。<br> 因此,当 win7 没有使用**AERO**主题时界面将会显示异常开启AERO的方法请自行百度`win7开启aero效果`(开启后可看到任务栏变透明)。<br>
从`0.14.0`版本起不再强制要求开启透明效果,若你实在不想开启(若非电脑配置太低,墙裂建议开启!),可通过添加运行参数`-nt`来运行程序即可,例如:`.\lx-music-desktop.exe -nt`,添加方法可自行百度“给快捷方式加参数”,该参数的作用是用来控制程序是否使用非透明窗口运行。 从`0.14.0`版本起不再强制要求开启透明效果,若你实在不想开启(若非电脑配置太低,墙裂建议开启!),可通过添加运行参数`-nt`来运行程序即可,例如:`.\lx-music-desktop.exe -nt`,添加方法可自行百度“给快捷方式加参数”,该参数的作用是用来控制程序是否使用非透明窗口运行。
对于一些完全无法正常显示界面的情况,请阅读下面的 **软件启动后,界面无法显示** 对于一些完全无法正常显示界面、开启了AERO后问题仍未解决的情况,请阅读下面的 **软件启动后,界面无法显示** 解决
## 软件启动后,界面无法显示 ## 软件启动后,界面无法显示
软件启动后,可以在任务栏看到软件,但软件界面在桌面上无任何显示。<br> 对于软件启动后,可以在任务栏看到软件,但软件界面在桌面上无任何显示,或者整个界面偶尔闪烁的情况<br>
原始问题看:<https://github.com/electron/electron/issues/19569#issuecomment-522231083><br> 原始问题看:<https://github.com/electron/electron/issues/19569#issuecomment-522231083><br>
解决办法:下载`.NET Framework 4.7.1`或**更高**版本安装即可(建议安装最新版,若安装过程中遇到问题可尝试自行百度解决)。<br> 解决办法:下载`.NET Framework 4.7.1`或**更高**版本安装即可(建议安装最新版,若安装过程中遇到问题可尝试自行百度解决)。<br>
微软官方下载地址:<https://dotnet.microsoft.com/download/dotnet-framework><br> 微软官方下载地址:<https://dotnet.microsoft.com/download/dotnet-framework><br>
@ -136,5 +136,6 @@ Windows 7 未开启 Aero 效果时桌面歌词会有问题,详情看下面的*
## 无法打开外部歌单 ## 无法打开外部歌单
不支持垮源打开歌单,请确认你需要打开的歌单平台是否与软件标签所写的歌单源对应;<br>
对于分享出来的歌单若打开失败可尝试先在浏览器中打开后再从浏览器地址栏复制URL地址到软件打开<br> 对于分享出来的歌单若打开失败可尝试先在浏览器中打开后再从浏览器地址栏复制URL地址到软件打开<br>
或者如果你知道歌单 id 也可以直接输入歌单 id 打开。<br> 或者如果你知道歌单 id 也可以直接输入歌单 id 打开。<br>

View File

@ -23,7 +23,7 @@ module.exports = merge(baseConfig, {
onErrors(severity, errors) { // Silent warning from electron-debug onErrors(severity, errors) { // Silent warning from electron-debug
if (severity != 'warning') return if (severity != 'warning') return
for (let i = errors.length; i > -1; i--) { for (let i = errors.length - 1; i > -1; i--) {
const error = errors[i] const error = errors[i]
if (error.file == './node_modules/electron-debug/index.js') errors.splice(i, 1) if (error.file == './node_modules/electron-debug/index.js') errors.splice(i, 1)
} }

View File

@ -32,15 +32,11 @@ module.exports = merge(baseConfig, {
NODE_ENV: '"production"', NODE_ENV: '"production"',
}, },
}), }),
new webpack.NamedChunksPlugin(),
], ],
optimization: { optimization: {
chunkIds: 'named',
minimizer: [ minimizer: [
new TerserPlugin({ new TerserPlugin(),
cache: true,
parallel: true,
sourceMap: false, // set to true if you want JS source maps
}),
new OptimizeCSSAssetsPlugin({}), new OptimizeCSSAssetsPlugin({}),
], ],
}, },

View File

@ -32,15 +32,11 @@ module.exports = merge(baseConfig, {
NODE_ENV: '"production"', NODE_ENV: '"production"',
}, },
}), }),
new webpack.NamedChunksPlugin(),
], ],
optimization: { optimization: {
chunkIds: 'named',
minimizer: [ minimizer: [
new TerserPlugin({ new TerserPlugin(),
cache: true,
parallel: true,
sourceMap: false, // set to true if you want JS source maps
}),
new OptimizeCSSAssetsPlugin({}), new OptimizeCSSAssetsPlugin({}),
], ],
}, },

2685
package-lock.json generated

File diff suppressed because it is too large Load Diff

View File

@ -1,6 +1,6 @@
{ {
"name": "lx-music-desktop", "name": "lx-music-desktop",
"version": "1.2.0", "version": "1.2.1",
"description": "一个免费的音乐下载助手", "description": "一个免费的音乐下载助手",
"main": "./dist/electron/main.js", "main": "./dist/electron/main.js",
"productName": "lx-music-desktop", "productName": "lx-music-desktop",
@ -158,12 +158,12 @@
}, },
"homepage": "https://github.com/lyswhut/lx-music-desktop#readme", "homepage": "https://github.com/lyswhut/lx-music-desktop#readme",
"devDependencies": { "devDependencies": {
"@babel/core": "^7.11.6", "@babel/core": "^7.12.3",
"@babel/plugin-syntax-dynamic-import": "^7.8.3", "@babel/plugin-syntax-dynamic-import": "^7.8.3",
"@babel/plugin-transform-modules-umd": "^7.10.4", "@babel/plugin-transform-modules-umd": "^7.12.1",
"@babel/plugin-transform-runtime": "^7.11.5", "@babel/plugin-transform-runtime": "^7.12.1",
"@babel/polyfill": "^7.11.5", "@babel/polyfill": "^7.12.1",
"@babel/preset-env": "^7.11.5", "@babel/preset-env": "^7.12.1",
"babel-eslint": "^10.1.0", "babel-eslint": "^10.1.0",
"babel-loader": "^8.1.0", "babel-loader": "^8.1.0",
"babel-minify-webpack-plugin": "^0.3.1", "babel-minify-webpack-plugin": "^0.3.1",
@ -171,16 +171,16 @@
"cfonts": "^2.8.6", "cfonts": "^2.8.6",
"chalk": "^4.1.0", "chalk": "^4.1.0",
"changelog-parser": "^2.8.0", "changelog-parser": "^2.8.0",
"copy-webpack-plugin": "^6.1.1", "copy-webpack-plugin": "^6.2.1",
"core-js": "^3.6.5", "core-js": "^3.6.5",
"cross-env": "^7.0.2", "cross-env": "^7.0.2",
"css-loader": "^4.3.0", "css-loader": "^4.3.0",
"del": "^6.0.0", "del": "^6.0.0",
"electron": "^10.1.3", "electron": "^10.1.3",
"electron-builder": "^22.8.1", "electron-builder": "^22.9.1",
"electron-debug": "^3.1.0", "electron-debug": "^3.1.0",
"electron-devtools-installer": "^3.1.1", "electron-devtools-installer": "^3.1.1",
"eslint": "^7.10.0", "eslint": "^7.11.0",
"eslint-config-standard": "^14.1.1", "eslint-config-standard": "^14.1.1",
"eslint-formatter-friendly": "^7.0.0", "eslint-formatter-friendly": "^7.0.0",
"eslint-loader": "^4.0.2", "eslint-loader": "^4.0.2",
@ -189,39 +189,39 @@
"eslint-plugin-node": "^11.1.0", "eslint-plugin-node": "^11.1.0",
"eslint-plugin-promise": "^4.2.1", "eslint-plugin-promise": "^4.2.1",
"eslint-plugin-standard": "^4.0.1", "eslint-plugin-standard": "^4.0.1",
"file-loader": "^6.1.0", "file-loader": "^6.1.1",
"friendly-errors-webpack-plugin": "^1.7.0", "friendly-errors-webpack-plugin": "^1.7.0",
"html-webpack-plugin": "^4.5.0", "html-webpack-plugin": "^4.5.0",
"less": "^3.12.2", "less": "^3.12.2",
"less-loader": "^7.0.1", "less-loader": "^7.0.2",
"markdown-it": "^11.0.1", "markdown-it": "^11.0.1",
"mini-css-extract-plugin": "^0.11.2", "mini-css-extract-plugin": "^0.12.0",
"optimize-css-assets-webpack-plugin": "^5.0.4", "optimize-css-assets-webpack-plugin": "^5.0.4",
"postcss-loader": "^4.0.2", "postcss-loader": "^4.0.4",
"postcss-pxtorem": "^5.1.1", "postcss-pxtorem": "^5.1.1",
"pug": "^3.0.0", "pug": "^3.0.0",
"pug-loader": "^2.4.0", "pug-loader": "^2.4.0",
"pug-plain-loader": "^1.0.0", "pug-plain-loader": "^1.0.0",
"raw-loader": "^4.0.1", "raw-loader": "^4.0.2",
"rimraf": "^3.0.2", "rimraf": "^3.0.2",
"spinnies": "^0.5.1", "spinnies": "^0.5.1",
"stylus": "^0.54.8", "stylus": "^0.54.8",
"stylus-loader": "^3.0.2", "stylus-loader": "^4.1.1",
"terser-webpack-plugin": "^4.2.2", "terser-webpack-plugin": "^4.2.3",
"url-loader": "^4.1.0", "url-loader": "^4.1.1",
"vue-loader": "^15.9.3", "vue-loader": "^15.9.3",
"vue-template-compiler": "^2.6.12", "vue-template-compiler": "^2.6.12",
"webpack": "^4.44.2", "webpack": "^4.44.2",
"webpack-cli": "^3.3.12", "webpack-cli": "^3.3.12",
"webpack-dev-server": "^3.11.0", "webpack-dev-server": "^3.11.0",
"webpack-hot-middleware": "^2.25.0", "webpack-hot-middleware": "^2.25.0",
"webpack-merge": "^5.1.4" "webpack-merge": "^5.2.0"
}, },
"dependencies": { "dependencies": {
"crypto-js": "^4.0.0", "crypto-js": "^4.0.0",
"dnscache": "^1.0.2", "dnscache": "^1.0.2",
"electron-log": "^4.2.4", "electron-log": "^4.2.4",
"electron-store": "^6.0.0", "electron-store": "^6.0.1",
"electron-updater": "^4.3.5", "electron-updater": "^4.3.5",
"iconv-lite": "^0.6.2", "iconv-lite": "^0.6.2",
"image-size": "^0.9.1", "image-size": "^0.9.1",
@ -231,8 +231,8 @@
"node-id3": "^0.1.19", "node-id3": "^0.1.19",
"request": "^2.88.2", "request": "^2.88.2",
"vue": "^2.6.12", "vue": "^2.6.12",
"vue-i18n": "^8.21.1", "vue-i18n": "^8.22.0",
"vue-router": "^3.4.5", "vue-router": "^3.4.7",
"vuex": "^3.5.1", "vuex": "^3.5.1",
"vuex-router-sync": "^5.0.0" "vuex-router-sync": "^5.0.0"
} }

View File

@ -1,25 +1,8 @@
提前祝大家中秋&国庆快乐~
### 新增
- 播放控制栏开启/关闭桌面歌词按钮 新增右击按钮时锁定/解锁桌面歌词功能
### 优化 ### 优化
- 优化我的列表滚动条位置的保存逻辑 - Linux版的软件界面默认使用圆角与阴影顺便修复了桌面歌词窗口变白的问题已在Ubuntu 18.10测试正常,若显示异常可尝试添加`-nt`参数启动
- 更新设置-备份与恢复功能的描述
- 优化软件内鼠标悬停的提示界面
### 修复 ### 修复
- 修复桌面歌词窗口不允许拖出桌面之外的位置计算偏移Bug - 修复聚合搜索的分页问题
- 修复网易云KTV嗨榜无法加载的问题 - 修复代理输入框输入的内容不生效的问题
- 修复初始化搜索历史列表功能
- 修复重启软件后试听列表与收藏列表无法恢复上次的滚动位置的问题
- 修复歌曲封面无法嵌入的Bug
- 修复酷狗歌词格式问题
- 修复关闭切换动画时从搜索候选列表点击内容无效的问题
### 其他
- 更新 Electron 到 v10.1.3

File diff suppressed because one or more lines are too long

View File

@ -95,7 +95,7 @@ function createWindow() {
useContentSize: true, useContentSize: true,
width: windowSizeInfo.width, width: windowSizeInfo.width,
frame: false, frame: false,
transparent: !isLinux && !global.envParams.nt, transparent: !global.envParams.nt,
enableRemoteModule: false, enableRemoteModule: false,
// icon: path.join(global.__static, isWin ? 'icons/256x256.ico' : 'icons/512x512.png'), // icon: path.join(global.__static, isWin ? 'icons/256x256.ico' : 'icons/512x512.png'),
resizable: false, resizable: false,
@ -133,7 +133,8 @@ function init() {
createWindow() createWindow()
} }
app.on('ready', init) // https://github.com/electron/electron/issues/16809
app.on('ready', isLinux ? () => setTimeout(init, 300) : init)
app.on('activate', () => { app.on('activate', () => {
if (global.modules.mainWindow) { if (global.modules.mainWindow) {

View File

@ -1,5 +1,5 @@
<template lang="pug"> <template lang="pug">
#container(v-if="isProd && !isNt" :class="theme" @mouseenter="enableIgnoreMouseEvents" @mouseleave="dieableIgnoreMouseEvents") #container(v-if="isProd && !isNt && !isLinux" :class="theme" @mouseenter="enableIgnoreMouseEvents" @mouseleave="dieableIgnoreMouseEvents")
core-aside#left core-aside#left
#right #right
core-toolbar#toolbar core-toolbar#toolbar
@ -42,6 +42,7 @@ export default {
return { return {
isProd: process.env.NODE_ENV === 'production', isProd: process.env.NODE_ENV === 'production',
isNt: false, isNt: false,
isLinux,
globalObj: { globalObj: {
apiSource: 'test', apiSource: 'test',
proxy: {}, proxy: {},
@ -338,12 +339,12 @@ export default {
}, },
handleEnvParamsInit(envParams) { handleEnvParamsInit(envParams) {
this.envParams = envParams this.envParams = envParams
this.isNt = isLinux || this.envParams.nt this.isNt = this.envParams.nt
if (this.isNt) { if (this.isNt) {
document.body.classList.remove('transparent') document.body.classList.remove('transparent')
document.body.classList.add('noTransparent') document.body.classList.add('noTransparent')
} }
if (this.isProd && !this.isNt) { if (this.isProd && !this.isNt && !this.isLinux) {
document.body.addEventListener('mouseenter', this.dieableIgnoreMouseEvents) document.body.addEventListener('mouseenter', this.dieableIgnoreMouseEvents)
document.body.addEventListener('mouseleave', this.enableIgnoreMouseEvents) document.body.addEventListener('mouseleave', this.enableIgnoreMouseEvents)
} }

View File

@ -1,7 +1,7 @@
<template lang="pug"> <template lang="pug">
input(:class="$style.input" :type="type" :placeholder="placeholder" :value="value" :disabled="disabled" input(:class="$style.input" :type="type" :placeholder="placeholder" :value="value" :disabled="disabled"
@focus="$emit('focus', $event)" @blur="$emit('blur', $event)" @input="$emit('input', $event.trim())" @change="$emit('change', text)" @focus="$emit('focus', $event)" @blur="$emit('blur', $event)" @input="$emit('input', $event.target.value.trim())" @change="$emit('change', $event.target.value.trim())"
@keyup.enter="$emit('submit', text)") @keyup.enter="$emit('submit', $event.target.value.trim())")
</template> </template>
<script> <script>

View File

@ -106,7 +106,7 @@
"hot_key_desktop_lyric_toggle_always_top": "Top Desktop Lyrics Switch", "hot_key_desktop_lyric_toggle_always_top": "Top Desktop Lyrics Switch",
"network": "Network", "network": "Network",
"network_proxy_title": "Proxy (False setting would block Internet connections)", "network_proxy_title": "HTTP Proxy (False setting would block Internet connections)",
"network_proxy_host": "Host", "network_proxy_host": "Host",
"network_proxy_port": "Port", "network_proxy_port": "Port",
"network_proxy_username": "Username", "network_proxy_username": "Username",

View File

@ -106,7 +106,7 @@
"hot_key_desktop_lyric_toggle_always_top": "桌面歌词置顶切换", "hot_key_desktop_lyric_toggle_always_top": "桌面歌词置顶切换",
"network": "网络设置", "network": "网络设置",
"network_proxy_title": "代理设置(乱设置软件将无法联网)", "network_proxy_title": "HTTP代理设置(乱设置软件将无法联网)",
"network_proxy_host": "主机", "network_proxy_host": "主机",
"network_proxy_port": "端口", "network_proxy_port": "端口",
"network_proxy_username": "用户名", "network_proxy_username": "用户名",

View File

@ -99,7 +99,7 @@
"hot_key_desktop_lyric_toggle_lock": "桌面歌詞鎖定切換", "hot_key_desktop_lyric_toggle_lock": "桌面歌詞鎖定切換",
"hot_key_desktop_lyric_toggle_always_top": "桌面歌詞置頂切換", "hot_key_desktop_lyric_toggle_always_top": "桌面歌詞置頂切換",
"network": "網絡設置", "network": "網絡設置",
"network_proxy_title": "代理設置(亂設置軟件將無法聯網)", "network_proxy_title": "HTTP代理設置(亂設置軟件將無法聯網)",
"network_proxy_host": "主機", "network_proxy_host": "主機",
"network_proxy_port": "端口", "network_proxy_port": "端口",
"network_proxy_username": "用戶名", "network_proxy_username": "用戶名",

View File

@ -84,12 +84,11 @@ export default {
if (limit != null) this.limit = limit if (limit != null) this.limit = limit
return this.musicSearch(str, page).then(result => { return this.musicSearch(str, page).then(result => {
if (!result || result.code !== 200) return this.search(str, page, { limit }, retryNum) if (!result || result.code !== 200) return this.search(str, page, { limit }, retryNum)
// console.log(result.result) let list = this.handleResult(result.result.songs || [])
let list = this.handleResult(result.result.songs)
if (list == null) return this.search(str, page, { limit }, retryNum) if (list == null) return this.search(str, page, { limit }, retryNum)
this.total = result.result.songCount this.total = result.result.songCount || 0
this.page = page this.page = page
this.allPage = Math.ceil(this.total / this.limit) this.allPage = Math.ceil(this.total / this.limit)