From b00de4d976e287b6c1627083838ae853d552b2fd Mon Sep 17 00:00:00 2001 From: lyswhut Date: Sat, 14 Nov 2020 22:29:27 +0800 Subject: [PATCH 01/41] =?UTF-8?q?=E6=89=98=E7=9B=98=E8=8F=9C=E5=8D=95?= =?UTF-8?q?=E6=96=B0=E5=A2=9E=E6=98=BE=E7=A4=BA=E3=80=81=E9=9A=90=E8=97=8F?= =?UTF-8?q?=E4=B8=BB=E7=95=8C=E9=9D=A2=E9=80=89=E9=A1=B9=EF=BC=8C=E4=B8=BA?= =?UTF-8?q?Linux=E3=80=81MAC=E7=89=88=E6=B7=BB=E5=8A=A0=E6=89=98=E7=9B=98?= =?UTF-8?q?=E8=8F=9C=E5=8D=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- publish/changeLog.md | 4 ++++ src/main/events/MainWindow.js | 12 ++++++++++++ src/main/events/_name.js | 3 +++ src/main/modules/tray.js | 30 +++++++++++++++++++++++++++-- src/main/rendererEvents/winEvent.js | 8 ++++++++ 5 files changed, 55 insertions(+), 2 deletions(-) diff --git a/publish/changeLog.md b/publish/changeLog.md index 8f20c3c4..cf015e85 100644 --- a/publish/changeLog.md +++ b/publish/changeLog.md @@ -1,3 +1,7 @@ +### 新增 + +- 托盘菜单新增显示、隐藏主界面选项,为Linux、MAC版添加托盘菜单 + ### 优化 - 移除kg源的歌词文件开头的空白字符串 diff --git a/src/main/events/MainWindow.js b/src/main/events/MainWindow.js index ec6855ba..59b228a0 100644 --- a/src/main/events/MainWindow.js +++ b/src/main/events/MainWindow.js @@ -17,6 +17,18 @@ class MainWindow extends EventEmitter { toggleHide() { this.emit(MAIN_WINDOW_EVENT_NAME.toggle_hide) } + + readyToShow() { + this.emit(MAIN_WINDOW_EVENT_NAME.ready_to_show) + } + + show() { + this.emit(MAIN_WINDOW_EVENT_NAME.show) + } + + hide() { + this.emit(MAIN_WINDOW_EVENT_NAME.hide) + } } module.exports = MainWindow diff --git a/src/main/events/_name.js b/src/main/events/_name.js index 4eb8650f..251ba7bb 100644 --- a/src/main/events/_name.js +++ b/src/main/events/_name.js @@ -10,6 +10,9 @@ exports.mainWindow = { quit: 'quit', toggle_minimize: 'toggle_minimize', toggle_hide: 'toggle_hide', + ready_to_show: 'ready_to_show', + show: 'show', + hide: 'hide', } exports.tray = { diff --git a/src/main/modules/tray.js b/src/main/modules/tray.js index 88cc70e6..58579990 100644 --- a/src/main/modules/tray.js +++ b/src/main/modules/tray.js @@ -1,6 +1,6 @@ const { app, Tray, Menu } = require('electron') const { isWin } = require('../../common/utils') -const { tray: TRAY_EVENT_NAME, common: COMMON_EVENT_NAME } = require('../events/_name') +const { tray: TRAY_EVENT_NAME, common: COMMON_EVENT_NAME, mainWindow: MAIN_WINDOW_NAME } = require('../events/_name') const path = require('path') let isEnableTray = null let themeId = null @@ -29,6 +29,16 @@ global.lx_event.common.on(COMMON_EVENT_NAME.config, sourceName => { createMenu(global.modules.tray) }) +global.lx_event.mainWindow.on(MAIN_WINDOW_NAME.ready_to_show, () => { + createMenu(global.modules.tray) +}) +global.lx_event.mainWindow.on(MAIN_WINDOW_NAME.show, () => { + createMenu(global.modules.tray) +}) +global.lx_event.mainWindow.on(MAIN_WINDOW_NAME.hide, () => { + createMenu(global.modules.tray) +}) + const createTray = () => { if ((global.modules.tray && !global.modules.tray.isDestroyed()) || !global.appSetting.tray || !global.appSetting.tray.isShow) return @@ -58,8 +68,24 @@ const destroyTray = () => { } const createMenu = tray => { - if (!global.modules.tray || !isWin) return + if (!global.modules.tray) return let menu = [] + global.modules.mainWindow && menu.push(global.modules.mainWindow.isVisible() ? { + label: '隐藏主界面', + click() { + global.modules.mainWindow.hide() + }, + } : { + label: '显示主界面', + click() { + if (!global.modules.mainWindow) return + if (!global.modules.mainWindow.isVisible()) { + global.modules.mainWindow.show() + } + global.modules.mainWindow.restore() + global.modules.mainWindow.focus() + }, + }) menu.push(global.appSetting.desktopLyric.enable ? { label: '关闭桌面歌词', click() { diff --git a/src/main/rendererEvents/winEvent.js b/src/main/rendererEvents/winEvent.js index 766a9438..6d797ec9 100644 --- a/src/main/rendererEvents/winEvent.js +++ b/src/main/rendererEvents/winEvent.js @@ -29,5 +29,13 @@ module.exports = mainWindow => { mainWindow.once('ready-to-show', () => { mainWindow.show() + global.lx_event.mainWindow.readyToShow() + }) + + mainWindow.on('show', () => { + global.lx_event.mainWindow.show() + }) + mainWindow.on('hide', () => { + global.lx_event.mainWindow.hide() }) } From 4db560fb4be64580afd664e4d23f468931a0499d Mon Sep 17 00:00:00 2001 From: lyswhut Date: Sun, 15 Nov 2020 14:08:11 +0800 Subject: [PATCH 02/41] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E7=A7=BB=E5=8A=A8?= =?UTF-8?q?=E5=8D=95=E9=A6=96=E6=AD=8C=E6=9B=B2=E6=97=B6=E5=87=BA=E7=8E=B0?= =?UTF-8?q?=E7=9A=84=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- publish/changeLog.md | 1 + src/renderer/store/modules/list.js | 5 ++--- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/publish/changeLog.md b/publish/changeLog.md index cf015e85..479fe237 100644 --- a/publish/changeLog.md +++ b/publish/changeLog.md @@ -10,3 +10,4 @@ - 修复专辑图片无法嵌入的问题 - 修复播放状态栏切换“上一首”歌曲按钮提示错误的问题 +- 修复移动单首歌曲时,如果目标列表存在该歌曲,会导致将源列表与目标列表里的目标歌曲移除 diff --git a/src/renderer/store/modules/list.js b/src/renderer/store/modules/list.js index e46f2782..eb9e51cf 100644 --- a/src/renderer/store/modules/list.js +++ b/src/renderer/store/modules/list.js @@ -92,8 +92,7 @@ const mutations = { if (!fromList || !toList) return fromList.list.splice(fromList.list.indexOf(musicInfo), 1) let index = toList.list.findIndex(s => s.songmid === musicInfo.songmid) - if (index > -1) return toList.list.splice(index, 1) - toList.list.push(musicInfo) + if (index < 0) toList.list.push(musicInfo) }, listAddMultiple(state, { id, list }) { let targetList = allList[id] @@ -110,7 +109,7 @@ const mutations = { }, // { fromId, toId, list } listMoveMultiple(state, { fromId, toId, list }) { - console.log(state.commit) + // console.log(state.commit) this.commit('list/listRemoveMultiple', { id: fromId, list }) this.commit('list/listAddMultiple', { id: toId, list }) }, From b3e3860b238b5d03f577b5734709ca8bc6f2319a Mon Sep 17 00:00:00 2001 From: lyswhut Date: Tue, 17 Nov 2020 17:14:47 +0800 Subject: [PATCH 03/41] =?UTF-8?q?=E4=BF=AE=E5=A4=8Dkg=E6=BA=90=E6=AD=8C?= =?UTF-8?q?=E6=9B=B2=E4=BF=A1=E6=81=AF=E5=B8=A6=E6=9C=89=E5=8D=95=E5=BC=95?= =?UTF-8?q?=E5=8F=B7=E7=AD=89=E7=89=B9=E6=AE=8A=E5=AD=97=E7=AC=A6=E8=A2=AB?= =?UTF-8?q?=E8=BD=AC=E4=B9=89=E7=9A=84=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- publish/changeLog.md | 1 + src/renderer/utils/index.js | 3 ++- src/renderer/utils/music/kg/comment.js | 6 +++--- src/renderer/utils/music/kg/hotSearch.js | 3 ++- src/renderer/utils/music/kg/leaderboard.js | 8 ++++---- src/renderer/utils/music/kg/lyric.js | 3 +++ src/renderer/utils/music/kg/musicSearch.js | 8 ++++---- src/renderer/utils/music/kg/songList.js | 14 +++++++------- 8 files changed, 26 insertions(+), 20 deletions(-) diff --git a/publish/changeLog.md b/publish/changeLog.md index 479fe237..e44e90ec 100644 --- a/publish/changeLog.md +++ b/publish/changeLog.md @@ -11,3 +11,4 @@ - 修复专辑图片无法嵌入的问题 - 修复播放状态栏切换“上一首”歌曲按钮提示错误的问题 - 修复移动单首歌曲时,如果目标列表存在该歌曲,会导致将源列表与目标列表里的目标歌曲移除 +- 修复kg源歌曲信息带有单引号等特殊字符被转义的问题 diff --git a/src/renderer/utils/index.js b/src/renderer/utils/index.js index 09324774..6c8b6adb 100644 --- a/src/renderer/utils/index.js +++ b/src/renderer/utils/index.js @@ -78,8 +78,9 @@ const encodeNames = { '>': '>', '"': '"', ''': "'", + ''': "'", } -export const decodeName = str => str.replace(/(?:&|<|>|"|')/g, s => encodeNames[s]) +export const decodeName = str => str.replace(/(?:&|<|>|"|'|')/gm, s => encodeNames[s]) const easeInOutQuad = (t, b, c, d) => { t /= d / 2 diff --git a/src/renderer/utils/music/kg/comment.js b/src/renderer/utils/music/kg/comment.js index 71515fc1..6cb6fd52 100644 --- a/src/renderer/utils/music/kg/comment.js +++ b/src/renderer/utils/music/kg/comment.js @@ -1,5 +1,5 @@ import { httpFetch } from '../../request' -import { dateFormat2 } from '../../' +import { decodeName, dateFormat2 } from '../../' export default { _requestObj: null, @@ -48,7 +48,7 @@ export default { return rawList.map(item => { let data = { id: item.id, - text: item.content.split('\n'), + text: decodeName(item.content || '').split('\n'), time: item.addtime, timeStr: dateFormat2(new Date(item.addtime).getTime()), userName: item.user_name, @@ -61,7 +61,7 @@ export default { return item.pcontent ? { id: item.id, - text: item.pcontent.split('\n'), + text: decodeName(item.pcontent).split('\n'), time: null, userName: item.puser, avatar: null, diff --git a/src/renderer/utils/music/kg/hotSearch.js b/src/renderer/utils/music/kg/hotSearch.js index 2cafe5b1..4e0e2443 100644 --- a/src/renderer/utils/music/kg/hotSearch.js +++ b/src/renderer/utils/music/kg/hotSearch.js @@ -1,4 +1,5 @@ import { httpFetch } from '../../request' +import { decodeName } from '../..' export default { _requestObj: null, @@ -25,7 +26,7 @@ export default { filterList(rawList) { const list = [] rawList.forEach(item => { - item.keywords.map(k => list.push(k.keyword)) + item.keywords.map(k => list.push(decodeName(k.keyword))) }) return list }, diff --git a/src/renderer/utils/music/kg/leaderboard.js b/src/renderer/utils/music/kg/leaderboard.js index da250ef9..c5c34741 100644 --- a/src/renderer/utils/music/kg/leaderboard.js +++ b/src/renderer/utils/music/kg/leaderboard.js @@ -1,5 +1,5 @@ import { httpGet, cancelHttp, httpFetch } from '../../request' -import { formatPlayTime, sizeFormate } from '../../index' +import { decodeName, formatPlayTime, sizeFormate } from '../../index' let boardList = [{ id: 'kg__8888', name: '酷狗TOP500', bangid: '8888' }, { id: 'kg__6666', name: '酷狗飙升榜', bangid: '6666' }, { id: 'kg__37361', name: '酷狗雷达榜', bangid: '37361' }, { id: 'kg__23784', name: '网络红歌榜', bangid: '23784' }, { id: 'kg__24971', name: 'DJ热歌榜', bangid: '24971' }, { id: 'kg__35811', name: '会员专享热歌榜', bangid: '35811' }, { id: 'kg__31308', name: '华语新歌榜', bangid: '31308' }, { id: 'kg__31310', name: '欧美新歌榜', bangid: '31310' }, { id: 'kg__31311', name: '韩国新歌榜', bangid: '31311' }, { id: 'kg__31312', name: '日本新歌榜', bangid: '31312' }, { id: 'kg__31313', name: '粤语新歌榜', bangid: '31313' }, { id: 'kg__33162', name: 'ACG新歌榜', bangid: '33162' }, { id: 'kg__21101', name: '酷狗分享榜', bangid: '21101' }, { id: 'kg__30972', name: '腾讯音乐人原创榜', bangid: '30972' }, { id: 'kg__22603', name: '5sing音乐榜', bangid: '22603' }, { id: 'kg__33160', name: '电音热歌榜', bangid: '33160' }, { id: 'kg__21335', name: '繁星音乐榜', bangid: '21335' }, { id: 'kg__33161', name: '古风新歌榜', bangid: '33161' }, { id: 'kg__33163', name: '影视金曲榜', bangid: '33163' }, { id: 'kg__33166', name: '欧美金曲榜', bangid: '33166' }, { id: 'kg__33165', name: '粤语金曲榜', bangid: '33165' }, { id: 'kg__36107', name: '小语种热歌榜', bangid: '36107' }, { id: 'kg__4681', name: '美国BillBoard榜', bangid: '4681' }, { id: 'kg__4680', name: '英国单曲榜', bangid: '4680' }, { id: 'kg__4673', name: '日本公信榜', bangid: '4673' }, { id: 'kg__38623', name: '韩国Melon音乐榜', bangid: '38623' }, { id: 'kg__42807', name: 'joox本地热歌榜', bangid: '42807' }, { id: 'kg__42808', name: '台湾KKBOX风云榜', bangid: '42808' }] @@ -134,9 +134,9 @@ export default { } } return { - singer: item.singername, - name: item.songname, - albumName: item.album_name, + singer: decodeName(item.singername), + name: decodeName(item.songname), + albumName: decodeName(item.album_name), albumId: item.album_id, songmid: item.audio_id, source: 'kg', diff --git a/src/renderer/utils/music/kg/lyric.js b/src/renderer/utils/music/kg/lyric.js index d0f4f903..1e6bc9c3 100644 --- a/src/renderer/utils/music/kg/lyric.js +++ b/src/renderer/utils/music/kg/lyric.js @@ -1,5 +1,6 @@ import { httpFetch } from '../../request' import { decodeLyric } from './util' +import { decodeName } from '../..' const parseLyric = str => { str = str.replace(/(?:<\d+,\d+,\d+>|\r)/g, '') @@ -30,6 +31,8 @@ const parseLyric = str => { return str.replace(result[1], time) }) tlyric = tlyric ? tlyric.join('\n') : '' + lyric = decodeName(lyric) + tlyric = decodeName(tlyric) return { lyric, tlyric, diff --git a/src/renderer/utils/music/kg/musicSearch.js b/src/renderer/utils/music/kg/musicSearch.js index 62f8b61a..98aeeddb 100644 --- a/src/renderer/utils/music/kg/musicSearch.js +++ b/src/renderer/utils/music/kg/musicSearch.js @@ -1,7 +1,7 @@ // import '../../polyfill/array.find' // import jshtmlencode from 'js-htmlencode' import { httpFetch } from '../../request' -import { formatPlayTime, sizeFormate } from '../../index' +import { decodeName, formatPlayTime, sizeFormate } from '../../index' // import { debug } from '../../utils/env' // import { formatSinger } from './util' @@ -50,9 +50,9 @@ export default { } } list.push({ - singer: item.singername, - name: item.songname, - albumName: item.album_name, + singer: decodeName(item.singername), + name: decodeName(item.songname), + albumName: decodeName(item.album_name), albumId: item.album_id, songmid: item.audio_id, source: 'kg', diff --git a/src/renderer/utils/music/kg/songList.js b/src/renderer/utils/music/kg/songList.js index 3c17f9e6..f1fc7afe 100644 --- a/src/renderer/utils/music/kg/songList.js +++ b/src/renderer/utils/music/kg/songList.js @@ -1,5 +1,5 @@ import { httpFetch } from '../../request' -import { formatPlayTime, sizeFormate } from '../../index' +import { decodeName, formatPlayTime, sizeFormate } from '../../index' import { toMD5 } from '../utils' export default { @@ -454,9 +454,9 @@ export default { } } return { - singer: item.singername, - name: item.songname, - albumName: item.album_name, + singer: decodeName(item.singername), + name: decodeName(item.songname), + albumName: decodeName(item.album_name), albumId: item.album_id, songmid: item.audio_id, source: 'kg', @@ -507,9 +507,9 @@ export default { } } list.push({ - singer: item.author_name, - name: item.ori_audio_name, - albumName: item.album_info.album_name, + singer: decodeName(item.author_name), + name: decodeName(item.ori_audio_name), + albumName: decodeName(item.album_info.album_name), albumId: item.album_info.album_id, songmid: item.audio_info.audio_id, source: 'kg', From 64a53830e4d51da5f002703708ad3bc3edc54863 Mon Sep 17 00:00:00 2001 From: lyswhut Date: Thu, 19 Nov 2020 15:52:00 +0800 Subject: [PATCH 04/41] =?UTF-8?q?=E6=96=B0=E5=A2=9E=E6=92=AD=E6=94=BE?= =?UTF-8?q?=E8=BF=9B=E5=BA=A6=E4=BF=A1=E6=81=AF=E4=BF=9D=E5=AD=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- publish/changeLog.md | 1 + src/renderer/App.vue | 25 +++++++++++++++ src/renderer/components/core/Player.vue | 41 +++++++++++++++++++------ 3 files changed, 57 insertions(+), 10 deletions(-) diff --git a/publish/changeLog.md b/publish/changeLog.md index e44e90ec..f744f593 100644 --- a/publish/changeLog.md +++ b/publish/changeLog.md @@ -1,6 +1,7 @@ ### 新增 - 托盘菜单新增显示、隐藏主界面选项,为Linux、MAC版添加托盘菜单 +- 新增播放进度信息保存 ### 优化 diff --git a/src/renderer/App.vue b/src/renderer/App.vue index 14951541..01ccc8b3 100644 --- a/src/renderer/App.vue +++ b/src/renderer/App.vue @@ -174,6 +174,9 @@ export default { ...mapMutations('search', { setSearchHistoryList: 'setHistory', }), + ...mapMutations('player', { + setPlayList: 'setList', + }), init() { document.documentElement.style.fontSize = this.windowSizeActive.fontSize @@ -276,6 +279,7 @@ export default { if (!loveList.list) loveList.list = [] this.initList({ defaultList, loveList, userList }) this.initDownloadList(downloadList) // 初始化下载列表 + this.initPlayInfo() }) }, initDownloadList(downloadList) { @@ -299,6 +303,27 @@ export default { } }) }, + initPlayInfo() { + rendererInvoke(NAMES.mainWindow.get_data, 'playInfo').then(info => { + // console.log(info, window.allList) + if (!info) return + if (info.listId) { + const list = window.allList[info.listId] + // console.log(list) + if (!list) return + info.list = list.list + } + + window.restorePlayInfo = info + this.setPlayList({ + list: { + list: info.list, + id: info.listId, + }, + index: info.index, + }) + }) + }, showUpdateModal() { (this.version.newVersion && this.version.newVersion.history ? Promise.resolve(this.version.newVersion) diff --git a/src/renderer/components/core/Player.vue b/src/renderer/components/core/Player.vue index 8a4b5fbc..b86e92d9 100644 --- a/src/renderer/components/core/Player.vue +++ b/src/renderer/components/core/Player.vue @@ -87,7 +87,7 @@ div(:class="$style.player") diff --git a/src/renderer/views/SongList.vue b/src/renderer/views/SongList.vue index af6e3168..2c1b5cda 100644 --- a/src/renderer/views/SongList.vue +++ b/src/renderer/views/SongList.vue @@ -405,14 +405,22 @@ export default { }, async fetchList() { this.detailLoading = true - const list = await this.getListDetailAll(this.selectListInfo.id) - this.detailLoading = false - return list + return this.getListDetailAll({ source: this.source, id: this.selectListInfo.id }).catch(err => { + return Promise.reject(err) + }).finally(() => { + this.detailLoading = false + }) }, async addSongListDetail() { if (!this.listDetail.info.name) return const list = await this.fetchList() - this.createUserList({ name: this.listDetail.info.name, id: `${this.listDetail.source}__${this.listDetail.id}`, list }) + this.createUserList({ + name: this.listDetail.info.name, + id: `${this.listDetail.source}__${this.listDetail.id}`, + list, + source: this.listDetail.source, + sourceListId: this.listDetail.id, + }) }, async playSongListDetail() { if (!this.listDetail.info.name) return From 10e5460e39c189656ef02785e21da97279a522da Mon Sep 17 00:00:00 2001 From: lyswhut Date: Fri, 11 Dec 2020 08:29:30 +0800 Subject: [PATCH 22/41] =?UTF-8?q?=E4=BC=98=E5=8C=96=E8=BD=AF=E4=BB=B6?= =?UTF-8?q?=E5=90=AF=E5=8A=A8=E6=97=B6=E6=81=A2=E5=A4=8D=E4=B8=8A=E4=B8=80?= =?UTF-8?q?=E6=AC=A1=E6=92=AD=E6=94=BE=E7=9A=84=E6=AD=8C=E6=9B=B2=E8=BF=9B?= =?UTF-8?q?=E5=BA=A6=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- publish/changeLog.md | 4 +++ src/renderer/App.vue | 4 ++- src/renderer/components/core/Player.vue | 37 +++++++++++++++++++------ src/renderer/store/modules/songList.js | 15 ++++++++-- 4 files changed, 48 insertions(+), 12 deletions(-) diff --git a/publish/changeLog.md b/publish/changeLog.md index 697b4bac..085d884a 100644 --- a/publish/changeLog.md +++ b/publish/changeLog.md @@ -2,6 +2,10 @@ - 直接从歌单详情收藏的列表新增同步功能。注意:这将会覆盖本地的目标列表,歌曲将被替换成最新的在线列表 +### 优化 + +- 优化软件启动时恢复上一次播放的歌曲进度功能 + ### 修复 - 修复MAC平台上下载歌曲封面嵌入无法显示的问题 diff --git a/src/renderer/App.vue b/src/renderer/App.vue index c14726f9..08a5e7e6 100644 --- a/src/renderer/App.vue +++ b/src/renderer/App.vue @@ -284,7 +284,7 @@ export default { l.sourceListId = id if (!needSave) needSave = true }) - if (needSave) this.this.saveUserList(userList) + if (needSave) this.saveUserList(userList) } else { userList = this.userList } @@ -320,7 +320,9 @@ export default { initPlayInfo() { rendererInvoke(NAMES.mainWindow.get_data, 'playInfo').then(info => { // console.log(info, window.allList) + window.restorePlayInfo = null if (!info) return + if (info.index < 0) return if (info.listId) { const list = window.allList[info.listId] // console.log(list) diff --git a/src/renderer/components/core/Player.vue b/src/renderer/components/core/Player.vue index 8d488d54..07cc1e8a 100644 --- a/src/renderer/components/core/Player.vue +++ b/src/renderer/components/core/Player.vue @@ -244,9 +244,28 @@ export default { watch: { changePlay(n) { if (!n) return + this.resetChangePlay() + if (window.restorePlayInfo) { + let musicInfo = this.targetSong = this.list[window.restorePlayInfo.index] + this.musicInfo.songmid = musicInfo.songmid + this.musicInfo.singer = musicInfo.singer + this.musicInfo.name = musicInfo.name + this.musicInfo.album = musicInfo.albumName + this.setImg(musicInfo) + this.setLrc(musicInfo) + this.nowPlayTime = this.restorePlayTime = window.restorePlayInfo.time + this.maxPlayTime = window.restorePlayInfo.maxTime || 0 + this.handleUpdateWinLyricInfo('music_info', { + songmid: this.musicInfo.songmid, + singer: this.musicInfo.singer, + name: this.musicInfo.name, + album: this.musicInfo.album, + }) + window.restorePlayInfo = null + return + } // console.log('changePlay') this.handleRemoveMusic() - this.resetChangePlay() if (this.playIndex < 0) return this.stopPlay() this.play() @@ -295,6 +314,7 @@ export default { if (Math.abs(n - o) > 2) this.isActiveTransition = true this.savePlayInfo({ time: n, + maxTime: this.maxPlayTime, listId: this.listId, list: this.listId == null ? this.list : null, index: this.playIndex, @@ -377,12 +397,7 @@ export default { this.clearLoadingTimeout() this.status = this.statusText = this.$t('core.player.loading') this.maxPlayTime = audio.duration - if (window.restorePlayInfo) { - audio.currentTime = window.restorePlayInfo.time - window.restorePlayInfo = null - audio.pause() - this.stopPlay() - } else if (this.restorePlayTime) { + if (this.restorePlayTime) { audio.currentTime = this.restorePlayTime this.restorePlayTime = 0 } @@ -651,7 +666,13 @@ export default { ) }, togglePlay() { - if (!audio.src) return + if (!audio.src) { + if (this.restorePlayTime != null) { + if (!this.assertApiSupport(this.targetSong.source)) return this.handleNext() + this.setUrl(this.targetSong) + } + return + } if (this.isPlay) { audio.pause() this.clearBufferTimeout() diff --git a/src/renderer/store/modules/songList.js b/src/renderer/store/modules/songList.js index 406db827..72bc4367 100644 --- a/src/renderer/store/modules/songList.js +++ b/src/renderer/store/modules/songList.js @@ -9,6 +9,15 @@ for (const source of music.sources) { sources.push(source) } +const filterList = list => { + const keys = new Set() + return list.filter(item => { + if (keys.has(item.songmid)) return false + keys.add(item.songmid) + return true + }) +} + // state const state = { tags: {}, @@ -78,7 +87,7 @@ const actions = { return ( cache.has(key) ? Promise.resolve(cache.get(key)) - : music[source].songList.getListDetail(id, page) + : music[source].songList.getListDetail(id, page).then(result => ({ ...result, list: filterList(result.list) })) ).then(result => commit('setListDetail', { result, key, source, id, page })) }, getListDetailAll({ state, rootState }, { source, id }) { @@ -93,7 +102,7 @@ const actions = { }) } return loadData(id, 1).then(result => { - if (result.total <= result.limit) return result.list + if (result.total <= result.limit) return filterList(result.list) let maxPage = Math.ceil(result.total / result.limit) const loadDetail = (loadPage = 1) => { @@ -101,7 +110,7 @@ const actions = { ? loadData(id, ++loadPage).then(result => result.list) : loadData(id, ++loadPage).then(result1 => loadDetail(loadPage).then(result2 => [...result1.list, ...result2])) } - return loadDetail().then(result2 => [...result.list, ...result2]) + return loadDetail().then(result2 => [...result.list, ...result2]).then(list => filterList(list)) }) }, } From f9f445489cca164fea38a4498263a93feee59047 Mon Sep 17 00:00:00 2001 From: lyswhut Date: Fri, 11 Dec 2020 08:34:47 +0800 Subject: [PATCH 23/41] Update template --- .github/ISSUE_TEMPLATE/----.md | 9 ++++++--- .github/ISSUE_TEMPLATE/--bug.md | 14 ++++++++++---- 2 files changed, 16 insertions(+), 7 deletions(-) diff --git a/.github/ISSUE_TEMPLATE/----.md b/.github/ISSUE_TEMPLATE/----.md index b72c98b5..848bd9aa 100644 --- a/.github/ISSUE_TEMPLATE/----.md +++ b/.github/ISSUE_TEMPLATE/----.md @@ -13,10 +13,13 @@ assignees: '' - [ ] 我已搜索issue列表() **描述您想要的解决方案** -简洁明了地描述您要发生的事情。 + + **描述您考虑过的替代方案** -对您考虑过的所有替代解决方案或功能的简洁明了的描述。 + + **其他内容** -在此处添加有关功能请求的任何其他上下文或屏幕截图(直接把图片拖到编辑框即可添加图片)。 + + diff --git a/.github/ISSUE_TEMPLATE/--bug.md b/.github/ISSUE_TEMPLATE/--bug.md index 02f0c690..be948180 100644 --- a/.github/ISSUE_TEMPLATE/--bug.md +++ b/.github/ISSUE_TEMPLATE/--bug.md @@ -13,7 +13,8 @@ assignees: '' - [ ] 我已搜索issue列表() **描述错误** -清楚简洁地说明错误是什么。 + + **重现** 重现行为的步骤: @@ -22,15 +23,20 @@ assignees: '' 3.向下滚动到“ ....” 4.看到错误 + **预期行为** -对您期望发生的事情的简洁明了的描述。 + + **截图** -如果适用,请添加屏幕截图以帮助解释您的问题(直接把图片拖到编辑框即可添加图片)。 + + **环境:**   -操作系统及版本:[例如:Windows 10 64位 18362.156]   -软件安装包及版本:[例如:Windows 64位绿色版 1.0.0] + **其他内容** -在此处添加有关该问题的任何其他上下文。 + + From e9791fd4936e63a97f07789587dd2a320dda36d5 Mon Sep 17 00:00:00 2001 From: lyswhut Date: Sat, 12 Dec 2020 09:26:15 +0800 Subject: [PATCH 24/41] =?UTF-8?q?=E4=BF=AE=E6=AD=A3=E8=BF=9B=E5=BA=A6?= =?UTF-8?q?=E6=9D=A1=E7=8A=B6=E6=80=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/renderer/components/core/Player.vue | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/renderer/components/core/Player.vue b/src/renderer/components/core/Player.vue index 07cc1e8a..21cab61f 100644 --- a/src/renderer/components/core/Player.vue +++ b/src/renderer/components/core/Player.vue @@ -261,6 +261,9 @@ export default { name: this.musicInfo.name, album: this.musicInfo.album, }) + this.$nextTick(() => { + this.sendProgressEvent(this.progress, 'paused') + }) window.restorePlayInfo = null return } From 75e3976bfaeb7a8deeeeaea7cd0d6aaac44bcc11 Mon Sep 17 00:00:00 2001 From: lyswhut Date: Sat, 12 Dec 2020 09:41:31 +0800 Subject: [PATCH 25/41] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E5=90=8C=E6=AD=A5?= =?UTF-8?q?=E6=AD=8C=E5=8D=95=E7=8A=B6=E6=80=81=E6=8C=87=E7=A4=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/renderer/views/List.vue | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/src/renderer/views/List.vue b/src/renderer/views/List.vue index 7afb79e3..d0f1a077 100644 --- a/src/renderer/views/List.vue +++ b/src/renderer/views/List.vue @@ -11,7 +11,10 @@ span(:class="$style.listsLabel") {{defaultList.name}} li(:class="[$style.listsItem, loveList.id == listId ? $style.active : null]" :tips="loveList.name" @click="handleListToggle(loveList.id)") span(:class="$style.listsLabel") {{loveList.name}} - li.user-list(:class="[$style.listsItem, item.id == listId ? $style.active : null, listsData.rightClickItemIndex == index ? $style.clicked : null]" @contextmenu="handleListsItemRigthClick($event, index)" :tips="item.name" v-for="(item, index) in userList" :key="item.id") + li.user-list( + :class="[$style.listsItem, item.id == listId ? $style.active : null, listsData.rightClickItemIndex == index ? $style.clicked : null, fetchingListStatus[item.id] ? $style.fetching : null]" + @contextmenu="handleListsItemRigthClick($event, index)" + :tips="item.name" v-for="(item, index) in userList" :key="item.id") span(:class="$style.listsLabel" @click="handleListToggle(item.id, index + 2)") {{item.name}} input.key-bind(:class="$style.listsInput" @contextmenu.stop type="text" @keyup.enter="handleListsSave(index, $event)" @blur="handleListsSave(index, $event)" :value="item.name" :placeholder="item.name") transition(enter-active-class="animated-fast slideInLeft" leave-active-class="animated-fast fadeOut" @after-leave="handleListsNewAfterLeave") @@ -924,7 +927,7 @@ export default { .listsItem { position: relative; transition: .3s ease; - transition-property: color, background-color; + transition-property: color, background-color, opacity; background-color: transparent; &:hover:not(.active) { background-color: @color-theme_2-hover; @@ -940,6 +943,9 @@ export default { &.clicked { background-color: @color-theme_2-hover; } + &.fetching { + opacity: .5; + } &.editing { padding: 0 10px; background-color: @color-theme_2-hover; From 8cf1a4a7906a74a14c0828ce39748e6c03867ea4 Mon Sep 17 00:00:00 2001 From: lyswhut Date: Sat, 12 Dec 2020 19:35:10 +0800 Subject: [PATCH 26/41] =?UTF-8?q?=E6=9B=B4=E6=96=B0=E4=BE=9D=E8=B5=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- jsconfig.json | 19 + package-lock.json | 906 ++++++++++++++++++++++++++-------------------- package.json | 36 +- 3 files changed, 558 insertions(+), 403 deletions(-) create mode 100644 jsconfig.json diff --git a/jsconfig.json b/jsconfig.json new file mode 100644 index 00000000..aa3964b1 --- /dev/null +++ b/jsconfig.json @@ -0,0 +1,19 @@ +{ + "compilerOptions": { + "module": "commonjs", + "target": "es6", + // This is the line you want to add + "allowSyntheticDefaultImports": true, + + "baseUrl": ".", + "paths": { + "@main": ["src/main"], + "@renderer": ["src/renderer"], + "@lyric": ["src/renderer-lyric"], + "@static": ["src/static"], + "@common": ["src/common"], + } + }, + "include": ["src/**/*"], + "exclude": ["node_modules/**/*"] +} diff --git a/package-lock.json b/package-lock.json index ec69355e..270b1965 100644 --- a/package-lock.json +++ b/package-lock.json @@ -20,31 +20,30 @@ } }, "@babel/compat-data": { - "version": "7.12.1", - "resolved": "https://registry.npm.taobao.org/@babel/compat-data/download/@babel/compat-data-7.12.1.tgz?cache=0&sync_timestamp=1602801772375&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fcompat-data%2Fdownload%2F%40babel%2Fcompat-data-7.12.1.tgz", - "integrity": "sha1-1zhqaJqg3fBiVQBbS5kZiAIRAaA=", + "version": "7.12.7", + "resolved": "https://registry.npm.taobao.org/@babel/compat-data/download/@babel/compat-data-7.12.7.tgz?cache=0&sync_timestamp=1605904555025&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fcompat-data%2Fdownload%2F%40babel%2Fcompat-data-7.12.7.tgz", + "integrity": "sha1-kym0eCp9a71+71fhGt35HuPvHkE=", "dev": true }, "@babel/core": { - "version": "7.12.3", - "resolved": "https://registry.npm.taobao.org/@babel/core/download/@babel/core-7.12.3.tgz?cache=0&sync_timestamp=1602881203345&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fcore%2Fdownload%2F%40babel%2Fcore-7.12.3.tgz", - "integrity": "sha1-G0NohOHjv/b7EyjcArIIdZ3pKtg=", + "version": "7.12.10", + "resolved": "https://registry.npm.taobao.org/@babel/core/download/@babel/core-7.12.10.tgz", + "integrity": "sha1-t5ouG59w7T2Eu/ttjE74JfYGvM0=", "dev": true, "requires": { "@babel/code-frame": "^7.10.4", - "@babel/generator": "^7.12.1", + "@babel/generator": "^7.12.10", "@babel/helper-module-transforms": "^7.12.1", - "@babel/helpers": "^7.12.1", - "@babel/parser": "^7.12.3", - "@babel/template": "^7.10.4", - "@babel/traverse": "^7.12.1", - "@babel/types": "^7.12.1", + "@babel/helpers": "^7.12.5", + "@babel/parser": "^7.12.10", + "@babel/template": "^7.12.7", + "@babel/traverse": "^7.12.10", + "@babel/types": "^7.12.10", "convert-source-map": "^1.7.0", "debug": "^4.1.0", "gensync": "^1.0.0-beta.1", "json5": "^2.1.2", "lodash": "^4.17.19", - "resolve": "^1.3.2", "semver": "^5.4.1", "source-map": "^0.5.0" }, @@ -59,12 +58,12 @@ } }, "@babel/generator": { - "version": "7.12.1", - "resolved": "https://registry.npm.taobao.org/@babel/generator/download/@babel/generator-7.12.1.tgz?cache=0&sync_timestamp=1602799917077&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fgenerator%2Fdownload%2F%40babel%2Fgenerator-7.12.1.tgz", - "integrity": "sha1-DXC+Mr2qA9fFHIWX3aduDfHxVGg=", + "version": "7.12.10", + "resolved": "https://registry.npm.taobao.org/@babel/generator/download/@babel/generator-7.12.10.tgz?cache=0&sync_timestamp=1607569383543&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fgenerator%2Fdownload%2F%40babel%2Fgenerator-7.12.10.tgz", + "integrity": "sha1-KxiPwyn7jk92IYFwO+/8D+bfNGA=", "dev": true, "requires": { - "@babel/types": "^7.12.1", + "@babel/types": "^7.12.10", "jsesc": "^2.5.1", "source-map": "^0.5.0" } @@ -81,12 +80,12 @@ } }, "@babel/helper-get-function-arity": { - "version": "7.10.4", - "resolved": "https://registry.npm.taobao.org/@babel/helper-get-function-arity/download/@babel/helper-get-function-arity-7.10.4.tgz?cache=0&sync_timestamp=1593521294451&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-get-function-arity%2Fdownload%2F%40babel%2Fhelper-get-function-arity-7.10.4.tgz", - "integrity": "sha1-mMHL6g4jMvM/mkZhuM4VBbLBm6I=", + "version": "7.12.10", + "resolved": "https://registry.npm.taobao.org/@babel/helper-get-function-arity/download/@babel/helper-get-function-arity-7.12.10.tgz?cache=0&sync_timestamp=1607584580801&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-get-function-arity%2Fdownload%2F%40babel%2Fhelper-get-function-arity-7.12.10.tgz", + "integrity": "sha1-sViBejFltfqiBHgl36YZcN3MFs8=", "dev": true, "requires": { - "@babel/types": "^7.10.4" + "@babel/types": "^7.12.10" } }, "@babel/helper-split-export-declaration": { @@ -116,43 +115,43 @@ } }, "@babel/parser": { - "version": "7.12.3", - "resolved": "https://registry.npm.taobao.org/@babel/parser/download/@babel/parser-7.12.3.tgz?cache=0&sync_timestamp=1602881242014&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fparser%2Fdownload%2F%40babel%2Fparser-7.12.3.tgz", - "integrity": "sha1-owVBXr56bHAjtAtRIqBmLZKDNM0=", + "version": "7.12.10", + "resolved": "https://registry.npm.taobao.org/@babel/parser/download/@babel/parser-7.12.10.tgz?cache=0&sync_timestamp=1607569377971&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fparser%2Fdownload%2F%40babel%2Fparser-7.12.10.tgz", + "integrity": "sha1-gkYA1Z6WrqJqWir1qdgSrwXDroE=", "dev": true }, "@babel/template": { - "version": "7.10.4", - "resolved": "https://registry.npm.taobao.org/@babel/template/download/@babel/template-7.10.4.tgz", - "integrity": "sha1-MlGZbEIA68cdGo/EBfupQPNrong=", + "version": "7.12.7", + "resolved": "https://registry.npm.taobao.org/@babel/template/download/@babel/template-7.12.7.tgz?cache=0&sync_timestamp=1605904556456&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Ftemplate%2Fdownload%2F%40babel%2Ftemplate-7.12.7.tgz", + "integrity": "sha1-yBcjNpYBjjn7tsSR0vtoTgXtQ7w=", "dev": true, "requires": { "@babel/code-frame": "^7.10.4", - "@babel/parser": "^7.10.4", - "@babel/types": "^7.10.4" + "@babel/parser": "^7.12.7", + "@babel/types": "^7.12.7" } }, "@babel/traverse": { - "version": "7.12.1", - "resolved": "https://registry.npm.taobao.org/@babel/traverse/download/@babel/traverse-7.12.1.tgz?cache=0&sync_timestamp=1602801751997&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Ftraverse%2Fdownload%2F%40babel%2Ftraverse-7.12.1.tgz", - "integrity": "sha1-lBOV4MXMhtXT51yqCV05JFJvDB4=", + "version": "7.12.10", + "resolved": "https://registry.npm.taobao.org/@babel/traverse/download/@babel/traverse-7.12.10.tgz?cache=0&sync_timestamp=1607569373091&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Ftraverse%2Fdownload%2F%40babel%2Ftraverse-7.12.10.tgz", + "integrity": "sha1-LR9AQei/QuoJnlstxI1qWUwAAXo=", "dev": true, "requires": { "@babel/code-frame": "^7.10.4", - "@babel/generator": "^7.12.1", + "@babel/generator": "^7.12.10", "@babel/helper-function-name": "^7.10.4", "@babel/helper-split-export-declaration": "^7.11.0", - "@babel/parser": "^7.12.1", - "@babel/types": "^7.12.1", + "@babel/parser": "^7.12.10", + "@babel/types": "^7.12.10", "debug": "^4.1.0", "globals": "^11.1.0", "lodash": "^4.17.19" } }, "@babel/types": { - "version": "7.12.1", - "resolved": "https://registry.npm.taobao.org/@babel/types/download/@babel/types-7.12.1.tgz?cache=0&sync_timestamp=1602799916513&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Ftypes%2Fdownload%2F%40babel%2Ftypes-7.12.1.tgz", - "integrity": "sha1-4QnZq5mo3nNb4ofuPWqZR6GQxK4=", + "version": "7.12.10", + "resolved": "https://registry.npm.taobao.org/@babel/types/download/@babel/types-7.12.10.tgz?cache=0&sync_timestamp=1607569351602&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Ftypes%2Fdownload%2F%40babel%2Ftypes-7.12.10.tgz", + "integrity": "sha1-eWXkpyYLJvCcVrz8sEmK8fbZsmA=", "dev": true, "requires": { "@babel/helper-validator-identifier": "^7.10.4", @@ -192,12 +191,12 @@ } }, "@babel/helper-annotate-as-pure": { - "version": "7.10.4", - "resolved": "https://registry.npm.taobao.org/@babel/helper-annotate-as-pure/download/@babel/helper-annotate-as-pure-7.10.4.tgz?cache=0&sync_timestamp=1593521294951&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-annotate-as-pure%2Fdownload%2F%40babel%2Fhelper-annotate-as-pure-7.10.4.tgz", - "integrity": "sha1-W/DUlaP3V6w72ki1vzs7ownHK6M=", + "version": "7.12.10", + "resolved": "https://registry.npm.taobao.org/@babel/helper-annotate-as-pure/download/@babel/helper-annotate-as-pure-7.12.10.tgz?cache=0&sync_timestamp=1607583995267&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-annotate-as-pure%2Fdownload%2F%40babel%2Fhelper-annotate-as-pure-7.12.10.tgz", + "integrity": "sha1-VKubAA5gqTZEzhez830xOq8dEV0=", "dev": true, "requires": { - "@babel/types": "^7.10.4" + "@babel/types": "^7.12.10" }, "dependencies": { "@babel/helper-validator-identifier": { @@ -207,9 +206,9 @@ "dev": true }, "@babel/types": { - "version": "7.12.1", - "resolved": "https://registry.npm.taobao.org/@babel/types/download/@babel/types-7.12.1.tgz?cache=0&sync_timestamp=1602799916513&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Ftypes%2Fdownload%2F%40babel%2Ftypes-7.12.1.tgz", - "integrity": "sha1-4QnZq5mo3nNb4ofuPWqZR6GQxK4=", + "version": "7.12.10", + "resolved": "https://registry.npm.taobao.org/@babel/types/download/@babel/types-7.12.10.tgz?cache=0&sync_timestamp=1607569351602&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Ftypes%2Fdownload%2F%40babel%2Ftypes-7.12.10.tgz", + "integrity": "sha1-eWXkpyYLJvCcVrz8sEmK8fbZsmA=", "dev": true, "requires": { "@babel/helper-validator-identifier": "^7.10.4", @@ -236,9 +235,9 @@ "dev": true }, "@babel/types": { - "version": "7.12.1", - "resolved": "https://registry.npm.taobao.org/@babel/types/download/@babel/types-7.12.1.tgz?cache=0&sync_timestamp=1602799916513&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Ftypes%2Fdownload%2F%40babel%2Ftypes-7.12.1.tgz", - "integrity": "sha1-4QnZq5mo3nNb4ofuPWqZR6GQxK4=", + "version": "7.12.10", + "resolved": "https://registry.npm.taobao.org/@babel/types/download/@babel/types-7.12.10.tgz?cache=0&sync_timestamp=1607569351602&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Ftypes%2Fdownload%2F%40babel%2Ftypes-7.12.10.tgz", + "integrity": "sha1-eWXkpyYLJvCcVrz8sEmK8fbZsmA=", "dev": true, "requires": { "@babel/helper-validator-identifier": "^7.10.4", @@ -249,17 +248,54 @@ } }, "@babel/helper-compilation-targets": { - "version": "7.12.1", - "resolved": "https://registry.npm.taobao.org/@babel/helper-compilation-targets/download/@babel/helper-compilation-targets-7.12.1.tgz?cache=0&sync_timestamp=1602799917475&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-compilation-targets%2Fdownload%2F%40babel%2Fhelper-compilation-targets-7.12.1.tgz", - "integrity": "sha1-MQ41KIj7292Fd76N/dKvueetz1A=", + "version": "7.12.5", + "resolved": "https://registry.npm.taobao.org/@babel/helper-compilation-targets/download/@babel/helper-compilation-targets-7.12.5.tgz?cache=0&sync_timestamp=1604441105017&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-compilation-targets%2Fdownload%2F%40babel%2Fhelper-compilation-targets-7.12.5.tgz", + "integrity": "sha1-y0cMdhmNtqJOnbyJhydWMeXSmDE=", "dev": true, "requires": { - "@babel/compat-data": "^7.12.1", + "@babel/compat-data": "^7.12.5", "@babel/helper-validator-option": "^7.12.1", - "browserslist": "^4.12.0", + "browserslist": "^4.14.5", "semver": "^5.5.0" }, "dependencies": { + "browserslist": { + "version": "4.16.0", + "resolved": "https://registry.npm.taobao.org/browserslist/download/browserslist-4.16.0.tgz?cache=0&sync_timestamp=1607665751821&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fbrowserslist%2Fdownload%2Fbrowserslist-4.16.0.tgz", + "integrity": "sha1-QQJ3YnUAvjyyihv+A3WG++35SIs=", + "dev": true, + "requires": { + "caniuse-lite": "^1.0.30001165", + "colorette": "^1.2.1", + "electron-to-chromium": "^1.3.621", + "escalade": "^3.1.1", + "node-releases": "^1.1.67" + } + }, + "caniuse-lite": { + "version": "1.0.30001165", + "resolved": "https://registry.npm.taobao.org/caniuse-lite/download/caniuse-lite-1.0.30001165.tgz?cache=0&sync_timestamp=1607085783171&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcaniuse-lite%2Fdownload%2Fcaniuse-lite-1.0.30001165.tgz", + "integrity": "sha1-MpVUkNL2ApC7GGu3VPKYGRf6dE8=", + "dev": true + }, + "electron-to-chromium": { + "version": "1.3.622", + "resolved": "https://registry.npm.taobao.org/electron-to-chromium/download/electron-to-chromium-1.3.622.tgz?cache=0&sync_timestamp=1607664103229&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Felectron-to-chromium%2Fdownload%2Felectron-to-chromium-1.3.622.tgz", + "integrity": "sha1-lya9LmelRiFUdQzpcBymrwfQeHc=", + "dev": true + }, + "escalade": { + "version": "3.1.1", + "resolved": "https://registry.npm.taobao.org/escalade/download/escalade-3.1.1.tgz?cache=0&sync_timestamp=1602567224085&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fescalade%2Fdownload%2Fescalade-3.1.1.tgz", + "integrity": "sha1-2M/ccACWXFoBdLSoLqpcBVJ0LkA=", + "dev": true + }, + "node-releases": { + "version": "1.1.67", + "resolved": "https://registry.npm.taobao.org/node-releases/download/node-releases-1.1.67.tgz?cache=0&sync_timestamp=1605581385142&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fnode-releases%2Fdownload%2Fnode-releases-1.1.67.tgz", + "integrity": "sha1-KOv8zNC6pqrY6NTY/ky8Sa4jnBI=", + "dev": true + }, "semver": { "version": "5.7.1", "resolved": "https://registry.npm.taobao.org/semver/download/semver-5.7.1.tgz", @@ -302,12 +338,12 @@ } }, "@babel/helper-get-function-arity": { - "version": "7.10.4", - "resolved": "https://registry.npm.taobao.org/@babel/helper-get-function-arity/download/@babel/helper-get-function-arity-7.10.4.tgz?cache=0&sync_timestamp=1593521294451&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-get-function-arity%2Fdownload%2F%40babel%2Fhelper-get-function-arity-7.10.4.tgz", - "integrity": "sha1-mMHL6g4jMvM/mkZhuM4VBbLBm6I=", + "version": "7.12.10", + "resolved": "https://registry.npm.taobao.org/@babel/helper-get-function-arity/download/@babel/helper-get-function-arity-7.12.10.tgz?cache=0&sync_timestamp=1607584580801&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-get-function-arity%2Fdownload%2F%40babel%2Fhelper-get-function-arity-7.12.10.tgz", + "integrity": "sha1-sViBejFltfqiBHgl36YZcN3MFs8=", "dev": true, "requires": { - "@babel/types": "^7.10.4" + "@babel/types": "^7.12.10" } }, "@babel/helper-split-export-declaration": { @@ -337,26 +373,26 @@ } }, "@babel/parser": { - "version": "7.12.3", - "resolved": "https://registry.npm.taobao.org/@babel/parser/download/@babel/parser-7.12.3.tgz?cache=0&sync_timestamp=1602881242014&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fparser%2Fdownload%2F%40babel%2Fparser-7.12.3.tgz", - "integrity": "sha1-owVBXr56bHAjtAtRIqBmLZKDNM0=", + "version": "7.12.10", + "resolved": "https://registry.npm.taobao.org/@babel/parser/download/@babel/parser-7.12.10.tgz?cache=0&sync_timestamp=1607569377971&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fparser%2Fdownload%2F%40babel%2Fparser-7.12.10.tgz", + "integrity": "sha1-gkYA1Z6WrqJqWir1qdgSrwXDroE=", "dev": true }, "@babel/template": { - "version": "7.10.4", - "resolved": "https://registry.npm.taobao.org/@babel/template/download/@babel/template-7.10.4.tgz", - "integrity": "sha1-MlGZbEIA68cdGo/EBfupQPNrong=", + "version": "7.12.7", + "resolved": "https://registry.npm.taobao.org/@babel/template/download/@babel/template-7.12.7.tgz?cache=0&sync_timestamp=1605904556456&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Ftemplate%2Fdownload%2F%40babel%2Ftemplate-7.12.7.tgz", + "integrity": "sha1-yBcjNpYBjjn7tsSR0vtoTgXtQ7w=", "dev": true, "requires": { "@babel/code-frame": "^7.10.4", - "@babel/parser": "^7.10.4", - "@babel/types": "^7.10.4" + "@babel/parser": "^7.12.7", + "@babel/types": "^7.12.7" } }, "@babel/types": { - "version": "7.12.1", - "resolved": "https://registry.npm.taobao.org/@babel/types/download/@babel/types-7.12.1.tgz?cache=0&sync_timestamp=1602799916513&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Ftypes%2Fdownload%2F%40babel%2Ftypes-7.12.1.tgz", - "integrity": "sha1-4QnZq5mo3nNb4ofuPWqZR6GQxK4=", + "version": "7.12.10", + "resolved": "https://registry.npm.taobao.org/@babel/types/download/@babel/types-7.12.10.tgz?cache=0&sync_timestamp=1607569351602&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Ftypes%2Fdownload%2F%40babel%2Ftypes-7.12.10.tgz", + "integrity": "sha1-eWXkpyYLJvCcVrz8sEmK8fbZsmA=", "dev": true, "requires": { "@babel/helper-validator-identifier": "^7.10.4", @@ -378,13 +414,12 @@ } }, "@babel/helper-create-regexp-features-plugin": { - "version": "7.12.1", - "resolved": "https://registry.npm.taobao.org/@babel/helper-create-regexp-features-plugin/download/@babel/helper-create-regexp-features-plugin-7.12.1.tgz?cache=0&sync_timestamp=1602799980691&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-create-regexp-features-plugin%2Fdownload%2F%40babel%2Fhelper-create-regexp-features-plugin-7.12.1.tgz", - "integrity": "sha1-GLEwLUZ3+dxHQP6MntlmgOKdN+g=", + "version": "7.12.7", + "resolved": "https://registry.npm.taobao.org/@babel/helper-create-regexp-features-plugin/download/@babel/helper-create-regexp-features-plugin-7.12.7.tgz?cache=0&sync_timestamp=1605904561550&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-create-regexp-features-plugin%2Fdownload%2F%40babel%2Fhelper-create-regexp-features-plugin-7.12.7.tgz", + "integrity": "sha1-IIQXLpVEP6CgkhS6G7Mo+a6hJ48=", "dev": true, "requires": { "@babel/helper-annotate-as-pure": "^7.10.4", - "@babel/helper-regex": "^7.10.4", "regexpu-core": "^4.7.1" } }, @@ -420,12 +455,12 @@ } }, "@babel/helper-get-function-arity": { - "version": "7.10.4", - "resolved": "https://registry.npm.taobao.org/@babel/helper-get-function-arity/download/@babel/helper-get-function-arity-7.10.4.tgz?cache=0&sync_timestamp=1593521294451&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-get-function-arity%2Fdownload%2F%40babel%2Fhelper-get-function-arity-7.10.4.tgz", - "integrity": "sha1-mMHL6g4jMvM/mkZhuM4VBbLBm6I=", + "version": "7.12.10", + "resolved": "https://registry.npm.taobao.org/@babel/helper-get-function-arity/download/@babel/helper-get-function-arity-7.12.10.tgz?cache=0&sync_timestamp=1607584580801&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-get-function-arity%2Fdownload%2F%40babel%2Fhelper-get-function-arity-7.12.10.tgz", + "integrity": "sha1-sViBejFltfqiBHgl36YZcN3MFs8=", "dev": true, "requires": { - "@babel/types": "^7.10.4" + "@babel/types": "^7.12.10" } }, "@babel/helper-validator-identifier": { @@ -446,26 +481,26 @@ } }, "@babel/parser": { - "version": "7.12.3", - "resolved": "https://registry.npm.taobao.org/@babel/parser/download/@babel/parser-7.12.3.tgz?cache=0&sync_timestamp=1602881242014&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fparser%2Fdownload%2F%40babel%2Fparser-7.12.3.tgz", - "integrity": "sha1-owVBXr56bHAjtAtRIqBmLZKDNM0=", + "version": "7.12.10", + "resolved": "https://registry.npm.taobao.org/@babel/parser/download/@babel/parser-7.12.10.tgz?cache=0&sync_timestamp=1607569377971&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fparser%2Fdownload%2F%40babel%2Fparser-7.12.10.tgz", + "integrity": "sha1-gkYA1Z6WrqJqWir1qdgSrwXDroE=", "dev": true }, "@babel/template": { - "version": "7.10.4", - "resolved": "https://registry.npm.taobao.org/@babel/template/download/@babel/template-7.10.4.tgz", - "integrity": "sha1-MlGZbEIA68cdGo/EBfupQPNrong=", + "version": "7.12.7", + "resolved": "https://registry.npm.taobao.org/@babel/template/download/@babel/template-7.12.7.tgz?cache=0&sync_timestamp=1605904556456&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Ftemplate%2Fdownload%2F%40babel%2Ftemplate-7.12.7.tgz", + "integrity": "sha1-yBcjNpYBjjn7tsSR0vtoTgXtQ7w=", "dev": true, "requires": { "@babel/code-frame": "^7.10.4", - "@babel/parser": "^7.10.4", - "@babel/types": "^7.10.4" + "@babel/parser": "^7.12.7", + "@babel/types": "^7.12.7" } }, "@babel/types": { - "version": "7.12.1", - "resolved": "https://registry.npm.taobao.org/@babel/types/download/@babel/types-7.12.1.tgz?cache=0&sync_timestamp=1602799916513&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Ftypes%2Fdownload%2F%40babel%2Ftypes-7.12.1.tgz", - "integrity": "sha1-4QnZq5mo3nNb4ofuPWqZR6GQxK4=", + "version": "7.12.10", + "resolved": "https://registry.npm.taobao.org/@babel/types/download/@babel/types-7.12.10.tgz?cache=0&sync_timestamp=1607569351602&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Ftypes%2Fdownload%2F%40babel%2Ftypes-7.12.10.tgz", + "integrity": "sha1-eWXkpyYLJvCcVrz8sEmK8fbZsmA=", "dev": true, "requires": { "@babel/helper-validator-identifier": "^7.10.4", @@ -502,9 +537,9 @@ "dev": true }, "@babel/types": { - "version": "7.12.1", - "resolved": "https://registry.npm.taobao.org/@babel/types/download/@babel/types-7.12.1.tgz?cache=0&sync_timestamp=1602799916513&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Ftypes%2Fdownload%2F%40babel%2Ftypes-7.12.1.tgz", - "integrity": "sha1-4QnZq5mo3nNb4ofuPWqZR6GQxK4=", + "version": "7.12.10", + "resolved": "https://registry.npm.taobao.org/@babel/types/download/@babel/types-7.12.10.tgz?cache=0&sync_timestamp=1607569351602&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Ftypes%2Fdownload%2F%40babel%2Ftypes-7.12.10.tgz", + "integrity": "sha1-eWXkpyYLJvCcVrz8sEmK8fbZsmA=", "dev": true, "requires": { "@babel/helper-validator-identifier": "^7.10.4", @@ -550,9 +585,9 @@ "dev": true }, "@babel/types": { - "version": "7.12.1", - "resolved": "https://registry.npm.taobao.org/@babel/types/download/@babel/types-7.12.1.tgz?cache=0&sync_timestamp=1602799916513&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Ftypes%2Fdownload%2F%40babel%2Ftypes-7.12.1.tgz", - "integrity": "sha1-4QnZq5mo3nNb4ofuPWqZR6GQxK4=", + "version": "7.12.10", + "resolved": "https://registry.npm.taobao.org/@babel/types/download/@babel/types-7.12.10.tgz?cache=0&sync_timestamp=1607569351602&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Ftypes%2Fdownload%2F%40babel%2Ftypes-7.12.10.tgz", + "integrity": "sha1-eWXkpyYLJvCcVrz8sEmK8fbZsmA=", "dev": true, "requires": { "@babel/helper-validator-identifier": "^7.10.4", @@ -793,15 +828,6 @@ "integrity": "sha512-j+fq49Xds2smCUNYmEHF9kGNkhbet6yVIBp4e6oeQpH1RUs/Ir06xUKzDjDkGcaaokPiTNs2JBWHjaE4csUkZQ==", "dev": true }, - "@babel/helper-regex": { - "version": "7.10.5", - "resolved": "https://registry.npm.taobao.org/@babel/helper-regex/download/@babel/helper-regex-7.10.5.tgz", - "integrity": "sha1-Mt+7eYmQc8QVVXBToZvQVarlCuA=", - "dev": true, - "requires": { - "lodash": "^4.17.19" - } - }, "@babel/helper-remap-async-to-generator": { "version": "7.12.1", "resolved": "https://registry.npm.taobao.org/@babel/helper-remap-async-to-generator/download/@babel/helper-remap-async-to-generator-7.12.1.tgz", @@ -820,9 +846,9 @@ "dev": true }, "@babel/types": { - "version": "7.12.1", - "resolved": "https://registry.npm.taobao.org/@babel/types/download/@babel/types-7.12.1.tgz?cache=0&sync_timestamp=1602799916513&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Ftypes%2Fdownload%2F%40babel%2Ftypes-7.12.1.tgz", - "integrity": "sha1-4QnZq5mo3nNb4ofuPWqZR6GQxK4=", + "version": "7.12.10", + "resolved": "https://registry.npm.taobao.org/@babel/types/download/@babel/types-7.12.10.tgz?cache=0&sync_timestamp=1607569351602&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Ftypes%2Fdownload%2F%40babel%2Ftypes-7.12.10.tgz", + "integrity": "sha1-eWXkpyYLJvCcVrz8sEmK8fbZsmA=", "dev": true, "requires": { "@babel/helper-validator-identifier": "^7.10.4", @@ -1012,9 +1038,9 @@ "dev": true }, "@babel/types": { - "version": "7.12.1", - "resolved": "https://registry.npm.taobao.org/@babel/types/download/@babel/types-7.12.1.tgz?cache=0&sync_timestamp=1602799916513&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Ftypes%2Fdownload%2F%40babel%2Ftypes-7.12.1.tgz", - "integrity": "sha1-4QnZq5mo3nNb4ofuPWqZR6GQxK4=", + "version": "7.12.10", + "resolved": "https://registry.npm.taobao.org/@babel/types/download/@babel/types-7.12.10.tgz?cache=0&sync_timestamp=1607569351602&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Ftypes%2Fdownload%2F%40babel%2Ftypes-7.12.10.tgz", + "integrity": "sha1-eWXkpyYLJvCcVrz8sEmK8fbZsmA=", "dev": true, "requires": { "@babel/helper-validator-identifier": "^7.10.4", @@ -1067,12 +1093,12 @@ } }, "@babel/generator": { - "version": "7.12.1", - "resolved": "https://registry.npm.taobao.org/@babel/generator/download/@babel/generator-7.12.1.tgz?cache=0&sync_timestamp=1602799917077&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fgenerator%2Fdownload%2F%40babel%2Fgenerator-7.12.1.tgz", - "integrity": "sha1-DXC+Mr2qA9fFHIWX3aduDfHxVGg=", + "version": "7.12.10", + "resolved": "https://registry.npm.taobao.org/@babel/generator/download/@babel/generator-7.12.10.tgz?cache=0&sync_timestamp=1607569383543&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fgenerator%2Fdownload%2F%40babel%2Fgenerator-7.12.10.tgz", + "integrity": "sha1-KxiPwyn7jk92IYFwO+/8D+bfNGA=", "dev": true, "requires": { - "@babel/types": "^7.12.1", + "@babel/types": "^7.12.10", "jsesc": "^2.5.1", "source-map": "^0.5.0" } @@ -1089,12 +1115,12 @@ } }, "@babel/helper-get-function-arity": { - "version": "7.10.4", - "resolved": "https://registry.npm.taobao.org/@babel/helper-get-function-arity/download/@babel/helper-get-function-arity-7.10.4.tgz?cache=0&sync_timestamp=1593521294451&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-get-function-arity%2Fdownload%2F%40babel%2Fhelper-get-function-arity-7.10.4.tgz", - "integrity": "sha1-mMHL6g4jMvM/mkZhuM4VBbLBm6I=", + "version": "7.12.10", + "resolved": "https://registry.npm.taobao.org/@babel/helper-get-function-arity/download/@babel/helper-get-function-arity-7.12.10.tgz?cache=0&sync_timestamp=1607584580801&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-get-function-arity%2Fdownload%2F%40babel%2Fhelper-get-function-arity-7.12.10.tgz", + "integrity": "sha1-sViBejFltfqiBHgl36YZcN3MFs8=", "dev": true, "requires": { - "@babel/types": "^7.10.4" + "@babel/types": "^7.12.10" } }, "@babel/helper-split-export-declaration": { @@ -1124,43 +1150,43 @@ } }, "@babel/parser": { - "version": "7.12.3", - "resolved": "https://registry.npm.taobao.org/@babel/parser/download/@babel/parser-7.12.3.tgz?cache=0&sync_timestamp=1602881242014&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fparser%2Fdownload%2F%40babel%2Fparser-7.12.3.tgz", - "integrity": "sha1-owVBXr56bHAjtAtRIqBmLZKDNM0=", + "version": "7.12.10", + "resolved": "https://registry.npm.taobao.org/@babel/parser/download/@babel/parser-7.12.10.tgz?cache=0&sync_timestamp=1607569377971&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fparser%2Fdownload%2F%40babel%2Fparser-7.12.10.tgz", + "integrity": "sha1-gkYA1Z6WrqJqWir1qdgSrwXDroE=", "dev": true }, "@babel/template": { - "version": "7.10.4", - "resolved": "https://registry.npm.taobao.org/@babel/template/download/@babel/template-7.10.4.tgz", - "integrity": "sha1-MlGZbEIA68cdGo/EBfupQPNrong=", + "version": "7.12.7", + "resolved": "https://registry.npm.taobao.org/@babel/template/download/@babel/template-7.12.7.tgz?cache=0&sync_timestamp=1605904556456&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Ftemplate%2Fdownload%2F%40babel%2Ftemplate-7.12.7.tgz", + "integrity": "sha1-yBcjNpYBjjn7tsSR0vtoTgXtQ7w=", "dev": true, "requires": { "@babel/code-frame": "^7.10.4", - "@babel/parser": "^7.10.4", - "@babel/types": "^7.10.4" + "@babel/parser": "^7.12.7", + "@babel/types": "^7.12.7" } }, "@babel/traverse": { - "version": "7.12.1", - "resolved": "https://registry.npm.taobao.org/@babel/traverse/download/@babel/traverse-7.12.1.tgz?cache=0&sync_timestamp=1602801751997&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Ftraverse%2Fdownload%2F%40babel%2Ftraverse-7.12.1.tgz", - "integrity": "sha1-lBOV4MXMhtXT51yqCV05JFJvDB4=", + "version": "7.12.10", + "resolved": "https://registry.npm.taobao.org/@babel/traverse/download/@babel/traverse-7.12.10.tgz?cache=0&sync_timestamp=1607569373091&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Ftraverse%2Fdownload%2F%40babel%2Ftraverse-7.12.10.tgz", + "integrity": "sha1-LR9AQei/QuoJnlstxI1qWUwAAXo=", "dev": true, "requires": { "@babel/code-frame": "^7.10.4", - "@babel/generator": "^7.12.1", + "@babel/generator": "^7.12.10", "@babel/helper-function-name": "^7.10.4", "@babel/helper-split-export-declaration": "^7.11.0", - "@babel/parser": "^7.12.1", - "@babel/types": "^7.12.1", + "@babel/parser": "^7.12.10", + "@babel/types": "^7.12.10", "debug": "^4.1.0", "globals": "^11.1.0", "lodash": "^4.17.19" } }, "@babel/types": { - "version": "7.12.1", - "resolved": "https://registry.npm.taobao.org/@babel/types/download/@babel/types-7.12.1.tgz?cache=0&sync_timestamp=1602799916513&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Ftypes%2Fdownload%2F%40babel%2Ftypes-7.12.1.tgz", - "integrity": "sha1-4QnZq5mo3nNb4ofuPWqZR6GQxK4=", + "version": "7.12.10", + "resolved": "https://registry.npm.taobao.org/@babel/types/download/@babel/types-7.12.10.tgz?cache=0&sync_timestamp=1607569351602&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Ftypes%2Fdownload%2F%40babel%2Ftypes-7.12.10.tgz", + "integrity": "sha1-eWXkpyYLJvCcVrz8sEmK8fbZsmA=", "dev": true, "requires": { "@babel/helper-validator-identifier": "^7.10.4", @@ -1182,14 +1208,14 @@ } }, "@babel/helpers": { - "version": "7.12.1", - "resolved": "https://registry.npm.taobao.org/@babel/helpers/download/@babel/helpers-7.12.1.tgz?cache=0&sync_timestamp=1602799921702&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelpers%2Fdownload%2F%40babel%2Fhelpers-7.12.1.tgz", - "integrity": "sha1-ioJhwdQ47BjLiQQ0307HaHNMHnk=", + "version": "7.12.5", + "resolved": "https://registry.npm.taobao.org/@babel/helpers/download/@babel/helpers-7.12.5.tgz", + "integrity": "sha1-Ghukp2jZtYMQ7aUWxEmRP+ZHEW4=", "dev": true, "requires": { "@babel/template": "^7.10.4", - "@babel/traverse": "^7.12.1", - "@babel/types": "^7.12.1" + "@babel/traverse": "^7.12.5", + "@babel/types": "^7.12.5" }, "dependencies": { "@babel/code-frame": { @@ -1202,12 +1228,12 @@ } }, "@babel/generator": { - "version": "7.12.1", - "resolved": "https://registry.npm.taobao.org/@babel/generator/download/@babel/generator-7.12.1.tgz?cache=0&sync_timestamp=1602799917077&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fgenerator%2Fdownload%2F%40babel%2Fgenerator-7.12.1.tgz", - "integrity": "sha1-DXC+Mr2qA9fFHIWX3aduDfHxVGg=", + "version": "7.12.10", + "resolved": "https://registry.npm.taobao.org/@babel/generator/download/@babel/generator-7.12.10.tgz?cache=0&sync_timestamp=1607569383543&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fgenerator%2Fdownload%2F%40babel%2Fgenerator-7.12.10.tgz", + "integrity": "sha1-KxiPwyn7jk92IYFwO+/8D+bfNGA=", "dev": true, "requires": { - "@babel/types": "^7.12.1", + "@babel/types": "^7.12.10", "jsesc": "^2.5.1", "source-map": "^0.5.0" } @@ -1224,12 +1250,12 @@ } }, "@babel/helper-get-function-arity": { - "version": "7.10.4", - "resolved": "https://registry.npm.taobao.org/@babel/helper-get-function-arity/download/@babel/helper-get-function-arity-7.10.4.tgz?cache=0&sync_timestamp=1593521294451&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-get-function-arity%2Fdownload%2F%40babel%2Fhelper-get-function-arity-7.10.4.tgz", - "integrity": "sha1-mMHL6g4jMvM/mkZhuM4VBbLBm6I=", + "version": "7.12.10", + "resolved": "https://registry.npm.taobao.org/@babel/helper-get-function-arity/download/@babel/helper-get-function-arity-7.12.10.tgz?cache=0&sync_timestamp=1607584580801&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-get-function-arity%2Fdownload%2F%40babel%2Fhelper-get-function-arity-7.12.10.tgz", + "integrity": "sha1-sViBejFltfqiBHgl36YZcN3MFs8=", "dev": true, "requires": { - "@babel/types": "^7.10.4" + "@babel/types": "^7.12.10" } }, "@babel/helper-split-export-declaration": { @@ -1259,43 +1285,43 @@ } }, "@babel/parser": { - "version": "7.12.3", - "resolved": "https://registry.npm.taobao.org/@babel/parser/download/@babel/parser-7.12.3.tgz?cache=0&sync_timestamp=1602881242014&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fparser%2Fdownload%2F%40babel%2Fparser-7.12.3.tgz", - "integrity": "sha1-owVBXr56bHAjtAtRIqBmLZKDNM0=", + "version": "7.12.10", + "resolved": "https://registry.npm.taobao.org/@babel/parser/download/@babel/parser-7.12.10.tgz?cache=0&sync_timestamp=1607569377971&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fparser%2Fdownload%2F%40babel%2Fparser-7.12.10.tgz", + "integrity": "sha1-gkYA1Z6WrqJqWir1qdgSrwXDroE=", "dev": true }, "@babel/template": { - "version": "7.10.4", - "resolved": "https://registry.npm.taobao.org/@babel/template/download/@babel/template-7.10.4.tgz", - "integrity": "sha1-MlGZbEIA68cdGo/EBfupQPNrong=", + "version": "7.12.7", + "resolved": "https://registry.npm.taobao.org/@babel/template/download/@babel/template-7.12.7.tgz?cache=0&sync_timestamp=1605904556456&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Ftemplate%2Fdownload%2F%40babel%2Ftemplate-7.12.7.tgz", + "integrity": "sha1-yBcjNpYBjjn7tsSR0vtoTgXtQ7w=", "dev": true, "requires": { "@babel/code-frame": "^7.10.4", - "@babel/parser": "^7.10.4", - "@babel/types": "^7.10.4" + "@babel/parser": "^7.12.7", + "@babel/types": "^7.12.7" } }, "@babel/traverse": { - "version": "7.12.1", - "resolved": "https://registry.npm.taobao.org/@babel/traverse/download/@babel/traverse-7.12.1.tgz?cache=0&sync_timestamp=1602801751997&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Ftraverse%2Fdownload%2F%40babel%2Ftraverse-7.12.1.tgz", - "integrity": "sha1-lBOV4MXMhtXT51yqCV05JFJvDB4=", + "version": "7.12.10", + "resolved": "https://registry.npm.taobao.org/@babel/traverse/download/@babel/traverse-7.12.10.tgz?cache=0&sync_timestamp=1607569373091&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Ftraverse%2Fdownload%2F%40babel%2Ftraverse-7.12.10.tgz", + "integrity": "sha1-LR9AQei/QuoJnlstxI1qWUwAAXo=", "dev": true, "requires": { "@babel/code-frame": "^7.10.4", - "@babel/generator": "^7.12.1", + "@babel/generator": "^7.12.10", "@babel/helper-function-name": "^7.10.4", "@babel/helper-split-export-declaration": "^7.11.0", - "@babel/parser": "^7.12.1", - "@babel/types": "^7.12.1", + "@babel/parser": "^7.12.10", + "@babel/types": "^7.12.10", "debug": "^4.1.0", "globals": "^11.1.0", "lodash": "^4.17.19" } }, "@babel/types": { - "version": "7.12.1", - "resolved": "https://registry.npm.taobao.org/@babel/types/download/@babel/types-7.12.1.tgz?cache=0&sync_timestamp=1602799916513&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Ftypes%2Fdownload%2F%40babel%2Ftypes-7.12.1.tgz", - "integrity": "sha1-4QnZq5mo3nNb4ofuPWqZR6GQxK4=", + "version": "7.12.10", + "resolved": "https://registry.npm.taobao.org/@babel/types/download/@babel/types-7.12.10.tgz?cache=0&sync_timestamp=1607569351602&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Ftypes%2Fdownload%2F%40babel%2Ftypes-7.12.10.tgz", + "integrity": "sha1-eWXkpyYLJvCcVrz8sEmK8fbZsmA=", "dev": true, "requires": { "@babel/helper-validator-identifier": "^7.10.4", @@ -1474,9 +1500,9 @@ } }, "@babel/plugin-proposal-numeric-separator": { - "version": "7.12.1", - "resolved": "https://registry.npm.taobao.org/@babel/plugin-proposal-numeric-separator/download/@babel/plugin-proposal-numeric-separator-7.12.1.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-proposal-numeric-separator%2Fdownload%2F%40babel%2Fplugin-proposal-numeric-separator-7.12.1.tgz", - "integrity": "sha1-DixndMTOSL5BIRm01pOsd392haY=", + "version": "7.12.7", + "resolved": "https://registry.npm.taobao.org/@babel/plugin-proposal-numeric-separator/download/@babel/plugin-proposal-numeric-separator-7.12.7.tgz?cache=0&sync_timestamp=1605904557549&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-proposal-numeric-separator%2Fdownload%2F%40babel%2Fplugin-proposal-numeric-separator-7.12.7.tgz", + "integrity": "sha1-i/JT3oE5CZ/qGTspfSOp1AbvBWs=", "dev": true, "requires": { "@babel/helper-plugin-utils": "^7.10.4", @@ -1529,9 +1555,9 @@ } }, "@babel/plugin-proposal-optional-chaining": { - "version": "7.12.1", - "resolved": "https://registry.npm.taobao.org/@babel/plugin-proposal-optional-chaining/download/@babel/plugin-proposal-optional-chaining-7.12.1.tgz?cache=0&sync_timestamp=1602799957375&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-proposal-optional-chaining%2Fdownload%2F%40babel%2Fplugin-proposal-optional-chaining-7.12.1.tgz", - "integrity": "sha1-zOEiID/IoyeUKW/Dd8be2vQ2N5c=", + "version": "7.12.7", + "resolved": "https://registry.npm.taobao.org/@babel/plugin-proposal-optional-chaining/download/@babel/plugin-proposal-optional-chaining-7.12.7.tgz?cache=0&sync_timestamp=1605904558173&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-proposal-optional-chaining%2Fdownload%2F%40babel%2Fplugin-proposal-optional-chaining-7.12.7.tgz", + "integrity": "sha1-4C8OobXcWdQB7Bb7gkZ59oPTMDw=", "dev": true, "requires": { "@babel/helper-plugin-utils": "^7.10.4", @@ -1830,12 +1856,12 @@ } }, "@babel/helper-get-function-arity": { - "version": "7.10.4", - "resolved": "https://registry.npm.taobao.org/@babel/helper-get-function-arity/download/@babel/helper-get-function-arity-7.10.4.tgz?cache=0&sync_timestamp=1593521294451&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-get-function-arity%2Fdownload%2F%40babel%2Fhelper-get-function-arity-7.10.4.tgz", - "integrity": "sha1-mMHL6g4jMvM/mkZhuM4VBbLBm6I=", + "version": "7.12.10", + "resolved": "https://registry.npm.taobao.org/@babel/helper-get-function-arity/download/@babel/helper-get-function-arity-7.12.10.tgz?cache=0&sync_timestamp=1607584580801&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-get-function-arity%2Fdownload%2F%40babel%2Fhelper-get-function-arity-7.12.10.tgz", + "integrity": "sha1-sViBejFltfqiBHgl36YZcN3MFs8=", "dev": true, "requires": { - "@babel/types": "^7.10.4" + "@babel/types": "^7.12.10" } }, "@babel/helper-plugin-utils": { @@ -1871,26 +1897,26 @@ } }, "@babel/parser": { - "version": "7.12.3", - "resolved": "https://registry.npm.taobao.org/@babel/parser/download/@babel/parser-7.12.3.tgz?cache=0&sync_timestamp=1602881242014&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fparser%2Fdownload%2F%40babel%2Fparser-7.12.3.tgz", - "integrity": "sha1-owVBXr56bHAjtAtRIqBmLZKDNM0=", + "version": "7.12.10", + "resolved": "https://registry.npm.taobao.org/@babel/parser/download/@babel/parser-7.12.10.tgz?cache=0&sync_timestamp=1607569377971&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fparser%2Fdownload%2F%40babel%2Fparser-7.12.10.tgz", + "integrity": "sha1-gkYA1Z6WrqJqWir1qdgSrwXDroE=", "dev": true }, "@babel/template": { - "version": "7.10.4", - "resolved": "https://registry.npm.taobao.org/@babel/template/download/@babel/template-7.10.4.tgz", - "integrity": "sha1-MlGZbEIA68cdGo/EBfupQPNrong=", + "version": "7.12.7", + "resolved": "https://registry.npm.taobao.org/@babel/template/download/@babel/template-7.12.7.tgz?cache=0&sync_timestamp=1605904556456&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Ftemplate%2Fdownload%2F%40babel%2Ftemplate-7.12.7.tgz", + "integrity": "sha1-yBcjNpYBjjn7tsSR0vtoTgXtQ7w=", "dev": true, "requires": { "@babel/code-frame": "^7.10.4", - "@babel/parser": "^7.10.4", - "@babel/types": "^7.10.4" + "@babel/parser": "^7.12.7", + "@babel/types": "^7.12.7" } }, "@babel/types": { - "version": "7.12.1", - "resolved": "https://registry.npm.taobao.org/@babel/types/download/@babel/types-7.12.1.tgz?cache=0&sync_timestamp=1602799916513&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Ftypes%2Fdownload%2F%40babel%2Ftypes-7.12.1.tgz", - "integrity": "sha1-4QnZq5mo3nNb4ofuPWqZR6GQxK4=", + "version": "7.12.10", + "resolved": "https://registry.npm.taobao.org/@babel/types/download/@babel/types-7.12.10.tgz?cache=0&sync_timestamp=1607569351602&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Ftypes%2Fdownload%2F%40babel%2Ftypes-7.12.10.tgz", + "integrity": "sha1-eWXkpyYLJvCcVrz8sEmK8fbZsmA=", "dev": true, "requires": { "@babel/helper-validator-identifier": "^7.10.4", @@ -2046,12 +2072,12 @@ } }, "@babel/helper-get-function-arity": { - "version": "7.10.4", - "resolved": "https://registry.npm.taobao.org/@babel/helper-get-function-arity/download/@babel/helper-get-function-arity-7.10.4.tgz?cache=0&sync_timestamp=1593521294451&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-get-function-arity%2Fdownload%2F%40babel%2Fhelper-get-function-arity-7.10.4.tgz", - "integrity": "sha1-mMHL6g4jMvM/mkZhuM4VBbLBm6I=", + "version": "7.12.10", + "resolved": "https://registry.npm.taobao.org/@babel/helper-get-function-arity/download/@babel/helper-get-function-arity-7.12.10.tgz?cache=0&sync_timestamp=1607584580801&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-get-function-arity%2Fdownload%2F%40babel%2Fhelper-get-function-arity-7.12.10.tgz", + "integrity": "sha1-sViBejFltfqiBHgl36YZcN3MFs8=", "dev": true, "requires": { - "@babel/types": "^7.10.4" + "@babel/types": "^7.12.10" } }, "@babel/helper-plugin-utils": { @@ -2078,26 +2104,26 @@ } }, "@babel/parser": { - "version": "7.12.3", - "resolved": "https://registry.npm.taobao.org/@babel/parser/download/@babel/parser-7.12.3.tgz?cache=0&sync_timestamp=1602881242014&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fparser%2Fdownload%2F%40babel%2Fparser-7.12.3.tgz", - "integrity": "sha1-owVBXr56bHAjtAtRIqBmLZKDNM0=", + "version": "7.12.10", + "resolved": "https://registry.npm.taobao.org/@babel/parser/download/@babel/parser-7.12.10.tgz?cache=0&sync_timestamp=1607569377971&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fparser%2Fdownload%2F%40babel%2Fparser-7.12.10.tgz", + "integrity": "sha1-gkYA1Z6WrqJqWir1qdgSrwXDroE=", "dev": true }, "@babel/template": { - "version": "7.10.4", - "resolved": "https://registry.npm.taobao.org/@babel/template/download/@babel/template-7.10.4.tgz", - "integrity": "sha1-MlGZbEIA68cdGo/EBfupQPNrong=", + "version": "7.12.7", + "resolved": "https://registry.npm.taobao.org/@babel/template/download/@babel/template-7.12.7.tgz?cache=0&sync_timestamp=1605904556456&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Ftemplate%2Fdownload%2F%40babel%2Ftemplate-7.12.7.tgz", + "integrity": "sha1-yBcjNpYBjjn7tsSR0vtoTgXtQ7w=", "dev": true, "requires": { "@babel/code-frame": "^7.10.4", - "@babel/parser": "^7.10.4", - "@babel/types": "^7.10.4" + "@babel/parser": "^7.12.7", + "@babel/types": "^7.12.7" } }, "@babel/types": { - "version": "7.12.1", - "resolved": "https://registry.npm.taobao.org/@babel/types/download/@babel/types-7.12.1.tgz?cache=0&sync_timestamp=1602799916513&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Ftypes%2Fdownload%2F%40babel%2Ftypes-7.12.1.tgz", - "integrity": "sha1-4QnZq5mo3nNb4ofuPWqZR6GQxK4=", + "version": "7.12.10", + "resolved": "https://registry.npm.taobao.org/@babel/types/download/@babel/types-7.12.10.tgz?cache=0&sync_timestamp=1607569351602&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Ftypes%2Fdownload%2F%40babel%2Ftypes-7.12.10.tgz", + "integrity": "sha1-eWXkpyYLJvCcVrz8sEmK8fbZsmA=", "dev": true, "requires": { "@babel/helper-validator-identifier": "^7.10.4", @@ -2341,23 +2367,48 @@ } }, "@babel/plugin-transform-runtime": { - "version": "7.12.1", - "resolved": "https://registry.npm.taobao.org/@babel/plugin-transform-runtime/download/@babel/plugin-transform-runtime-7.12.1.tgz", - "integrity": "sha1-BLeSBX60YDif9qQZjjd2FOoee6U=", + "version": "7.12.10", + "resolved": "https://registry.npm.taobao.org/@babel/plugin-transform-runtime/download/@babel/plugin-transform-runtime-7.12.10.tgz?cache=0&sync_timestamp=1607569385672&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-transform-runtime%2Fdownload%2F%40babel%2Fplugin-transform-runtime-7.12.10.tgz", + "integrity": "sha1-rw/e1OhGxLNweOjl0G3qxs2EhWI=", "dev": true, "requires": { - "@babel/helper-module-imports": "^7.12.1", + "@babel/helper-module-imports": "^7.12.5", "@babel/helper-plugin-utils": "^7.10.4", - "resolve": "^1.8.1", "semver": "^5.5.1" }, "dependencies": { + "@babel/helper-module-imports": { + "version": "7.12.5", + "resolved": "https://registry.npm.taobao.org/@babel/helper-module-imports/download/@babel/helper-module-imports-7.12.5.tgz?cache=0&sync_timestamp=1604441076449&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-module-imports%2Fdownload%2F%40babel%2Fhelper-module-imports-7.12.5.tgz", + "integrity": "sha1-G/wCKfeUmI927QpNTpCGCFC1Tfs=", + "dev": true, + "requires": { + "@babel/types": "^7.12.5" + } + }, "@babel/helper-plugin-utils": { "version": "7.10.4", "resolved": "https://registry.npm.taobao.org/@babel/helper-plugin-utils/download/@babel/helper-plugin-utils-7.10.4.tgz?cache=0&sync_timestamp=1593521082372&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-plugin-utils%2Fdownload%2F%40babel%2Fhelper-plugin-utils-7.10.4.tgz", "integrity": "sha1-L3WoMSadT2d95JmG3/WZJ1M883U=", "dev": true }, + "@babel/helper-validator-identifier": { + "version": "7.10.4", + "resolved": "https://registry.npm.taobao.org/@babel/helper-validator-identifier/download/@babel/helper-validator-identifier-7.10.4.tgz?cache=0&sync_timestamp=1593521083613&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-validator-identifier%2Fdownload%2F%40babel%2Fhelper-validator-identifier-7.10.4.tgz", + "integrity": "sha1-p4x6clHgH2FlEtMbEK3PUq2l4NI=", + "dev": true + }, + "@babel/types": { + "version": "7.12.10", + "resolved": "https://registry.npm.taobao.org/@babel/types/download/@babel/types-7.12.10.tgz?cache=0&sync_timestamp=1607569351602&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Ftypes%2Fdownload%2F%40babel%2Ftypes-7.12.10.tgz", + "integrity": "sha1-eWXkpyYLJvCcVrz8sEmK8fbZsmA=", + "dev": true, + "requires": { + "@babel/helper-validator-identifier": "^7.10.4", + "lodash": "^4.17.19", + "to-fast-properties": "^2.0.0" + } + }, "semver": { "version": "5.7.1", "resolved": "https://registry.npm.taobao.org/semver/download/semver-5.7.1.tgz", @@ -2402,13 +2453,12 @@ } }, "@babel/plugin-transform-sticky-regex": { - "version": "7.12.1", - "resolved": "https://registry.npm.taobao.org/@babel/plugin-transform-sticky-regex/download/@babel/plugin-transform-sticky-regex-7.12.1.tgz?cache=0&sync_timestamp=1602799951745&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-transform-sticky-regex%2Fdownload%2F%40babel%2Fplugin-transform-sticky-regex-7.12.1.tgz", - "integrity": "sha1-XCTPUN45bTDpmvyNHHAOi84PXK8=", + "version": "7.12.7", + "resolved": "https://registry.npm.taobao.org/@babel/plugin-transform-sticky-regex/download/@babel/plugin-transform-sticky-regex-7.12.7.tgz?cache=0&sync_timestamp=1605904558279&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-transform-sticky-regex%2Fdownload%2F%40babel%2Fplugin-transform-sticky-regex-7.12.7.tgz", + "integrity": "sha1-VgIkYTqyOYdFOUjtIdCwsZP6f60=", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.10.4", - "@babel/helper-regex": "^7.10.4" + "@babel/helper-plugin-utils": "^7.10.4" }, "dependencies": { "@babel/helper-plugin-utils": { @@ -2437,9 +2487,9 @@ } }, "@babel/plugin-transform-typeof-symbol": { - "version": "7.12.1", - "resolved": "https://registry.npm.taobao.org/@babel/plugin-transform-typeof-symbol/download/@babel/plugin-transform-typeof-symbol-7.12.1.tgz?cache=0&sync_timestamp=1602799953235&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-transform-typeof-symbol%2Fdownload%2F%40babel%2Fplugin-transform-typeof-symbol-7.12.1.tgz", - "integrity": "sha1-nKa+ND1CUS+8LmgjaoKuZLx694o=", + "version": "7.12.10", + "resolved": "https://registry.npm.taobao.org/@babel/plugin-transform-typeof-symbol/download/@babel/plugin-transform-typeof-symbol-7.12.10.tgz?cache=0&sync_timestamp=1607569552808&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-transform-typeof-symbol%2Fdownload%2F%40babel%2Fplugin-transform-typeof-symbol-7.12.10.tgz", + "integrity": "sha1-3gHEyPllgL0A8YMHKw0Ozc8N7Es=", "dev": true, "requires": { "@babel/helper-plugin-utils": "^7.10.4" @@ -2507,14 +2557,14 @@ } }, "@babel/preset-env": { - "version": "7.12.1", - "resolved": "https://registry.npm.taobao.org/@babel/preset-env/download/@babel/preset-env-7.12.1.tgz?cache=0&sync_timestamp=1602801753046&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fpreset-env%2Fdownload%2F%40babel%2Fpreset-env-7.12.1.tgz", - "integrity": "sha1-nH5cqCoZ78hlOEu0mJFI0u5desI=", + "version": "7.12.10", + "resolved": "https://registry.npm.taobao.org/@babel/preset-env/download/@babel/preset-env-7.12.10.tgz?cache=0&sync_timestamp=1607569323407&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fpreset-env%2Fdownload%2F%40babel%2Fpreset-env-7.12.10.tgz", + "integrity": "sha1-ypgblfZB8mEFMb1xlIZWMGkF5qs=", "dev": true, "requires": { - "@babel/compat-data": "^7.12.1", - "@babel/helper-compilation-targets": "^7.12.1", - "@babel/helper-module-imports": "^7.12.1", + "@babel/compat-data": "^7.12.7", + "@babel/helper-compilation-targets": "^7.12.5", + "@babel/helper-module-imports": "^7.12.5", "@babel/helper-plugin-utils": "^7.10.4", "@babel/helper-validator-option": "^7.12.1", "@babel/plugin-proposal-async-generator-functions": "^7.12.1", @@ -2524,10 +2574,10 @@ "@babel/plugin-proposal-json-strings": "^7.12.1", "@babel/plugin-proposal-logical-assignment-operators": "^7.12.1", "@babel/plugin-proposal-nullish-coalescing-operator": "^7.12.1", - "@babel/plugin-proposal-numeric-separator": "^7.12.1", + "@babel/plugin-proposal-numeric-separator": "^7.12.7", "@babel/plugin-proposal-object-rest-spread": "^7.12.1", "@babel/plugin-proposal-optional-catch-binding": "^7.12.1", - "@babel/plugin-proposal-optional-chaining": "^7.12.1", + "@babel/plugin-proposal-optional-chaining": "^7.12.7", "@babel/plugin-proposal-private-methods": "^7.12.1", "@babel/plugin-proposal-unicode-property-regex": "^7.12.1", "@babel/plugin-syntax-async-generators": "^7.8.0", @@ -2569,17 +2619,26 @@ "@babel/plugin-transform-reserved-words": "^7.12.1", "@babel/plugin-transform-shorthand-properties": "^7.12.1", "@babel/plugin-transform-spread": "^7.12.1", - "@babel/plugin-transform-sticky-regex": "^7.12.1", + "@babel/plugin-transform-sticky-regex": "^7.12.7", "@babel/plugin-transform-template-literals": "^7.12.1", - "@babel/plugin-transform-typeof-symbol": "^7.12.1", + "@babel/plugin-transform-typeof-symbol": "^7.12.10", "@babel/plugin-transform-unicode-escapes": "^7.12.1", "@babel/plugin-transform-unicode-regex": "^7.12.1", "@babel/preset-modules": "^0.1.3", - "@babel/types": "^7.12.1", - "core-js-compat": "^3.6.2", + "@babel/types": "^7.12.10", + "core-js-compat": "^3.8.0", "semver": "^5.5.0" }, "dependencies": { + "@babel/helper-module-imports": { + "version": "7.12.5", + "resolved": "https://registry.npm.taobao.org/@babel/helper-module-imports/download/@babel/helper-module-imports-7.12.5.tgz?cache=0&sync_timestamp=1604441076449&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-module-imports%2Fdownload%2F%40babel%2Fhelper-module-imports-7.12.5.tgz", + "integrity": "sha1-G/wCKfeUmI927QpNTpCGCFC1Tfs=", + "dev": true, + "requires": { + "@babel/types": "^7.12.5" + } + }, "@babel/helper-plugin-utils": { "version": "7.10.4", "resolved": "https://registry.npm.taobao.org/@babel/helper-plugin-utils/download/@babel/helper-plugin-utils-7.10.4.tgz?cache=0&sync_timestamp=1593521082372&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-plugin-utils%2Fdownload%2F%40babel%2Fhelper-plugin-utils-7.10.4.tgz", @@ -2593,9 +2652,9 @@ "dev": true }, "@babel/types": { - "version": "7.12.1", - "resolved": "https://registry.npm.taobao.org/@babel/types/download/@babel/types-7.12.1.tgz?cache=0&sync_timestamp=1602799916513&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Ftypes%2Fdownload%2F%40babel%2Ftypes-7.12.1.tgz", - "integrity": "sha1-4QnZq5mo3nNb4ofuPWqZR6GQxK4=", + "version": "7.12.10", + "resolved": "https://registry.npm.taobao.org/@babel/types/download/@babel/types-7.12.10.tgz?cache=0&sync_timestamp=1607569351602&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Ftypes%2Fdownload%2F%40babel%2Ftypes-7.12.10.tgz", + "integrity": "sha1-eWXkpyYLJvCcVrz8sEmK8fbZsmA=", "dev": true, "requires": { "@babel/helper-validator-identifier": "^7.10.4", @@ -2625,9 +2684,9 @@ } }, "@babel/runtime": { - "version": "7.12.1", - "resolved": "https://registry.npm.taobao.org/@babel/runtime/download/@babel/runtime-7.12.1.tgz?cache=0&sync_timestamp=1602799933339&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fruntime%2Fdownload%2F%40babel%2Fruntime-7.12.1.tgz", - "integrity": "sha1-tBFqa2cR0BCy2tO3tuQ78bmVR0A=", + "version": "7.12.5", + "resolved": "https://registry.npm.taobao.org/@babel/runtime/download/@babel/runtime-7.12.5.tgz?cache=0&sync_timestamp=1604441104026&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fruntime%2Fdownload%2F%40babel%2Fruntime-7.12.5.tgz", + "integrity": "sha1-QQ5+SHRB4bNgwpvnFdhw2bmFiC4=", "dev": true, "requires": { "regenerator-runtime": "^0.13.4" @@ -2716,9 +2775,9 @@ } }, "@eslint/eslintrc": { - "version": "0.2.1", - "resolved": "https://registry.npm.taobao.org/@eslint/eslintrc/download/@eslint/eslintrc-0.2.1.tgz?cache=0&sync_timestamp=1603766307701&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40eslint%2Feslintrc%2Fdownload%2F%40eslint%2Feslintrc-0.2.1.tgz", - "integrity": "sha1-9yBpwzBGGgZoTRGThENeEqXXbjw=", + "version": "0.2.2", + "resolved": "https://registry.npm.taobao.org/@eslint/eslintrc/download/@eslint/eslintrc-0.2.2.tgz?cache=0&sync_timestamp=1607145629875&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40eslint%2Feslintrc%2Fdownload%2F%40eslint%2Feslintrc-0.2.2.tgz", + "integrity": "sha1-0B/HkeL8M+iKKdbz3H6T0M14S3Y=", "dev": true, "requires": { "ajv": "^6.12.4", @@ -3966,39 +4025,79 @@ } }, "babel-loader": { - "version": "8.2.1", - "resolved": "https://registry.npm.taobao.org/babel-loader/download/babel-loader-8.2.1.tgz?cache=0&sync_timestamp=1605043148864&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fbabel-loader%2Fdownload%2Fbabel-loader-8.2.1.tgz", - "integrity": "sha1-5TMTJUZ36G8nU29QcdgH4B0k7AA=", + "version": "8.2.2", + "resolved": "https://registry.npm.taobao.org/babel-loader/download/babel-loader-8.2.2.tgz?cache=0&sync_timestamp=1606424508891&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fbabel-loader%2Fdownload%2Fbabel-loader-8.2.2.tgz", + "integrity": "sha1-k2POhMEMmkDmx1N0jhRBtgyKC4E=", "dev": true, "requires": { - "find-cache-dir": "^2.1.0", + "find-cache-dir": "^3.3.1", "loader-utils": "^1.4.0", - "make-dir": "^2.1.0", - "pify": "^4.0.1", + "make-dir": "^3.1.0", "schema-utils": "^2.6.5" }, "dependencies": { - "make-dir": { - "version": "2.1.0", - "resolved": "https://registry.npm.taobao.org/make-dir/download/make-dir-2.1.0.tgz", - "integrity": "sha1-XwMQ4YuL6JjMBwCSlaMK5B6R5vU=", + "find-cache-dir": { + "version": "3.3.1", + "resolved": "https://registry.npm.taobao.org/find-cache-dir/download/find-cache-dir-3.3.1.tgz", + "integrity": "sha1-ibM/rUpGcNqpT4Vff74x1thP6IA=", "dev": true, "requires": { - "pify": "^4.0.1", - "semver": "^5.6.0" + "commondir": "^1.0.1", + "make-dir": "^3.0.2", + "pkg-dir": "^4.1.0" } }, - "pify": { - "version": "4.0.1", - "resolved": "https://registry.npm.taobao.org/pify/download/pify-4.0.1.tgz", - "integrity": "sha1-SyzSXFDVmHNcUCkiJP2MbfQeMjE=", + "find-up": { + "version": "4.1.0", + "resolved": "https://registry.npm.taobao.org/find-up/download/find-up-4.1.0.tgz", + "integrity": "sha1-l6/n1s3AvFkoWEt8jXsW6KmqXRk=", + "dev": true, + "requires": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + } + }, + "locate-path": { + "version": "5.0.0", + "resolved": "https://registry.npm.taobao.org/locate-path/download/locate-path-5.0.0.tgz", + "integrity": "sha1-Gvujlq/WdqbUJQTQpno6frn2KqA=", + "dev": true, + "requires": { + "p-locate": "^4.1.0" + } + }, + "make-dir": { + "version": "3.1.0", + "resolved": "https://registry.npm.taobao.org/make-dir/download/make-dir-3.1.0.tgz", + "integrity": "sha1-QV6WcEazp/HRhSd9hKpYIDcmoT8=", + "dev": true, + "requires": { + "semver": "^6.0.0" + } + }, + "p-locate": { + "version": "4.1.0", + "resolved": "https://registry.npm.taobao.org/p-locate/download/p-locate-4.1.0.tgz?cache=0&sync_timestamp=1597081605529&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fp-locate%2Fdownload%2Fp-locate-4.1.0.tgz", + "integrity": "sha1-o0KLtwiLOmApL2aRkni3wpetTwc=", + "dev": true, + "requires": { + "p-limit": "^2.2.0" + } + }, + "path-exists": { + "version": "4.0.0", + "resolved": "https://registry.npm.taobao.org/path-exists/download/path-exists-4.0.0.tgz", + "integrity": "sha1-UTvb4tO5XXdi6METfvoZXGxhtbM=", "dev": true }, - "semver": { - "version": "5.7.1", - "resolved": "https://registry.npm.taobao.org/semver/download/semver-5.7.1.tgz", - "integrity": "sha1-qVT5Ma66UI0we78Gnv8MAclhFvc=", - "dev": true + "pkg-dir": { + "version": "4.2.0", + "resolved": "https://registry.npm.taobao.org/pkg-dir/download/pkg-dir-4.2.0.tgz?cache=0&sync_timestamp=1602859045787&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpkg-dir%2Fdownload%2Fpkg-dir-4.2.0.tgz", + "integrity": "sha1-8JkTPfft5CLoHR2ESCcO6z5CYfM=", + "dev": true, + "requires": { + "find-up": "^4.0.0" + } } } }, @@ -5250,9 +5349,9 @@ "integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=" }, "cfonts": { - "version": "2.8.6", - "resolved": "https://registry.npmjs.org/cfonts/-/cfonts-2.8.6.tgz", - "integrity": "sha512-CqEyZmBO9teYrondYRE1cP7q95fTg4evianKkYQvHNi0IZpsk+V62RgIQuOm3fRiknISsXvFQeCR352pMyfHlg==", + "version": "2.9.0", + "resolved": "https://registry.npm.taobao.org/cfonts/download/cfonts-2.9.0.tgz", + "integrity": "sha1-9J/se4CXWQrYQWQxQ1TISh/bPos=", "dev": true, "requires": { "chalk": "^4.1.0", @@ -5673,6 +5772,12 @@ "simple-swizzle": "^0.2.2" } }, + "colorette": { + "version": "1.2.1", + "resolved": "https://registry.npm.taobao.org/colorette/download/colorette-1.2.1.tgz?cache=0&sync_timestamp=1593955855875&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcolorette%2Fdownload%2Fcolorette-1.2.1.tgz", + "integrity": "sha1-TQuSEyXBT6+SYzCGpTbbbolWSxs=", + "dev": true + }, "combined-stream": { "version": "1.0.8", "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", @@ -5966,9 +6071,9 @@ "dev": true }, "copy-webpack-plugin": { - "version": "6.3.1", - "resolved": "https://registry.npm.taobao.org/copy-webpack-plugin/download/copy-webpack-plugin-6.3.1.tgz", - "integrity": "sha1-zrbpw+SRDmOndP1KJ0URVndfbio=", + "version": "6.4.0", + "resolved": "https://registry.npm.taobao.org/copy-webpack-plugin/download/copy-webpack-plugin-6.4.0.tgz?cache=0&sync_timestamp=1607603370481&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcopy-webpack-plugin%2Fdownload%2Fcopy-webpack-plugin-6.4.0.tgz", + "integrity": "sha1-f9OXr3jg0xDb9lddGg8v4Q79TVk=", "dev": true, "requires": { "cacache": "^15.0.5", @@ -6067,12 +6172,12 @@ } }, "p-limit": { - "version": "3.0.2", - "resolved": "https://registry.npm.taobao.org/p-limit/download/p-limit-3.0.2.tgz?cache=0&sync_timestamp=1594559733720&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fp-limit%2Fdownload%2Fp-limit-3.0.2.tgz", - "integrity": "sha1-FmTgEK88rcaBuq/T4qQ3vnsPtf4=", + "version": "3.1.0", + "resolved": "https://registry.npm.taobao.org/p-limit/download/p-limit-3.1.0.tgz?cache=0&sync_timestamp=1606290276843&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fp-limit%2Fdownload%2Fp-limit-3.1.0.tgz", + "integrity": "sha1-4drMvnjQ0TiMoYxk/qOOPlfjcGs=", "dev": true, "requires": { - "p-try": "^2.0.0" + "yocto-queue": "^0.1.0" } }, "p-locate": { @@ -6133,21 +6238,58 @@ } }, "core-js": { - "version": "3.7.0", - "resolved": "https://registry.npm.taobao.org/core-js/download/core-js-3.7.0.tgz?cache=0&sync_timestamp=1604675498528&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcore-js%2Fdownload%2Fcore-js-3.7.0.tgz", - "integrity": "sha1-sKdhoCSIV3r7+XF55Ggb9JVoUg8=", + "version": "3.8.1", + "resolved": "https://registry.npm.taobao.org/core-js/download/core-js-3.8.1.tgz?cache=0&sync_timestamp=1607215867411&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcore-js%2Fdownload%2Fcore-js-3.8.1.tgz", + "integrity": "sha1-9RUjZorIopTRKFw7nbRAJf2mbUc=", "dev": true }, "core-js-compat": { - "version": "3.6.5", - "resolved": "https://registry.npm.taobao.org/core-js-compat/download/core-js-compat-3.6.5.tgz", - "integrity": "sha1-KlHZpOJd/W5pAlGqgfmePAVIHxw=", + "version": "3.8.1", + "resolved": "https://registry.npm.taobao.org/core-js-compat/download/core-js-compat-3.8.1.tgz?cache=0&sync_timestamp=1607215918248&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcore-js-compat%2Fdownload%2Fcore-js-compat-3.8.1.tgz", + "integrity": "sha1-jR3dNB1mC6YZTL4M5g9MeUyHo24=", "dev": true, "requires": { - "browserslist": "^4.8.5", + "browserslist": "^4.15.0", "semver": "7.0.0" }, "dependencies": { + "browserslist": { + "version": "4.16.0", + "resolved": "https://registry.npm.taobao.org/browserslist/download/browserslist-4.16.0.tgz?cache=0&sync_timestamp=1607665751821&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fbrowserslist%2Fdownload%2Fbrowserslist-4.16.0.tgz", + "integrity": "sha1-QQJ3YnUAvjyyihv+A3WG++35SIs=", + "dev": true, + "requires": { + "caniuse-lite": "^1.0.30001165", + "colorette": "^1.2.1", + "electron-to-chromium": "^1.3.621", + "escalade": "^3.1.1", + "node-releases": "^1.1.67" + } + }, + "caniuse-lite": { + "version": "1.0.30001165", + "resolved": "https://registry.npm.taobao.org/caniuse-lite/download/caniuse-lite-1.0.30001165.tgz?cache=0&sync_timestamp=1607085783171&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcaniuse-lite%2Fdownload%2Fcaniuse-lite-1.0.30001165.tgz", + "integrity": "sha1-MpVUkNL2ApC7GGu3VPKYGRf6dE8=", + "dev": true + }, + "electron-to-chromium": { + "version": "1.3.622", + "resolved": "https://registry.npm.taobao.org/electron-to-chromium/download/electron-to-chromium-1.3.622.tgz?cache=0&sync_timestamp=1607664103229&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Felectron-to-chromium%2Fdownload%2Felectron-to-chromium-1.3.622.tgz", + "integrity": "sha1-lya9LmelRiFUdQzpcBymrwfQeHc=", + "dev": true + }, + "escalade": { + "version": "3.1.1", + "resolved": "https://registry.npm.taobao.org/escalade/download/escalade-3.1.1.tgz?cache=0&sync_timestamp=1602567224085&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fescalade%2Fdownload%2Fescalade-3.1.1.tgz", + "integrity": "sha1-2M/ccACWXFoBdLSoLqpcBVJ0LkA=", + "dev": true + }, + "node-releases": { + "version": "1.1.67", + "resolved": "https://registry.npm.taobao.org/node-releases/download/node-releases-1.1.67.tgz?cache=0&sync_timestamp=1605581385142&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fnode-releases%2Fdownload%2Fnode-releases-1.1.67.tgz", + "integrity": "sha1-KOv8zNC6pqrY6NTY/ky8Sa4jnBI=", + "dev": true + }, "semver": { "version": "7.0.0", "resolved": "https://registry.npm.taobao.org/semver/download/semver-7.0.0.tgz", @@ -6247,18 +6389,18 @@ } }, "cross-env": { - "version": "7.0.2", - "resolved": "https://registry.npmjs.org/cross-env/-/cross-env-7.0.2.tgz", - "integrity": "sha512-KZP/bMEOJEDCkDQAyRhu3RL2ZO/SUVrxQVI0G3YEQ+OLbRA3c6zgixe8Mq8a/z7+HKlNEjo8oiLUs8iRijY2Rw==", + "version": "7.0.3", + "resolved": "https://registry.npm.taobao.org/cross-env/download/cross-env-7.0.3.tgz", + "integrity": "sha1-hlJkspZ33AFbqEGJGJZd0jL8VM8=", "dev": true, "requires": { "cross-spawn": "^7.0.1" } }, "cross-spawn": { - "version": "7.0.2", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.2.tgz", - "integrity": "sha512-PD6G8QG3S4FK/XCGFbEQrDqO2AnMMsy0meR7lerlIOHAAbkuavGU/pOqprrlvfTNjvowivTeBsjebAL0NSoMxw==", + "version": "7.0.3", + "resolved": "https://registry.npm.taobao.org/cross-spawn/download/cross-spawn-7.0.3.tgz", + "integrity": "sha1-9zqFudXUHQRVUcF34ogtSshXKKY=", "dev": true, "requires": { "path-key": "^3.1.0", @@ -7097,9 +7239,9 @@ } }, "electron": { - "version": "9.3.3", - "resolved": "https://registry.npm.taobao.org/electron/download/electron-9.3.3.tgz?cache=0&sync_timestamp=1606195775548&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Felectron%2Fdownload%2Felectron-9.3.3.tgz", - "integrity": "sha1-maZhnV32j5dpel0dgu86imP83zY=", + "version": "9.3.5", + "resolved": "https://registry.npm.taobao.org/electron/download/electron-9.3.5.tgz", + "integrity": "sha1-eWcUa4Hm2bSEdzJD/UpPZxpQuIQ=", "dev": true, "requires": { "@electron/get": "^1.0.1", @@ -7108,9 +7250,9 @@ }, "dependencies": { "@types/node": { - "version": "12.19.6", - "resolved": "https://registry.npm.taobao.org/@types/node/download/@types/node-12.19.6.tgz?cache=0&sync_timestamp=1605819795096&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40types%2Fnode%2Fdownload%2F%40types%2Fnode-12.19.6.tgz", - "integrity": "sha1-+/JJ+kZIfdjHOG14UjE2i5KjOlM=", + "version": "12.19.8", + "resolved": "https://registry.npm.taobao.org/@types/node/download/@types/node-12.19.8.tgz?cache=0&sync_timestamp=1607590769174&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40types%2Fnode%2Fdownload%2F%40types%2Fnode-12.19.8.tgz", + "integrity": "sha1-79bRqQUlUZ/GCMnbFsinj3aTqXg=", "dev": true } } @@ -7537,13 +7679,13 @@ "dev": true }, "eslint": { - "version": "7.13.0", - "resolved": "https://registry.npm.taobao.org/eslint/download/eslint-7.13.0.tgz", - "integrity": "sha1-fxgBJsDc3vMnv7VLIR14At7MCNo=", + "version": "7.15.0", + "resolved": "https://registry.npm.taobao.org/eslint/download/eslint-7.15.0.tgz?cache=0&sync_timestamp=1607153191147&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Feslint%2Fdownload%2Feslint-7.15.0.tgz", + "integrity": "sha1-6xVfuO0IZfz12QP3a+Llts1+C8c=", "dev": true, "requires": { "@babel/code-frame": "^7.0.0", - "@eslint/eslintrc": "^0.2.1", + "@eslint/eslintrc": "^0.2.2", "ajv": "^6.10.0", "chalk": "^4.0.0", "cross-spawn": "^7.0.2", @@ -7553,10 +7695,10 @@ "eslint-scope": "^5.1.1", "eslint-utils": "^2.1.0", "eslint-visitor-keys": "^2.0.0", - "espree": "^7.3.0", + "espree": "^7.3.1", "esquery": "^1.2.0", "esutils": "^2.0.2", - "file-entry-cache": "^5.0.1", + "file-entry-cache": "^6.0.0", "functional-red-black-tree": "^1.0.1", "glob-parent": "^5.0.0", "globals": "^12.1.0", @@ -7618,10 +7760,13 @@ "dev": true }, "semver": { - "version": "7.3.2", - "resolved": "https://registry.npm.taobao.org/semver/download/semver-7.3.2.tgz", - "integrity": "sha1-YElisFK4HtB4aq6EOJ/7pw/9OTg=", - "dev": true + "version": "7.3.4", + "resolved": "https://registry.npm.taobao.org/semver/download/semver-7.3.4.tgz?cache=0&sync_timestamp=1606852064928&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsemver%2Fdownload%2Fsemver-7.3.4.tgz", + "integrity": "sha1-J6qn0uTKdkUvmNOt0JOnLJQ+3Jc=", + "dev": true, + "requires": { + "lru-cache": "^6.0.0" + } }, "strip-ansi": { "version": "6.0.0", @@ -8107,13 +8252,13 @@ "dev": true }, "espree": { - "version": "7.3.0", - "resolved": "https://registry.npm.taobao.org/espree/download/espree-7.3.0.tgz?cache=0&sync_timestamp=1598129987642&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fespree%2Fdownload%2Fespree-7.3.0.tgz", - "integrity": "sha1-3DBDfPZ5R89XYSHr14DxXurHI0g=", + "version": "7.3.1", + "resolved": "https://registry.npm.taobao.org/espree/download/espree-7.3.1.tgz?cache=0&sync_timestamp=1607143966756&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fespree%2Fdownload%2Fespree-7.3.1.tgz", + "integrity": "sha1-8t8zC3Usb1UBn4vYm3ZgA5wbu7Y=", "dev": true, "requires": { "acorn": "^7.4.0", - "acorn-jsx": "^5.2.0", + "acorn-jsx": "^5.3.1", "eslint-visitor-keys": "^1.3.0" }, "dependencies": { @@ -8636,12 +8781,12 @@ "dev": true }, "file-entry-cache": { - "version": "5.0.1", - "resolved": "https://registry.npm.taobao.org/file-entry-cache/download/file-entry-cache-5.0.1.tgz", - "integrity": "sha1-yg9u+m3T1WEzP7FFFQZcL6/fQ5w=", + "version": "6.0.0", + "resolved": "https://registry.npm.taobao.org/file-entry-cache/download/file-entry-cache-6.0.0.tgz?cache=0&sync_timestamp=1604832267816&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Ffile-entry-cache%2Fdownload%2Ffile-entry-cache-6.0.0.tgz", + "integrity": "sha1-eSGonDkcbZPv7CFprGvzAMUn6go=", "dev": true, "requires": { - "flat-cache": "^2.0.1" + "flat-cache": "^3.0.4" } }, "file-loader": { @@ -8904,31 +9049,19 @@ } }, "flat-cache": { - "version": "2.0.1", - "resolved": "https://registry.npm.taobao.org/flat-cache/download/flat-cache-2.0.1.tgz", - "integrity": "sha1-XSltbwS9pEpGMKMBQTvbwuwIXsA=", + "version": "3.0.4", + "resolved": "https://registry.npm.taobao.org/flat-cache/download/flat-cache-3.0.4.tgz?cache=0&sync_timestamp=1604831838291&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fflat-cache%2Fdownload%2Fflat-cache-3.0.4.tgz", + "integrity": "sha1-YbAzgwKy/p+Vfcwy/CqH8cMEixE=", "dev": true, "requires": { - "flatted": "^2.0.0", - "rimraf": "2.6.3", - "write": "1.0.3" - }, - "dependencies": { - "rimraf": { - "version": "2.6.3", - "resolved": "https://registry.npm.taobao.org/rimraf/download/rimraf-2.6.3.tgz?cache=0&sync_timestamp=1591175021598&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Frimraf%2Fdownload%2Frimraf-2.6.3.tgz", - "integrity": "sha1-stEE/g2Psnz54KHNqCYt04M8bKs=", - "dev": true, - "requires": { - "glob": "^7.1.3" - } - } + "flatted": "^3.1.0", + "rimraf": "^3.0.2" } }, "flatted": { - "version": "2.0.2", - "resolved": "https://registry.npm.taobao.org/flatted/download/flatted-2.0.2.tgz?cache=0&sync_timestamp=1599726285301&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fflatted%2Fdownload%2Fflatted-2.0.2.tgz", - "integrity": "sha1-RXWyHivO50NKqb5mL0t7X5wrUTg=", + "version": "3.1.0", + "resolved": "https://registry.npm.taobao.org/flatted/download/flatted-3.1.0.tgz", + "integrity": "sha1-pdBrSosB46Y3cdqly3oZA+LlcGc=", "dev": true }, "flush-write-stream": { @@ -9680,9 +9813,9 @@ "dev": true }, "gensync": { - "version": "1.0.0-beta.1", - "resolved": "https://registry.npm.taobao.org/gensync/download/gensync-1.0.0-beta.1.tgz", - "integrity": "sha1-WPQ2H/mH5f9uHnohCCeqNx6qwmk=", + "version": "1.0.0-beta.2", + "resolved": "https://registry.npm.taobao.org/gensync/download/gensync-1.0.0-beta.2.tgz?cache=0&sync_timestamp=1603829773003&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fgensync%2Fdownload%2Fgensync-1.0.0-beta.2.tgz", + "integrity": "sha1-MqbudsPX9S1GsrGuXZP+qFgKJeA=", "dev": true }, "get-caller-file": { @@ -9766,11 +9899,14 @@ }, "dependencies": { "semver": { - "version": "7.3.2", - "resolved": "https://registry.npm.taobao.org/semver/download/semver-7.3.2.tgz", - "integrity": "sha1-YElisFK4HtB4aq6EOJ/7pw/9OTg=", + "version": "7.3.4", + "resolved": "https://registry.npm.taobao.org/semver/download/semver-7.3.4.tgz?cache=0&sync_timestamp=1606852064928&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsemver%2Fdownload%2Fsemver-7.3.4.tgz", + "integrity": "sha1-J6qn0uTKdkUvmNOt0JOnLJQ+3Jc=", "dev": true, - "optional": true + "optional": true, + "requires": { + "lru-cache": "^6.0.0" + } } } }, @@ -10410,9 +10546,9 @@ "dev": true }, "import-fresh": { - "version": "3.2.1", - "resolved": "https://registry.npm.taobao.org/import-fresh/download/import-fresh-3.2.1.tgz", - "integrity": "sha1-Yz/2GFBueTr1rJG/SLcmd+FcvmY=", + "version": "3.2.2", + "resolved": "https://registry.npm.taobao.org/import-fresh/download/import-fresh-3.2.2.tgz?cache=0&sync_timestamp=1604255662987&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fimport-fresh%2Fdownload%2Fimport-fresh-3.2.2.tgz", + "integrity": "sha1-/BKcFgxdaCNVB/QzGmuq0Ya9vD4=", "dev": true, "requires": { "parent-module": "^1.0.0", @@ -11444,13 +11580,13 @@ } }, "markdown-it": { - "version": "12.0.2", - "resolved": "https://registry.npm.taobao.org/markdown-it/download/markdown-it-12.0.2.tgz?cache=0&sync_timestamp=1603472606302&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fmarkdown-it%2Fdownload%2Fmarkdown-it-12.0.2.tgz", - "integrity": "sha1-RAG+ro34qiIh/GVlpxiOYKBu8O0=", + "version": "12.0.3", + "resolved": "https://registry.npm.taobao.org/markdown-it/download/markdown-it-12.0.3.tgz", + "integrity": "sha1-jR5H2vHXFtY2EEleuT9mZVc+Sr4=", "dev": true, "requires": { "argparse": "^2.0.1", - "entities": "~2.0.0", + "entities": "~2.1.0", "linkify-it": "^3.0.1", "mdurl": "^1.0.1", "uc.micro": "^1.0.5" @@ -11463,9 +11599,9 @@ "dev": true }, "entities": { - "version": "2.0.3", - "resolved": "https://registry.npm.taobao.org/entities/download/entities-2.0.3.tgz", - "integrity": "sha1-XEh+V0Krk8Fau12iJ1m4WQ7AO38=", + "version": "2.1.0", + "resolved": "https://registry.npm.taobao.org/entities/download/entities-2.1.0.tgz?cache=0&sync_timestamp=1602897029273&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fentities%2Fdownload%2Fentities-2.1.0.tgz", + "integrity": "sha1-mS0xKc999ocLlsV4WMJJoSD4uLU=", "dev": true } } @@ -11967,9 +12103,9 @@ "dev": true }, "node-id3": { - "version": "0.1.19", - "resolved": "https://registry.npm.taobao.org/node-id3/download/node-id3-0.1.19.tgz", - "integrity": "sha1-cQAMuCna3HYQAKSBAV5T88ydqto=", + "version": "0.1.21", + "resolved": "https://registry.npm.taobao.org/node-id3/download/node-id3-0.1.21.tgz", + "integrity": "sha1-bp+8x68J9lEUkJoR90otcLVFu/M=", "requires": { "iconv-lite": "0.5.1" }, @@ -12541,8 +12677,8 @@ }, "path-key": { "version": "3.1.1", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", - "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", + "resolved": "https://registry.npm.taobao.org/path-key/download/path-key-3.1.1.tgz", + "integrity": "sha1-WB9q3mWMu6ZaDTOA3ndTKVBU83U=", "dev": true }, "path-parse": { @@ -12797,9 +12933,9 @@ } }, "postcss-loader": { - "version": "4.0.4", - "resolved": "https://registry.npm.taobao.org/postcss-loader/download/postcss-loader-4.0.4.tgz", - "integrity": "sha1-stAFtS4AikSZHPgSO+4gfmNetT4=", + "version": "4.1.0", + "resolved": "https://registry.npm.taobao.org/postcss-loader/download/postcss-loader-4.1.0.tgz?cache=0&sync_timestamp=1605790872639&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-loader%2Fdownload%2Fpostcss-loader-4.1.0.tgz", + "integrity": "sha1-RkemyNrTy2slP7+qIdYiAQhvbjk=", "dev": true, "requires": { "cosmiconfig": "^7.0.0", @@ -12875,10 +13011,13 @@ } }, "semver": { - "version": "7.3.2", - "resolved": "https://registry.npm.taobao.org/semver/download/semver-7.3.2.tgz", - "integrity": "sha1-YElisFK4HtB4aq6EOJ/7pw/9OTg=", - "dev": true + "version": "7.3.4", + "resolved": "https://registry.npm.taobao.org/semver/download/semver-7.3.4.tgz?cache=0&sync_timestamp=1606852064928&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsemver%2Fdownload%2Fsemver-7.3.4.tgz", + "integrity": "sha1-J6qn0uTKdkUvmNOt0JOnLJQ+3Jc=", + "dev": true, + "requires": { + "lru-cache": "^6.0.0" + } } } }, @@ -13645,9 +13784,9 @@ } }, "pug-plain-loader": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/pug-plain-loader/-/pug-plain-loader-1.0.0.tgz", - "integrity": "sha512-mDfq/qvJJ0xdug38mZ1ObW0BQTx9kAHnKqotXC+C00XQkKmsWaMe90JUg/kN4lS6MU7tpVsMZ+rmcnBSPfDtHA==", + "version": "1.1.0", + "resolved": "https://registry.npm.taobao.org/pug-plain-loader/download/pug-plain-loader-1.1.0.tgz", + "integrity": "sha1-WfO0dShIca/NahjSrTMYsVD9xTM=", "dev": true, "requires": { "loader-utils": "^1.1.0" @@ -14112,9 +14251,9 @@ } }, "regenerate": { - "version": "1.4.1", - "resolved": "https://registry.npm.taobao.org/regenerate/download/regenerate-1.4.1.tgz", - "integrity": "sha1-ytkq2Oa1kXc0hfvgWkhcr09Ffm8=", + "version": "1.4.2", + "resolved": "https://registry.npm.taobao.org/regenerate/download/regenerate-1.4.2.tgz?cache=0&sync_timestamp=1604218353677&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fregenerate%2Fdownload%2Fregenerate-1.4.2.tgz", + "integrity": "sha1-uTRtiCfo9aMve6KWN9OYtpAUhIo=", "dev": true }, "regenerate-unicode-properties": { @@ -14783,8 +14922,8 @@ }, "shebang-command": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", - "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", + "resolved": "https://registry.npm.taobao.org/shebang-command/download/shebang-command-2.0.0.tgz", + "integrity": "sha1-zNCvT4g1+9wmW4JGGq8MNmY/NOo=", "dev": true, "requires": { "shebang-regex": "^3.0.0" @@ -14792,8 +14931,8 @@ }, "shebang-regex": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", - "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", + "resolved": "https://registry.npm.taobao.org/shebang-regex/download/shebang-regex-3.0.0.tgz", + "integrity": "sha1-rhbxZE2HPsrYQ7AwexQzYtTEIXI=", "dev": true }, "signal-exit": { @@ -15562,9 +15701,9 @@ } }, "stylus-loader": { - "version": "4.3.0", - "resolved": "https://registry.npm.taobao.org/stylus-loader/download/stylus-loader-4.3.0.tgz", - "integrity": "sha1-1Lq1pNlX9LH1Z74QgYX/I74hatQ=", + "version": "4.3.1", + "resolved": "https://registry.npm.taobao.org/stylus-loader/download/stylus-loader-4.3.1.tgz", + "integrity": "sha1-i050kpTZ/gcpwuXh8Ey/h+HJQao=", "dev": true, "requires": { "fast-glob": "^3.2.4", @@ -16743,9 +16882,9 @@ "dev": true }, "vue-i18n": { - "version": "8.22.1", - "resolved": "https://registry.npm.taobao.org/vue-i18n/download/vue-i18n-8.22.1.tgz", - "integrity": "sha1-ud0Jihfh9a25G9+WEfA4UxDafLE=" + "version": "8.22.2", + "resolved": "https://registry.npm.taobao.org/vue-i18n/download/vue-i18n-8.22.2.tgz", + "integrity": "sha1-WCmaWgUOZ7T3mdlv7n3YvSaeCQc=" }, "vue-loader": { "version": "15.9.5", @@ -16792,9 +16931,9 @@ "dev": true }, "vuex": { - "version": "3.5.1", - "resolved": "https://registry.npmjs.org/vuex/-/vuex-3.5.1.tgz", - "integrity": "sha512-w7oJzmHQs0FM9LXodfskhw9wgKBiaB+totOdb8sNzbTB2KDCEEwEs29NzBZFh/lmEK1t5tDmM1vtsO7ubG1DFw==" + "version": "3.6.0", + "resolved": "https://registry.npm.taobao.org/vuex/download/vuex-3.6.0.tgz?cache=0&sync_timestamp=1606318199388&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fvuex%2Fdownload%2Fvuex-3.6.0.tgz", + "integrity": "sha1-le+lalj3YHwTWwUzUIM6CeAaqBM=" }, "vuex-router-sync": { "version": "5.0.0", @@ -17612,9 +17751,9 @@ } }, "webpack-merge": { - "version": "5.4.0", - "resolved": "https://registry.npm.taobao.org/webpack-merge/download/webpack-merge-5.4.0.tgz?cache=0&sync_timestamp=1605175039097&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fwebpack-merge%2Fdownload%2Fwebpack-merge-5.4.0.tgz", - "integrity": "sha1-gb7wp9I/webCSwati/It3rUzo6M=", + "version": "5.6.1", + "resolved": "https://registry.npm.taobao.org/webpack-merge/download/webpack-merge-5.6.1.tgz?cache=0&sync_timestamp=1607713149663&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fwebpack-merge%2Fdownload%2Fwebpack-merge-5.6.1.tgz", + "integrity": "sha1-k8iGpocUhqeZ5d0y0xIAgQlpS1s=", "dev": true, "requires": { "clone-deep": "^4.0.1", @@ -17656,8 +17795,8 @@ }, "which": { "version": "2.0.2", - "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", - "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "resolved": "https://registry.npm.taobao.org/which/download/which-2.0.2.tgz?cache=0&sync_timestamp=1591176491341&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fwhich%2Fdownload%2Fwhich-2.0.2.tgz", + "integrity": "sha1-fGqN0KY2oDJ+ELWckobu6T8/UbE=", "dev": true, "requires": { "isexe": "^2.0.0" @@ -17686,8 +17825,8 @@ }, "window-size": { "version": "1.1.1", - "resolved": "https://registry.npmjs.org/window-size/-/window-size-1.1.1.tgz", - "integrity": "sha512-5D/9vujkmVQ7pSmc0SCBmHXbkv6eaHwXEx65MywhmUMsI8sGqJ972APq1lotfcwMKPFLuCFfL8xGHLIp7jaBmA==", + "resolved": "https://registry.npm.taobao.org/window-size/download/window-size-1.1.1.tgz", + "integrity": "sha1-mFhYZYCtp4qybs1peKbgMRXBryA=", "dev": true, "requires": { "define-property": "^1.0.0", @@ -17779,15 +17918,6 @@ "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", "dev": true }, - "write": { - "version": "1.0.3", - "resolved": "https://registry.npm.taobao.org/write/download/write-1.0.3.tgz", - "integrity": "sha1-CADhRSO5I6OH5BUSPIZWFqrg9cM=", - "dev": true, - "requires": { - "mkdirp": "^0.5.1" - } - }, "write-file-atomic": { "version": "3.0.3", "resolved": "https://registry.npm.taobao.org/write-file-atomic/download/write-file-atomic-3.0.3.tgz", @@ -17889,6 +18019,12 @@ "buffer-crc32": "~0.2.3", "fd-slicer": "~1.1.0" } + }, + "yocto-queue": { + "version": "0.1.0", + "resolved": "https://registry.npm.taobao.org/yocto-queue/download/yocto-queue-0.1.0.tgz?cache=0&sync_timestamp=1606290282107&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fyocto-queue%2Fdownload%2Fyocto-queue-0.1.0.tgz", + "integrity": "sha1-ApTrPe4FAo0x7hpfosVWpqrxChs=", + "dev": true } } } diff --git a/package.json b/package.json index dba6e249..f132717f 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "lx-music-desktop", - "version": "1.4.1", + "version": "1.5.0-beta", "description": "一个免费的音乐下载助手", "main": "./dist/electron/main.js", "productName": "lx-music-desktop", @@ -160,29 +160,29 @@ }, "homepage": "https://github.com/lyswhut/lx-music-desktop#readme", "devDependencies": { - "@babel/core": "^7.12.3", + "@babel/core": "^7.12.10", "@babel/plugin-syntax-dynamic-import": "^7.8.3", "@babel/plugin-transform-modules-umd": "^7.12.1", - "@babel/plugin-transform-runtime": "^7.12.1", + "@babel/plugin-transform-runtime": "^7.12.10", "@babel/polyfill": "^7.12.1", - "@babel/preset-env": "^7.12.1", + "@babel/preset-env": "^7.12.10", "babel-eslint": "^10.1.0", - "babel-loader": "^8.2.1", + "babel-loader": "^8.2.2", "babel-minify-webpack-plugin": "^0.3.1", "babel-preset-minify": "^0.5.1", - "cfonts": "^2.8.6", + "cfonts": "^2.9.0", "chalk": "^4.1.0", "changelog-parser": "^2.8.0", - "copy-webpack-plugin": "^6.3.1", - "core-js": "^3.7.0", - "cross-env": "^7.0.2", + "copy-webpack-plugin": "^6.4.0", + "core-js": "^3.8.1", + "cross-env": "^7.0.3", "css-loader": "^4.3.0", "del": "^6.0.0", - "electron": "^9.3.3", + "electron": "^9.3.5", "electron-builder": "^22.9.1", "electron-debug": "^3.1.0", "electron-devtools-installer": "^3.1.1", - "eslint": "^7.13.0", + "eslint": "^7.15.0", "eslint-config-standard": "^14.1.1", "eslint-formatter-friendly": "^7.0.0", "eslint-loader": "^4.0.2", @@ -196,19 +196,19 @@ "html-webpack-plugin": "^4.5.0", "less": "^3.12.2", "less-loader": "^7.1.0", - "markdown-it": "^12.0.2", + "markdown-it": "^12.0.3", "mini-css-extract-plugin": "^0.12.0", "optimize-css-assets-webpack-plugin": "^5.0.4", - "postcss-loader": "^4.0.4", + "postcss-loader": "^4.1.0", "postcss-pxtorem": "^5.1.1", "pug": "^3.0.0", "pug-loader": "^2.4.0", - "pug-plain-loader": "^1.0.0", + "pug-plain-loader": "^1.1.0", "raw-loader": "^4.0.2", "rimraf": "^3.0.2", "spinnies": "^0.5.1", "stylus": "^0.54.8", - "stylus-loader": "^4.3.0", + "stylus-loader": "^4.3.1", "terser-webpack-plugin": "^4.2.3", "url-loader": "^4.1.1", "vue-loader": "^15.9.5", @@ -217,7 +217,7 @@ "webpack-cli": "^3.3.12", "webpack-dev-server": "^3.11.0", "webpack-hot-middleware": "^2.25.0", - "webpack-merge": "^5.4.0" + "webpack-merge": "^5.6.1" }, "dependencies": { "crypto-js": "^4.0.0", @@ -233,9 +233,9 @@ "node-id3": "^0.1.19", "request": "^2.88.2", "vue": "^2.6.12", - "vue-i18n": "^8.22.1", + "vue-i18n": "^8.22.2", "vue-router": "^3.4.9", - "vuex": "^3.5.1", + "vuex": "^3.6.0", "vuex-router-sync": "^5.0.0" } } From 227c05a696b1b2604513d3e3dc3385be8ae1649a Mon Sep 17 00:00:00 2001 From: lyswhut Date: Sat, 12 Dec 2020 21:00:58 +0800 Subject: [PATCH 27/41] =?UTF-8?q?=E9=99=8D=E7=BA=A7electron=E5=88=B09.3.3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- package-lock.json | 14 +++++++------- package.json | 2 +- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/package-lock.json b/package-lock.json index 270b1965..f207b79a 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,6 +1,6 @@ { "name": "lx-music-desktop", - "version": "1.4.1", + "version": "1.5.0-beta", "lockfileVersion": 1, "requires": true, "dependencies": { @@ -7239,9 +7239,9 @@ } }, "electron": { - "version": "9.3.5", - "resolved": "https://registry.npm.taobao.org/electron/download/electron-9.3.5.tgz", - "integrity": "sha1-eWcUa4Hm2bSEdzJD/UpPZxpQuIQ=", + "version": "9.3.3", + "resolved": "https://registry.npm.taobao.org/electron/download/electron-9.3.3.tgz", + "integrity": "sha1-maZhnV32j5dpel0dgu86imP83zY=", "dev": true, "requires": { "@electron/get": "^1.0.1", @@ -8686,7 +8686,7 @@ "dependencies": { "debug": { "version": "2.6.9", - "resolved": "https://registry.npm.taobao.org/debug/download/debug-2.6.9.tgz?cache=0&sync_timestamp=1600502894812&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fdebug%2Fdownload%2Fdebug-2.6.9.tgz", + "resolved": "https://registry.npm.taobao.org/debug/download/debug-2.6.9.tgz?cache=0&sync_timestamp=1607566533140&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fdebug%2Fdownload%2Fdebug-2.6.9.tgz", "integrity": "sha1-XRKFFd8TT/Mn6QpMk/Tgd6U2NB8=", "dev": true, "requires": { @@ -8695,7 +8695,7 @@ }, "ms": { "version": "2.0.0", - "resolved": "https://registry.npm.taobao.org/ms/download/ms-2.0.0.tgz", + "resolved": "https://registry.npm.taobao.org/ms/download/ms-2.0.0.tgz?cache=0&sync_timestamp=1607433842694&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fms%2Fdownload%2Fms-2.0.0.tgz", "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", "dev": true } @@ -14770,7 +14770,7 @@ "dependencies": { "type-fest": { "version": "0.13.1", - "resolved": "https://registry.npm.taobao.org/type-fest/download/type-fest-0.13.1.tgz?cache=0&sync_timestamp=1602623859603&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Ftype-fest%2Fdownload%2Ftype-fest-0.13.1.tgz", + "resolved": "https://registry.npm.taobao.org/type-fest/download/type-fest-0.13.1.tgz?cache=0&sync_timestamp=1606468844109&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Ftype-fest%2Fdownload%2Ftype-fest-0.13.1.tgz", "integrity": "sha1-AXLLW86AsL1ULqNI21DH4hg02TQ=", "dev": true, "optional": true diff --git a/package.json b/package.json index f132717f..2aa9ae0a 100644 --- a/package.json +++ b/package.json @@ -178,7 +178,7 @@ "cross-env": "^7.0.3", "css-loader": "^4.3.0", "del": "^6.0.0", - "electron": "^9.3.5", + "electron": "^9.3.3", "electron-builder": "^22.9.1", "electron-debug": "^3.1.0", "electron-devtools-installer": "^3.1.1", From 684d90d0e7cf893ff61f13cea2c9347851d120ef Mon Sep 17 00:00:00 2001 From: lyswhut Date: Sun, 13 Dec 2020 11:47:46 +0800 Subject: [PATCH 28/41] =?UTF-8?q?=E5=8F=91=E5=B8=83v1.5.0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- CHANGELOG.md | 17 +++++++++++++++++ package.json | 2 +- publish/version.json | 2 +- 3 files changed, 19 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 756b6e27..1b4a58e6 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -6,6 +6,23 @@ 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.5.0](https://github.com/lyswhut/lx-music-desktop/compare/v1.4.1...v1.5.0) - 2020-12-13 + +### 新增 + +- 直接从歌单详情收藏的列表新增同步功能。注意:这将会覆盖本地的目标列表,歌曲将被替换成最新的在线列表 + +### 优化 + +- 优化软件启动时恢复上一次播放的歌曲进度功能 + +### 修复 + +- 修复MAC平台上下载歌曲封面嵌入无法显示的问题 +- 修复MAC平台首次运行软件最小化、关闭控制按钮默认在右边的问题 +- 修复酷狗源的某些歌曲没有专辑字段导致的列表加载失败问题 +- 修复某些酷狗源歌单链接无法打开的问题 + ## [1.4.1](https://github.com/lyswhut/lx-music-desktop/compare/v1.4.0...v1.4.1) - 2020-11-25 diff --git a/package.json b/package.json index 2aa9ae0a..378935fa 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "lx-music-desktop", - "version": "1.5.0-beta", + "version": "1.5.0", "description": "一个免费的音乐下载助手", "main": "./dist/electron/main.js", "productName": "lx-music-desktop", diff --git a/publish/version.json b/publish/version.json index 9a31cb07..4b8fc7f2 100644 --- a/publish/version.json +++ b/publish/version.json @@ -1 +1 @@ -{"version":"1.4.1","desc":"

修复

\n
    \n
  • 修复有歌词翻译与无歌词的音乐间切换会导致歌词翻译残留显示的问题
  • \n
  • 修复歌曲URL过期时,等待刷新URL的自动切换歌曲时间间隔太短的问题
  • \n
  • 修复某些电脑上的某些歌曲没有声音的问题(升级Electron9.3.4导致的,现降级到9.3.3)
  • \n
\n","history":[{"version":"1.4.0","desc":"

新增

\n
    \n
  • 托盘菜单新增显示、隐藏主界面选项,为Linux、MAC版添加托盘菜单
  • \n
  • 新增播放进度信息保存
  • \n
\n

优化

\n
    \n
  • 移除kg源的歌词文件开头的空白字符串
  • \n
\n

修复

\n
    \n
  • 修复专辑图片无法嵌入的问题
  • \n
  • 修复播放状态栏切换“上一首”歌曲按钮提示错误的问题
  • \n
  • 修复移动单首歌曲时,如果目标列表存在该歌曲,会导致将源列表与目标列表里的目标歌曲移除
  • \n
  • 修复kg源歌曲信息带有单引号等特殊字符被转义的问题
  • \n
\n"},{"version":"1.3.0","desc":"

新增

\n
    \n
  • 播放详情页新增歌曲评论加载显示(某些平台暂不支持显示子评论)
  • \n
\n

优化

\n
    \n
  • 修改播放详情页的歌曲图片的显示效果
  • \n
\n

修复

\n
    \n
  • 修复小芸源音乐搜索结果最多只有20条搜索结果的问题
  • \n
\n"},{"version":"1.2.2","desc":"

修复

\n
    \n
  • 降级 Electron 到 9.x.x 版本修复 Linux 版桌面歌词窗口变白的问题
  • \n
\n"},{"version":"1.2.1","desc":"

优化

\n
    \n
  • Linux版的软件界面默认使用圆角与阴影,顺便修复了桌面歌词窗口变白的问题,已在Ubuntu 18.10测试正常,若显示异常可尝试添加-nt参数启动
  • \n
\n

修复

\n
    \n
  • 修复聚合搜索的分页问题
  • \n
  • 修复代理输入框输入的内容不生效的问题
  • \n
\n"},{"version":"1.2.0","desc":"

提前祝大家中秋&国庆快乐~

\n

新增

\n
    \n
  • 播放控制栏开启/关闭桌面歌词按钮 新增右击按钮时锁定/解锁桌面歌词功能
  • \n
\n

优化

\n
    \n
  • 优化我的列表滚动条位置的保存逻辑
  • \n
  • 更新设置-备份与恢复功能的描述
  • \n
  • 优化软件内鼠标悬停的提示界面
  • \n
\n

修复

\n
    \n
  • 修复桌面歌词窗口不允许拖出桌面之外的位置计算偏移Bug
  • \n
  • 修复网易云KTV嗨榜无法加载的问题
  • \n
  • 修复初始化搜索历史列表功能
  • \n
  • 修复重启软件后试听列表与收藏列表无法恢复上次的滚动位置的问题
  • \n
  • 修复歌曲封面无法嵌入的Bug
  • \n
  • 修复酷狗歌词格式问题
  • \n
  • 修复关闭切换动画时从搜索候选列表点击内容无效的问题
  • \n
\n

其他

\n
    \n
  • 更新 Electron 到 v10.1.3
  • \n
\n"},{"version":"1.1.1","desc":"

修复

\n
    \n
  • 修复某些情况下桌面歌词不会播放的问题
  • \n
\n"},{"version":"1.1.0","desc":"

新增

\n
    \n
  • 在歌单详情界面新增播放当前歌单按钮、收藏歌单按钮,注:播放歌单不会将歌曲添加到试听列表
  • \n
  • 新增不允许将歌词窗口拖出主屏幕之外的设置项,默认开启,在连接多个屏幕时想要拖动到其他屏幕时可关闭此设置
  • \n
  • 新增大部分平台的歌词翻译,感谢 @InoriHimea 提供的krc解码算法
  • \n
  • 新增显示歌词翻译设置,默认开启,仅支持某些平台,注:无论该设置是否开启,嵌入或下载歌词时都不会带上翻译
  • \n
  • 新增显示切换动画设置,默认开启,关闭时将基本禁用软件内的所有切换动画
  • \n
  • 播放状态栏新增桌面歌词的开关、播放模式的切换、歌曲的收藏按钮,Thanks to @andylow for the icon!
  • \n
\n

修复

\n
    \n
  • 修复使用全局快捷键还原窗口时,窗口没有获取焦点的问题
  • \n
  • 修复我的列表搜索对最后一个字符的匹配问题
  • \n
  • 修复窗口在较小模式下最小化/关闭按钮不居中的问题
  • \n
\n

优化

\n
    \n
  • 桌面歌词当前播放行改为上下居中
  • \n
  • 为区分静音状态,静音时音量条会变淡,调整音量条时将会取消静音
  • \n
  • 优化随机播放机制,现在通过下一曲切换歌曲时,直到播放完整个列表之前将不会再随机到之前播放过的歌曲,并且通过上一曲可以正确播放上一首歌曲
  • \n
  • 当下载目录没有写入权限时将显示没有写入权限的提示
  • \n
\n

移除

\n
    \n
  • 移除默认的全局声音媒体快捷键接管
  • \n
  • 移除对百度音乐的支持,因百度音乐原有的大部分API失效,而且该平台相对其他平台来说音乐太少了,可有可无,以后再看情况恢复
  • \n
\n

其他

\n
    \n
  • 更新electron到 10.1.2
  • \n
\n"},{"version":"1.0.1","desc":"

优化

\n
    \n
  • 对我的列表歌曲搜索结果进行相似度排序
  • \n
\n

修复

\n
    \n
  • 修复在 Windows 系统下缩放比非100%时,拖动桌面歌词会自动加大桌面歌词窗口的问题
  • \n
\n"},{"version":"1.0.0","desc":"

新增

\n
    \n
  • 新增rpmpacman包的构建(未测试可用性)
  • \n
  • 新增因系统音频设备列表改变导致的当前音频输出设备改变时是否暂停播放的设置,默认关闭
  • \n
  • 新增歌曲列表右击菜单
  • \n
  • 新增自定义列表,创建列表的按钮在表头#左侧,鼠标移上去才会显示;编辑列表名字时,按ESC键可快速取消编辑,按回车键或使输入框失去焦点即可保存列表名字,右击列表可编辑已创建的列表,“试听列表”与“我的收藏”两个列表固定不可编辑
  • \n
  • 改变排行榜布局,新增更多排行榜
  • \n
  • 新增我的列表右键菜单复制歌曲名选项
  • \n
  • 新增桌面歌词,默认关闭,可到设置或者托盘菜单开启(建议使用全局快捷键控制);调整字体大小、透明度时,鼠标左击按钮正常调整,右击微调;Windows 7未开启Aero效果时桌面歌词会有问题,详情看常见问题解决;Linux版桌面歌词有问题,以后再尝试优化;
  • \n
  • 新增“清热板蓝”皮肤
  • \n
  • 新增软件最小化、关闭按钮位置设置,MAC版默认为左边,非MAC为右边,不想用默认的可到设置修改
  • \n
  • 新增快捷键设置,软件内快捷键默认开启,全局快捷键默认关闭(注:若想开启蓝牙耳机切歌需开启全局快捷键,当快捷键被中划线划掉时,表示当前快捷键被其他程序占用导致注册失败)
  • \n
  • 新增首次运行时自动根据当前系统使用的语言设置软件显示的语言
  • \n
  • 新增歌词区域的触摸板、鼠标滚轮等对歌词滚动的支持
  • \n
  • 为了方便支持正版资源,歌曲列表右击菜单新增跳转到当前歌曲源官方详情页菜单(注意:在本版本之前添加的虾米源歌曲无法跳转详情页,需要移除后重新搜索添加)
  • \n
  • 新增我的列表内歌曲搜索,在我的列表按ctrl+f将显示搜索框;鼠标滑过或键盘上下方向键选择搜索结果;鼠标点击或按回车键定位选中的歌曲;按ctrl键的情况下鼠标点击或按回车键确认定位歌曲时,将会在定位歌曲结束后播放该歌曲(搜索框激活的情况下按esc可快速清空搜索框/关闭搜索框)
  • \n
  • 新增托盘图标样式设置,可到设置-其他切换
  • \n
  • 新增开关下载功能控制,默认关闭,可到设置-下载设置开启
  • \n
  • 新增将歌词嵌入音频文件中,默认关闭,可到设置-下载设置开启
  • \n
  • 新增当列表文件损坏时对损坏文件的备份,若出现该情况可打开%HOMEPATH%\\AppData\\Roaming\\lx-music-desktop找到playList.json.bak尝试手动修复列表文件,列表文件以JSON格式存储
  • \n
  • 新增在歌单详情列表按退格(Backspace)键可快速返回歌单列表
  • \n
\n

优化

\n
    \n
  • 改进歌曲切换时的歌词滚动效果
  • \n
  • 优化批量添加、删除播放列表的歌曲操作逻辑,大幅提升批量添加、删除列表歌曲的流畅度
  • \n
  • 改进歌单列表展示
  • \n
  • 改进聚合搜索的搜索结果排序,修复当某些源搜索失败时导致其他源无法显示结果的问题,现在聚合搜索已达到最初的理想效果,为了使排序更精确,建议同时输入 歌曲名 歌手名 搜索(歌曲名在前歌手名在后),欢迎体验~!
  • \n
  • 压缩备份数据文件大小
  • \n
\n

修复

\n
    \n
  • 修复按住Ctrl等键触发多选机制时不松开按键的情况下切换到其他窗口后再松开按键,这时切回软件不按按键都处在多选模式的问题
  • \n
  • 修复Linux版开启托盘无法退出的问题
  • \n
  • 修复某些情况下可能导致的音源输出问题
  • \n
  • 修复某些情况下无法开始下载任务的问题
  • \n
  • 修复 tab 组件边框溢出问题
  • \n
  • 修复错误更新试听列表外的歌曲时间的问题
  • \n
  • 修复网易音乐源歌单、排行榜歌曲列表加载显示的数量与实际不对的问题,同时支持加载大于1000首歌的歌单(歌曲大于1000首会分页),注意:目前软件一下子显示太多歌曲时会卡顿,不建议在同一列表内添加太多歌曲
  • \n
  • 修复歌曲图片链接没有扩展名的情况下无法嵌入图片的问题
  • \n
  • 修复无法检测最新版本时弹窗提示的显示
  • \n
  • 修复某些情况下从托盘还原窗口后无法操作的问题
  • \n
  • 修复Linux下无法ctrl+a全选的问题
  • \n
  • 修复主题背景图片覆盖不全的问题
  • \n
  • 修复聚合搜索音源标签的皮肤配色问题
  • \n
\n

更变

\n
    \n
  • 修改设置-列表-是否显示歌曲源的默认设置为选中(该变更不影响之前的设置)
  • \n
  • 移除浮动按钮,现在在多选完成后可鼠标右击随意一项在弹出的右键菜单中进行原来悬浮按钮的操作
  • \n
  • 为了避免出现误会,现在下载弹窗中不可用的音质将直接隐藏
  • \n
  • 更改初始设置的搜索设置为聚合搜索(该变更不影响之前的设置)
  • \n
\n

其他

\n
    \n
  • 更新 Electron 到 9.1.1
  • \n
\n"},{"version":"0.18.2","desc":"

修复

\n
    \n
  • 修复开启托盘时,可能导致无法自动更新的问题
  • \n
\n"},{"version":"0.18.1","desc":"

优化

\n
    \n
  • win下的托盘图标使用更大的图片
  • \n
  • 加长软件协议的强制停留时间
  • \n
\n

修复

\n
    \n
  • 修复导入设置某些设置未立即生效的问题
  • \n
\n"},{"version":"0.18.0","desc":"

新增

\n
    \n
  • 新增FLAC格式音乐标签信息写入与封面嵌入(因128k以外的音质已失效,目前该功能用不上了)
  • \n
  • 添加软件启动时是否自动聚焦搜索框的设置
  • \n
  • 新增托盘设置,默认关闭,可到设置开启,感谢 @LasyIsLazy 提交的PR
  • \n
  • 新增打开酷狗源用户歌单
  • \n
  • 新增使用协议
  • \n
  • 新增虾米音源
  • \n
  • 新增新皮肤“粉妆玉琢”、“青出于黑”,可去体验下~
  • \n
  • 新增“超大”、“巨大”窗口尺寸
  • \n
  • 新增播放详情页(退出详情页可点击右上角退出按钮或者在播放详情页任意地方鼠标快速右击两次
  • \n
\n

优化

\n
    \n
  • 略微加深音量条底色
  • \n
  • 优化其他界面细节
  • \n
  • 优化英语翻译,感谢 @CPCer
  • \n
  • 优化程序的流畅度
  • \n
\n

更变

\n
    \n
  • 下载列表的歌曲下载、播放将随设置中的保存路径改变而改变,不再固定指向其初始位置
  • \n
  • 移除列表多选框,现在多选需要键盘配合,想要多选前需按下ShiftCtrl键然后再鼠标点击想要选中的内容即可触发多选机制,其中Shift键用于连续选择,Ctrl键用于不连续选择,Ctrl+a用于快速全选。例子一:想要选中1-5项,则先按下Shift键后,鼠标点击第一项,再点击第五项即可完成选择;例子二:想要选中1项与第3项,则先按下Ctrl键后,鼠标点击第一项,再点击第三项即可完成选择;例子三:想要选中当前列表的全部内容,键盘先按下Ctrl键不放,然后按a键,即可完成选择。用ShiftCtrl选择时,鼠标点击未选中的内容会将其选中,点击已选择的内容会将其取消选择,若想全部取消选择,在不按ShiftAlt键的情况下,随意点击列表里的一项内容即可全部取消选择。(P.S:Ctrl键对应Mac OS上的Command键)
  • \n
  • 现在进度条的封面图左击改为打开播放详情页,在列表定位歌曲改为右击
  • \n
\n

修复

\n
    \n
  • 修复网易源某些歌曲提示没有可播放的音质的问题
  • \n
  • 修复下载管理刷新URL失败时不标记任务下载失败的问题
  • \n
  • 修复列表导出的文字描述,感谢 @CPCer
  • \n
  • 修复歌曲切换方式无法取消勾选的问题
  • \n
  • 修复打开歌单详情的情况下切到其他界面再切回来报错的问题
  • \n
  • 修正播放列表浮动按钮错误的文字提示
  • \n
\n

移除

\n
    \n
  • 因128k以外的音质失效,So 禁止所有128k外的音质下载
  • \n
\n

其他

\n

更新 Electron 到 8.2.5

\n"},{"version":"0.17.0","desc":"

新增

\n
    \n
  • 新增多语言设置,目前软件内置了简体中文、繁体中文、英语三种语言,欢迎提交PR翻译更多语言!
  • \n
  • 新增无法打开外部歌单FAQ
  • \n
  • 新增启动参数search,使用例子:.\\lx-music-desktop.exe -search="突然的自我 - 伍佰"
  • \n
  • 新增音频输出设置
  • \n
  • 新增软件内的包括字体在内的界面内容大小调整,现在当窗口大小切换到“较小/大/较大”时,软件内的元素将会适当减小或加大,窗口大小的“小”与“中”内的元素将保持之前的大小暂不做改变
  • \n
  • 新增音源别名,默认将显示别名,想要显示回原名可到设置切换(免责声明:别名仅是本软件用于描述各音源的标签,其名字归版权方所有)
  • \n
  • 新增发现新版本更新失败弹窗的忽略提醒按钮,忽略提醒后,以后同一个版本再失败时将不会弹窗提醒,但仍可到设置-版本更新手动点开更新弹窗查看或恢复提醒
  • \n
  • 新增热搜词,默认关闭,可到设置开启
  • \n
  • 新增历史搜索记录,默认关闭,可到设置开启(右击单个历史记录标签可移除所点击的记录)
  • \n
\n

优化

\n
    \n
  • 优化月里嫦娥皮肤侧栏鼠标悬浮颜色
  • \n
  • 优化播放进度条的动画效果
  • \n
  • 现在添加下载任务时,后面添加的任务会在列表顶部插入
  • \n
  • 优化歌单打开机制,现在歌单加载失败时会提示加载失败了,并且支持直接打开企鹅、酷我手机分享出来的歌单了
  • \n
  • 优化右上角最小化/关闭按钮布局
  • \n
\n

修复

\n
    \n
  • 修复歌单详情处于加载状态时无法返回的问题
  • \n
  • 修复鼠标右击复制列表内容时会复制音质标签的问题
  • \n
  • 修复0.6.2及以前的版本导出的“所有数据”内的歌曲列表无法导入的问题
  • \n
  • 修复下载列表在某些情况下无法取消全选的问题
  • \n
\n

其他

\n
    \n
  • 更新Electron到 8.1.1
  • \n
\n"},{"version":"0.16.0","desc":"

新增

\n
    \n
  • 允许选中列表内歌曲名、歌手名、专辑名内的文字,选中后可使用键盘快捷键进行复制
  • \n
  • 新增在列表可选内容区域鼠标右击时自动复制列表已选文字的功能
  • \n
  • 新增在搜索框鼠标右击时自动粘贴剪贴板的文本到搜索框中
  • \n
  • 任务下载失败时将显示搜索按钮,方便在其他源搜索该歌曲
  • \n
\n

优化

\n
    \n
  • 优化木叶之村主题翻页器背景颜色
  • \n
  • 优化各个主题音质标签颜色
  • \n
  • 优化其他一些界面细节及用户交互效果
  • \n
\n

修复

\n
    \n
  • 修复启用透明窗口鼠标不穿透的bug
  • \n
  • 修复大窗口时设置的音乐来源选项不换行的问题
  • \n
  • 修复某些情况下暂停任务会自动开始任务的问题
  • \n
  • 修复移除暂停、错误的任务时不删除未下载完成的文件的问题
  • \n
  • 修复酷狗源歌单热门标签歌单列表无法加载问题
  • \n
  • 修复QQ源歌单热门标签歌单列表无法加载问题
  • \n
\n

其他

\n
    \n
  • 更新electron到 8.0.1
  • \n
\n"},{"version":"0.15.0","desc":"

洛雪提前祝大家新年快乐、身体健康、阖家幸福!

\n

修复

\n
    \n
  • 修复歌曲下载列表无法加载的问题
  • \n
  • 修复歌曲下载任务数大于最大下载任务数的问题
  • \n
  • 修复某些情况下歌曲下载错误的问题
  • \n
  • 修复下载列表数据没有被迁移直接被丢弃的问题
  • \n
\n"},{"version":"0.14.1","desc":"

洛雪提前祝大家新年快乐、身体健康、阖家幸福!

\n

修复

\n
    \n
  • 修复由于旧版配置文件迁移出错导致的软件界面无法显示的问题
  • \n
\n"},{"version":"0.14.0","desc":"

洛雪提前祝大家新年快乐、身体健康、阖家幸福!

\n

新增

\n
    \n
  • 新增各大平台歌单热门标签显示(显示在歌单界面的第一个下拉标签菜单中)
  • \n
  • 恢复QQ音乐源128k音质试听
  • \n
  • 新增不强制win7开启透明效果即可使用,但要配置运行参数-nt,例如:.\\lx-music-desktop.exe -nt,添加方法可自行百度“给快捷方式加参数”
  • \n
  • 新增“新年快乐”主题,可自行切换体验
  • \n
\n

优化

\n
    \n
  • 减淡各个主题的歌曲列表分隔线颜色
  • \n
  • 在线音乐列表音质标签优化,当歌曲有无损音质时隐藏高品质标签
  • \n
  • 更新改进的歌词播放插件,现在歌词的播放显示将更准确
  • \n
\n

修复

\n
    \n
  • 修复咪咕源无法搜索的问题
  • \n
  • 修复更新弹窗底部文字颜色没有适配当前主题颜色的问题
  • \n
  • 修复导入设置窗口大小、代理设置不立即生效的问题
  • \n
  • 修复在线音乐列表获取失败时无限循环请求的问题
  • \n
\n

其他

\n
    \n
  • 将软件设置与播放列表分离存储成两个文件
  • \n
  • 更新 Electron 到 7.1.9
  • \n
\n"},{"version":"0.13.1","desc":"

修复

\n
    \n
  • 修复全局更新弹窗无法遮盖搜索框的问题
  • \n
\n

其他

\n
    \n
  • 由于electron 7.1.3 - 7.1.5 的自动更新功能存在Bug,现降级到7.1.2
  • \n
\n"},{"version":"0.13.0","desc":"

新增

\n
    \n
  • 新增搜索框搜索建议键盘上下方向键选择功能
  • \n
  • 聚合搜索新增音源显示
  • \n
  • 新增“离开搜索界面时清空搜索列表”设置选项,默认关闭,可到设置-强迫症设置开启
  • \n
\n

优化

\n
    \n
  • 优化“信口雌黄”皮肤配色
  • \n
\n

修复

\n
    \n
  • 修复存在弹出层时,搜索建议列表被弹出层覆盖的问题
  • \n
  • 修复搜索、排行榜、歌单列表多选框从不定状态到选中的Bug
  • \n
\n

移除

\n
    \n
  • 因Q音接口失效,移除Q音源的试听与下载
  • \n
\n

其他

\n
    \n
  • 更新electron到7.1.5
  • \n
  • 更新vue到2.6.11
  • \n
\n"},{"version":"0.12.1","desc":"

优化

\n
    \n
  • 优化定位歌曲时的列表滚动机制
  • \n
  • 优化链接点击效果
  • \n
\n

修复

\n
    \n
  • 修复使用酷我源下载歌曲时,当歌曲无封面时下载报错的问题
  • \n
  • 修复酷我源排行榜、歌单详情列表里的歌曲音质匹配问题(原来无论歌曲有无高品、无损都会显示有)
  • \n
  • 禁止外部链接在软件内打开,将所有外部链接从默认浏览器打开
  • \n
\n

其他

\n
    \n
  • 更新electron到7.1.2
  • \n
\n"},{"version":"0.12.0","desc":"

由于新下载库仍然没有完成,但下载功能已经可用,so 移除之前使用的第三方下载库,暂时把新下载库的下载模块直接加入本程序,若出现下载问题欢迎反馈!

\n

新增

\n
    \n
  • 新增下载功能对代理设置的支持,现在若在软件设置了代理服务器,下载功能也将会走代理网络了
  • \n
\n

优化

\n
    \n
  • 新下载模块将对恢复下载的任务进行字节校验,用于解决下载进度超过100%后仍然下载的问题
  • \n
  • 注意:目前仍然无法暂停处于链接获取状态中的任务
  • \n
\n

修复

\n
    \n
  • 修复Linux deb版本.desktop桌面文件缺少图标的问题,新增中文名称显示、软件分类,感谢@lowy的反馈!
  • \n
  • 修复下载列表歌曲状态分类列表操作Bug
  • \n
  • 修复歌曲封面下载失败时仍然执行嵌入封面操作导致报错的问题
  • \n
  • 跳过重复添加相同歌曲名与扩展名的歌曲,例如你之前下载了A歌曲的128k音质,现在想要下载它的320k音质,但由于两者都是MP3格式,会因为重名导致之前的128k音质被覆盖但列表中仍然显示两种音质的问题(但实际上都是指向后面的320k音质)
  • \n
\n"},{"version":"0.11.0","desc":"

新增

\n
    \n
  • 新增歌曲缓冲定时器,尝试用于解决网络正常但是歌曲缓冲过久的问题
  • \n
  • 新增下载管理的任务状态分类
  • \n
  • 添加杀毒软件提示有病毒或恶意行为的说明,可到常见问题拉到最后查看(常见问题可在开源地址找到)
  • \n
\n

优化

\n
    \n
  • 优化更新弹窗机制及其内容描述,对于可以自动更新的版本,现在可以看到软件的下载进度了
  • \n
\n"},{"version":"0.10.0","desc":"

优化

\n
    \n
  • 大幅减少程序播放时对CPU与GPU的使用,经测试CPU使用减少60%以上,GPU使用减少90%以上,这应该能解决MAC系统上的温度上涨的问题
  • \n
\n

修复

\n
    \n
  • 修复酷我源搜索提示排行榜无法获取的问题
  • \n
  • 修复咪咕源无法播放的问题
  • \n
\n"},{"version":"0.9.1","desc":"

修复

\n
    \n
  • 修复没有配置文件时程序启动出错的问题
  • \n
\n"},{"version":"0.9.0","desc":"

新增

\n
    \n
  • 新增窗口大小设置,若觉得软件窗口小可以到设置页调大点
  • \n
  • 新增定位当前播放歌曲,点击播放栏左侧的歌曲图片可在播放列表定位当前播放的歌曲(该功能对播放下载列表的歌曲无效)
  • \n
\n

修复

\n
    \n
  • 修复搜索提示失效的问题
  • \n
  • 修复从歌单或列表点击搜索按钮搜索目标歌曲时,搜索框未聚焦仍然弹出候选搜索列表的问题
  • \n
\n"},{"version":"0.8.2","desc":"

修复

\n
    \n
  • 兼容旧版酷我源搜索列表过滤128k音质的bug(注:0.8.1版本仅修复了酷我源的歌曲过滤问题,该修复仅对以后添加的歌曲有效,如果是之前添加的歌曲仍会出现这个问题,现修复对之前旧列表数据的兼容处理)
  • \n
\n"},{"version":"0.8.1","desc":"

修复

\n
    \n
  • 修复酷我源搜索歌曲结果未添加128k音质导致播放128k音质时显示“该歌曲没有可播放的音频”的问题
  • \n
\n"},{"version":"0.8.0","desc":"

新增

\n
    \n
  • 新增网易云源歌曲搜索
  • \n
  • 新增网易云源歌单
  • \n
  • 新增各平台通过输入歌单链接或歌单ID打开歌单详情列表,目前只适配了网页版歌单链接,其他方式的歌单链接可能无法解析,但你可想办法获取歌单ID后输入打开。注:各平台歌单ID均为纯数字,若遇到链接里存在歌单ID但无法解析的歌单链接,可以到GitHub提交issue或发送邮件或加群830125506反馈!
  • \n
  • 新增音量调整滑动功能,现在支持鼠标左右拖动调整音量了
  • \n
\n

优化

\n
    \n
  • 优化搜索框搜索体验
  • \n
  • 优化音量条交互视觉效果
  • \n
  • 缓存歌单详情列表数据
  • \n
\n

修复

\n
    \n
  • 修复QQ源歌单无法翻页Bug
  • \n
  • 修复默认列表没有创建时无法显示收藏列表的Bug
  • \n
  • 修复网易云128k直接试听
  • \n
  • 修复歌曲音质不存在时仍然播放或下载的Bug
  • \n
  • 修复调整音量时,调整的位置与鼠标点击的位置不一致的问题
  • \n
\n"},{"version":"0.7.0","desc":"

新增

\n
    \n
  • 新增“我的收藏”本地播放列表
  • \n
  • 新增缓存清理功能,可到设置-其他查看与清理软件缓存
  • \n
  • 新增QQ音乐源搜索
  • \n
  • 新增咪咕源搜索
  • \n
  • 新增咪咕源歌单
  • \n
  • 新增咪咕源排行榜
  • \n
  • 新增我的音乐列表歌曲源显示,默认关闭,可到设置-列表设置开启
  • \n
\n

优化

\n
    \n
  • 优化选择框动画效果
  • \n
  • 尝试优化选我的音乐列表内容很多时多选的卡顿问题
  • \n
\n

修复

\n
    \n
  • 修复列表延迟显示的Bug
  • \n
  • 修复QQ音源128k音质试听
  • \n
\n"},{"version":"0.6.2","desc":"

祝贺祖国成立70周年~!

\n

新增

\n
    \n
  • 新增QQ音乐源歌单
  • \n
\n

修复

\n
    \n
  • 修正火影皮肤名字
  • \n
  • 修复当试听列表为空时,无法切到其他界面的Bug
  • \n
  • 修复百度源搜索结果为空时的接口处理Bug
  • \n
  • 恢复酷狗其他音质播放
  • \n
\n"},{"version":"0.6.1","desc":"

新增

\n
    \n
  • 新增试听列表滚动条位置恢复设置(可自动恢复到上次离开时的列表滚动位置),本功能默认开启,若不需要可到设置-列表设置将其关闭
  • \n
  • 新增 《海贼王》 皮肤,喜欢个性化的可以试试~
  • \n
\n

优化

\n
    \n
  • 新增DNS解析缓存,加快请求速度
  • \n
  • 优化代码逻辑,减少软件对系统资源的占用
  • \n
  • 优化新版本信息检测,尽量减少弹出版本获取失败弹窗弹出的概率
  • \n
  • 优化下拉列表动画效果
  • \n
\n

修复

\n
    \n
  • 修复请求超时的逻辑处理Bug,尝试修复请求无法取消导致的正在播放的歌曲与界面显示的信息不一致的问题
  • \n
  • 修复其他一些小Bug
  • \n
\n

移除

\n
    \n
  • 移除 192k 音质
  • \n
  • 移除酷我音源 ape 音质,无损推荐 flac 格式
  • \n
\n"},{"version":"0.6.0","desc":"

新增

\n
    \n
  • 新增音乐聚合搜索,目前支持酷我、酷狗、百度源搜索
  • \n
  • 新增代理功能
  • \n
\n

优化

\n
    \n
  • 优化从《梦里嫦娥》皮肤切换到其他皮肤时侧栏动画的切换效果
  • \n
\n

修复

\n
    \n
  • 修复试听列表没有歌曲时会显示列表加载中的Bug
  • \n
  • 修复切换歌单列表详情时的UI Bug
  • \n
\n"},{"version":"0.5.5","desc":"

新增

\n
    \n
  • 月是故乡明,祝大家中秋快乐🥮~~新增个性皮肤**《月里嫦娥》**,时间仓促,皮肤还不是很完善,可以试试喜不喜欢~😉
  • \n
  • 新增 MAC 版本退出快捷键支持
  • \n
  • 新增点击播放器中的歌曲标题可以复制标题的功能(遇到好听的歌曲方便分享)
  • \n
\n

修复

\n
    \n
  • 修复 MAC 系统下软件关闭时再次从 dock 打开时报错的Bug
  • \n
  • 修复下载的歌曲文件名中包含命名规则不允许的符号时下载失败的问题(若歌曲名包含这些符号会自动将其移除)
  • \n
  • 修复 MAC 版本不能复制粘贴的问题
  • \n
\n"},{"version":"0.5.4","desc":"

移除

\n
    \n
  • 下载的FLAC文件在修改歌曲信息后,软件无法播放,但使用本地播放器可以播放
  • \n
  • 为了稳妥起见,暂时移除FLAC格式的meta信息修改
  • \n
  • MP3格式无此问题
  • \n
\n"},{"version":"0.5.3","desc":"

优化

\n
    \n
  • 更新所有依赖包到最新
  • \n
\n

修复

\n
    \n
  • 修复试听酷狗源的音乐仍然获取320k音质导致获取失败的Bug
  • \n
\n"},{"version":"0.5.2","desc":"

新增

\n
    \n
  • 新增强迫症设置-离开搜索界面时是否清空搜索框
  • \n
  • 设置-关于板块新增常见问题链接
  • \n
  • 歌单左上角的分类按钮添加一个向下图标,方便识别该按钮为下拉框(该按钮可选择歌单类型,请自行尝试)
  • \n
\n

优化

\n
    \n
  • 略微优化最小化按钮字符
  • \n
  • 优化试听列表的加载体验,当歌曲数过多时列表将延迟加载
  • \n
\n

修复

\n
    \n
  • 修复下载管理的一些Bug
  • \n
\n

移除

\n
    \n
  • 因接口失效,移除网易云音源,酷狗音源仅支持播放128k音质
  • \n
\n"},{"version":"0.5.1","desc":"

新增

\n
    \n
  • 新增右上角最小化/关闭按钮鼠标滑过符号
  • \n
  • 新增下载列表定位文件按钮
  • \n
\n

修复

\n
    \n
  • 修复百度源歌单全部分类无法加载的问题
  • \n
  • 修复更新弹窗无法弹出的问题
  • \n
\n"},{"version":"0.5.0","desc":"

新增

\n
    \n
  • 新增封面嵌入(默认开启,可到设置-下载设置关闭)
  • \n
  • 新增歌词下载(默认关闭,可到设置-下载设置开启)
  • \n
  • 新增单例应用功能(实现软件单开功能,禁止软件多开)
  • \n
\n

优化

\n
    \n
  • 优化歌单列表动画
  • \n
\n

修复

\n
    \n
  • 修复歌单无法翻页的问题
  • \n
  • 修复在某些情况下,添加下载歌曲导致下载列表崩溃的问题
  • \n
  • 修复版本更新弹窗Bug
  • \n
  • 修复酷狗歌单推荐歌单出现在其他分类中的Bug
  • \n
\n"},{"version":"0.4.0","desc":"

新增

\n
    \n
  • 新增歌单功能,目前支持酷我、酷狗、百度源歌单
  • \n
  • 在设置界面-关于洛雪音乐说明部分新增最新版网盘下载地址打赏地址
  • \n
  • 新增酷狗 电音热歌榜、DJ热歌榜
  • \n
  • 新增版本更新超时功能,对于部分无法访问GitHub的用户做更新超时提醒
  • \n
\n

移除

\n
    \n
  • 注意:0.4.0以前的版本即将失效,请更新到0.4.0版本
  • \n
\n"},{"version":"0.3.5","desc":"

新增

\n
    \n
  • 新增测试接口,该接口同样速度较慢,但软件的大部分功能可用,请自行切换到该接口,找接口辛苦,且用且珍惜!
  • \n
\n

优化

\n
    \n
  • 取消需要刷新URL时windows任务栏进度显示错误状态(现显示为暂停状态)
  • \n
\n

修复

\n
    \n
  • 修复使用临时接口时在试听列表双击灰色歌曲仍然会进行播放的Bug
  • \n
  • 修复歌词加载Bug
  • \n
\n"},{"version":"0.3.4","desc":"

优化

\n
    \n
  • 减少接口不稳定带来的影响,适当增加请求等待时间
  • \n
\n

修复

\n
    \n
  • 修复播放过程中URL过期不会刷新URL的问题
  • \n
\n"},{"version":"0.3.3","desc":"

修复

\n
    \n
  • messoer的接口已经关闭,暂时切换到临时接口使用,部分功能受限。。。
  • \n
  • 修复设置界面更新出错时仍然显示更新下载中的问题
  • \n
  • 修复手动定位播放进度条时存在偏差的问题
  • \n
  • 屏蔽播放器中没有歌曲时对进度条的点击
  • \n
\n"},{"version":"0.3.2","desc":"

新增

\n
    \n
  • 新增酷狗排行榜其他音质下载
  • \n
\n"},{"version":"0.3.1","desc":"

修复

\n
    \n
  • 修复音量条主题适配
  • \n
\n"},{"version":"0.3.0","desc":"

新增

\n
    \n
  • 新增MACLinux版本(需要的可自行下载)
  • \n
  • 新增音量调整
  • \n
  • 新增任务栏播放进度条控制选项(现在可在设置界面关闭在任务栏显示的播放进度)
  • \n
  • 新增更新出错时的弹窗提示
  • \n
  • 从该版本起,非安装版也会有更新弹窗提醒了,但仍然需要手动下载新版本更新,版本信息可到设置页面查看
  • \n
\n

修复

\n
    \n
  • 强制把临时接口设置回 messoer 接口
  • \n
\n"},{"version":"0.2.3","desc":"

新增

\n
    \n
  • 新增任务栏程序标题改变功能(播放歌曲时任务栏标题将显示当前播放的歌曲)
  • \n
\n

修复

\n
    \n
  • 使用临时接口时,试听列表中的下载按钮仍然能点击的Bug
  • \n
  • 修复某些情况下歌曲链接未能缓存的问题
  • \n
\n

移除

\n
    \n
  • 移除临时接口(因服务器被攻击,本接口已关闭)
  • \n
  • 移除列表栏设置的隐藏专辑栏选项(感觉这个设置并没有什么luan用,并且还会打破布局)
  • \n
\n"},{"version":"0.2.2","desc":"

修复

\n
    \n
  • 修复下载过程中出错重试5次都失败后不会自动开始下一个任务的Bug
  • \n
  • 修复播放到一半URL过期时不会刷新URL直接播放下一首的问题
  • \n
\n"},{"version":"0.2.1","desc":"

优化

\n
    \n
  • 新增歌曲URL存储,当URL无效时才重新获取,以减少接口不稳定的影响
  • \n
\n

修复

\n
    \n
  • 修复歌曲加载无法加载时自动切换混乱的Bug
  • \n
  • 修复移除列表最后一首歌曲时播放器不停止播放的问题
  • \n
\n"},{"version":"0.2.0","desc":"

新增

\n
    \n
  • 新增百度音乐排行榜及其音乐直接试听与下载
  • \n
  • 新增网易云排行榜音乐直接试听与下载(目前仅支持128k音质)
  • \n
  • 新增酷狗排行榜音乐直接试听与下载(目前仅支持128k音质)
  • \n
\n

修复

\n
    \n
  • 修复更新弹窗历史版本描述多余的换行问题
  • \n
  • 修复歌曲无法播放的情况下歌词仍会播放的问题
  • \n
\n"},{"version":"0.1.6","desc":"

修复

\n
    \n
  • 修复列表多选音源限制Bug
  • \n
\n"},{"version":"0.1.5","desc":"

新增

\n
    \n
  • 新增搜索列表批量试听与下载功能
  • \n
  • 新增排行榜列表批量试听与下载功能
  • \n
  • 新增试听列表批量移除与下载功能
  • \n
  • 新增下载列表批量开始、暂停与移除功能
  • \n
\n

优化

\n
    \n
  • 优化歌曲切换机制
  • \n
\n"},{"version":"0.1.4","desc":"

新增

\n
    \n
  • 新增音乐来源切换,可到设置页面-基本设置 look look !
  • \n
  • 为搜索结果列表添加多选功能。
    \nP.S:暂时没想好多选后的操作按钮放哪…
  • \n
\n

优化

\n
    \n
  • 重构与改进checkbox组件,使其支持不定选中状态
  • \n
  • 完善上一个版本的http请求封装并切换部分请求到该方法上
  • \n
  • 优化其他一些细节
  • \n
\n"},{"version":"0.1.3","desc":"

新增

\n
    \n
  • 新增win32应用构建
  • \n
\n

修复

\n
    \n
  • 修复安装包许可协议乱码问题
  • \n
  • messoer 提供的接口已挂,暂时切换到临时接口!
  • \n
\n

移除

\n
    \n
  • 由于messoer接口无法使用,QQ音乐排行榜直接播放/下载功能暂时关闭
  • \n
\n"},{"version":"0.1.2","desc":"

修复

\n
    \n
  • 修复更新弹窗的内容显示问题
  • \n
\n"},{"version":"0.1.1","desc":"

新增

\n
    \n
  • QQ音乐排行榜直接试听与下载(该接口貌似不太稳定,且用且珍惜!)
  • \n
\n

优化

\n
    \n
  • 优化http请求机制
  • \n
  • 更新关于本软件说明
  • \n
\n

修复

\n
    \n
  • 修复当上一个歌曲链接正在获取时切换歌曲请求不会取消的问题
  • \n
  • 修复切换歌曲时仍然播放上一首歌曲的问题
  • \n
\n"},{"version":"0.1.0","desc":"0.1.0版本发布"}]} +{"version":"1.5.0","desc":"

新增

\n
    \n
  • 直接从歌单详情收藏的列表新增同步功能。注意:这将会覆盖本地的目标列表,歌曲将被替换成最新的在线列表
  • \n
\n

优化

\n
    \n
  • 优化软件启动时恢复上一次播放的歌曲进度功能
  • \n
\n

修复

\n
    \n
  • 修复MAC平台上下载歌曲封面嵌入无法显示的问题
  • \n
  • 修复MAC平台首次运行软件最小化、关闭控制按钮默认在右边的问题
  • \n
  • 修复酷狗源的某些歌曲没有专辑字段导致的列表加载失败问题
  • \n
  • 修复某些酷狗源歌单链接无法打开的问题
  • \n
\n","history":[{"version":"1.4.1","desc":"

修复

\n
    \n
  • 修复有歌词翻译与无歌词的音乐间切换会导致歌词翻译残留显示的问题
  • \n
  • 修复歌曲URL过期时,等待刷新URL的自动切换歌曲时间间隔太短的问题
  • \n
  • 修复某些电脑上的某些歌曲没有声音的问题(升级Electron9.3.4导致的,现降级到9.3.3)
  • \n
\n"},{"version":"1.4.0","desc":"

新增

\n
    \n
  • 托盘菜单新增显示、隐藏主界面选项,为Linux、MAC版添加托盘菜单
  • \n
  • 新增播放进度信息保存
  • \n
\n

优化

\n
    \n
  • 移除kg源的歌词文件开头的空白字符串
  • \n
\n

修复

\n
    \n
  • 修复专辑图片无法嵌入的问题
  • \n
  • 修复播放状态栏切换“上一首”歌曲按钮提示错误的问题
  • \n
  • 修复移动单首歌曲时,如果目标列表存在该歌曲,会导致将源列表与目标列表里的目标歌曲移除
  • \n
  • 修复kg源歌曲信息带有单引号等特殊字符被转义的问题
  • \n
\n"},{"version":"1.3.0","desc":"

新增

\n
    \n
  • 播放详情页新增歌曲评论加载显示(某些平台暂不支持显示子评论)
  • \n
\n

优化

\n
    \n
  • 修改播放详情页的歌曲图片的显示效果
  • \n
\n

修复

\n
    \n
  • 修复小芸源音乐搜索结果最多只有20条搜索结果的问题
  • \n
\n"},{"version":"1.2.2","desc":"

修复

\n
    \n
  • 降级 Electron 到 9.x.x 版本修复 Linux 版桌面歌词窗口变白的问题
  • \n
\n"},{"version":"1.2.1","desc":"

优化

\n
    \n
  • Linux版的软件界面默认使用圆角与阴影,顺便修复了桌面歌词窗口变白的问题,已在Ubuntu 18.10测试正常,若显示异常可尝试添加-nt参数启动
  • \n
\n

修复

\n
    \n
  • 修复聚合搜索的分页问题
  • \n
  • 修复代理输入框输入的内容不生效的问题
  • \n
\n"},{"version":"1.2.0","desc":"

提前祝大家中秋&国庆快乐~

\n

新增

\n
    \n
  • 播放控制栏开启/关闭桌面歌词按钮 新增右击按钮时锁定/解锁桌面歌词功能
  • \n
\n

优化

\n
    \n
  • 优化我的列表滚动条位置的保存逻辑
  • \n
  • 更新设置-备份与恢复功能的描述
  • \n
  • 优化软件内鼠标悬停的提示界面
  • \n
\n

修复

\n
    \n
  • 修复桌面歌词窗口不允许拖出桌面之外的位置计算偏移Bug
  • \n
  • 修复网易云KTV嗨榜无法加载的问题
  • \n
  • 修复初始化搜索历史列表功能
  • \n
  • 修复重启软件后试听列表与收藏列表无法恢复上次的滚动位置的问题
  • \n
  • 修复歌曲封面无法嵌入的Bug
  • \n
  • 修复酷狗歌词格式问题
  • \n
  • 修复关闭切换动画时从搜索候选列表点击内容无效的问题
  • \n
\n

其他

\n
    \n
  • 更新 Electron 到 v10.1.3
  • \n
\n"},{"version":"1.1.1","desc":"

修复

\n
    \n
  • 修复某些情况下桌面歌词不会播放的问题
  • \n
\n"},{"version":"1.1.0","desc":"

新增

\n
    \n
  • 在歌单详情界面新增播放当前歌单按钮、收藏歌单按钮,注:播放歌单不会将歌曲添加到试听列表
  • \n
  • 新增不允许将歌词窗口拖出主屏幕之外的设置项,默认开启,在连接多个屏幕时想要拖动到其他屏幕时可关闭此设置
  • \n
  • 新增大部分平台的歌词翻译,感谢 @InoriHimea 提供的krc解码算法
  • \n
  • 新增显示歌词翻译设置,默认开启,仅支持某些平台,注:无论该设置是否开启,嵌入或下载歌词时都不会带上翻译
  • \n
  • 新增显示切换动画设置,默认开启,关闭时将基本禁用软件内的所有切换动画
  • \n
  • 播放状态栏新增桌面歌词的开关、播放模式的切换、歌曲的收藏按钮,Thanks to @andylow for the icon!
  • \n
\n

修复

\n
    \n
  • 修复使用全局快捷键还原窗口时,窗口没有获取焦点的问题
  • \n
  • 修复我的列表搜索对最后一个字符的匹配问题
  • \n
  • 修复窗口在较小模式下最小化/关闭按钮不居中的问题
  • \n
\n

优化

\n
    \n
  • 桌面歌词当前播放行改为上下居中
  • \n
  • 为区分静音状态,静音时音量条会变淡,调整音量条时将会取消静音
  • \n
  • 优化随机播放机制,现在通过下一曲切换歌曲时,直到播放完整个列表之前将不会再随机到之前播放过的歌曲,并且通过上一曲可以正确播放上一首歌曲
  • \n
  • 当下载目录没有写入权限时将显示没有写入权限的提示
  • \n
\n

移除

\n
    \n
  • 移除默认的全局声音媒体快捷键接管
  • \n
  • 移除对百度音乐的支持,因百度音乐原有的大部分API失效,而且该平台相对其他平台来说音乐太少了,可有可无,以后再看情况恢复
  • \n
\n

其他

\n
    \n
  • 更新electron到 10.1.2
  • \n
\n"},{"version":"1.0.1","desc":"

优化

\n
    \n
  • 对我的列表歌曲搜索结果进行相似度排序
  • \n
\n

修复

\n
    \n
  • 修复在 Windows 系统下缩放比非100%时,拖动桌面歌词会自动加大桌面歌词窗口的问题
  • \n
\n"},{"version":"1.0.0","desc":"

新增

\n
    \n
  • 新增rpmpacman包的构建(未测试可用性)
  • \n
  • 新增因系统音频设备列表改变导致的当前音频输出设备改变时是否暂停播放的设置,默认关闭
  • \n
  • 新增歌曲列表右击菜单
  • \n
  • 新增自定义列表,创建列表的按钮在表头#左侧,鼠标移上去才会显示;编辑列表名字时,按ESC键可快速取消编辑,按回车键或使输入框失去焦点即可保存列表名字,右击列表可编辑已创建的列表,“试听列表”与“我的收藏”两个列表固定不可编辑
  • \n
  • 改变排行榜布局,新增更多排行榜
  • \n
  • 新增我的列表右键菜单复制歌曲名选项
  • \n
  • 新增桌面歌词,默认关闭,可到设置或者托盘菜单开启(建议使用全局快捷键控制);调整字体大小、透明度时,鼠标左击按钮正常调整,右击微调;Windows 7未开启Aero效果时桌面歌词会有问题,详情看常见问题解决;Linux版桌面歌词有问题,以后再尝试优化;
  • \n
  • 新增“清热板蓝”皮肤
  • \n
  • 新增软件最小化、关闭按钮位置设置,MAC版默认为左边,非MAC为右边,不想用默认的可到设置修改
  • \n
  • 新增快捷键设置,软件内快捷键默认开启,全局快捷键默认关闭(注:若想开启蓝牙耳机切歌需开启全局快捷键,当快捷键被中划线划掉时,表示当前快捷键被其他程序占用导致注册失败)
  • \n
  • 新增首次运行时自动根据当前系统使用的语言设置软件显示的语言
  • \n
  • 新增歌词区域的触摸板、鼠标滚轮等对歌词滚动的支持
  • \n
  • 为了方便支持正版资源,歌曲列表右击菜单新增跳转到当前歌曲源官方详情页菜单(注意:在本版本之前添加的虾米源歌曲无法跳转详情页,需要移除后重新搜索添加)
  • \n
  • 新增我的列表内歌曲搜索,在我的列表按ctrl+f将显示搜索框;鼠标滑过或键盘上下方向键选择搜索结果;鼠标点击或按回车键定位选中的歌曲;按ctrl键的情况下鼠标点击或按回车键确认定位歌曲时,将会在定位歌曲结束后播放该歌曲(搜索框激活的情况下按esc可快速清空搜索框/关闭搜索框)
  • \n
  • 新增托盘图标样式设置,可到设置-其他切换
  • \n
  • 新增开关下载功能控制,默认关闭,可到设置-下载设置开启
  • \n
  • 新增将歌词嵌入音频文件中,默认关闭,可到设置-下载设置开启
  • \n
  • 新增当列表文件损坏时对损坏文件的备份,若出现该情况可打开%HOMEPATH%\\AppData\\Roaming\\lx-music-desktop找到playList.json.bak尝试手动修复列表文件,列表文件以JSON格式存储
  • \n
  • 新增在歌单详情列表按退格(Backspace)键可快速返回歌单列表
  • \n
\n

优化

\n
    \n
  • 改进歌曲切换时的歌词滚动效果
  • \n
  • 优化批量添加、删除播放列表的歌曲操作逻辑,大幅提升批量添加、删除列表歌曲的流畅度
  • \n
  • 改进歌单列表展示
  • \n
  • 改进聚合搜索的搜索结果排序,修复当某些源搜索失败时导致其他源无法显示结果的问题,现在聚合搜索已达到最初的理想效果,为了使排序更精确,建议同时输入 歌曲名 歌手名 搜索(歌曲名在前歌手名在后),欢迎体验~!
  • \n
  • 压缩备份数据文件大小
  • \n
\n

修复

\n
    \n
  • 修复按住Ctrl等键触发多选机制时不松开按键的情况下切换到其他窗口后再松开按键,这时切回软件不按按键都处在多选模式的问题
  • \n
  • 修复Linux版开启托盘无法退出的问题
  • \n
  • 修复某些情况下可能导致的音源输出问题
  • \n
  • 修复某些情况下无法开始下载任务的问题
  • \n
  • 修复 tab 组件边框溢出问题
  • \n
  • 修复错误更新试听列表外的歌曲时间的问题
  • \n
  • 修复网易音乐源歌单、排行榜歌曲列表加载显示的数量与实际不对的问题,同时支持加载大于1000首歌的歌单(歌曲大于1000首会分页),注意:目前软件一下子显示太多歌曲时会卡顿,不建议在同一列表内添加太多歌曲
  • \n
  • 修复歌曲图片链接没有扩展名的情况下无法嵌入图片的问题
  • \n
  • 修复无法检测最新版本时弹窗提示的显示
  • \n
  • 修复某些情况下从托盘还原窗口后无法操作的问题
  • \n
  • 修复Linux下无法ctrl+a全选的问题
  • \n
  • 修复主题背景图片覆盖不全的问题
  • \n
  • 修复聚合搜索音源标签的皮肤配色问题
  • \n
\n

更变

\n
    \n
  • 修改设置-列表-是否显示歌曲源的默认设置为选中(该变更不影响之前的设置)
  • \n
  • 移除浮动按钮,现在在多选完成后可鼠标右击随意一项在弹出的右键菜单中进行原来悬浮按钮的操作
  • \n
  • 为了避免出现误会,现在下载弹窗中不可用的音质将直接隐藏
  • \n
  • 更改初始设置的搜索设置为聚合搜索(该变更不影响之前的设置)
  • \n
\n

其他

\n
    \n
  • 更新 Electron 到 9.1.1
  • \n
\n"},{"version":"0.18.2","desc":"

修复

\n
    \n
  • 修复开启托盘时,可能导致无法自动更新的问题
  • \n
\n"},{"version":"0.18.1","desc":"

优化

\n
    \n
  • win下的托盘图标使用更大的图片
  • \n
  • 加长软件协议的强制停留时间
  • \n
\n

修复

\n
    \n
  • 修复导入设置某些设置未立即生效的问题
  • \n
\n"},{"version":"0.18.0","desc":"

新增

\n
    \n
  • 新增FLAC格式音乐标签信息写入与封面嵌入(因128k以外的音质已失效,目前该功能用不上了)
  • \n
  • 添加软件启动时是否自动聚焦搜索框的设置
  • \n
  • 新增托盘设置,默认关闭,可到设置开启,感谢 @LasyIsLazy 提交的PR
  • \n
  • 新增打开酷狗源用户歌单
  • \n
  • 新增使用协议
  • \n
  • 新增虾米音源
  • \n
  • 新增新皮肤“粉妆玉琢”、“青出于黑”,可去体验下~
  • \n
  • 新增“超大”、“巨大”窗口尺寸
  • \n
  • 新增播放详情页(退出详情页可点击右上角退出按钮或者在播放详情页任意地方鼠标快速右击两次
  • \n
\n

优化

\n
    \n
  • 略微加深音量条底色
  • \n
  • 优化其他界面细节
  • \n
  • 优化英语翻译,感谢 @CPCer
  • \n
  • 优化程序的流畅度
  • \n
\n

更变

\n
    \n
  • 下载列表的歌曲下载、播放将随设置中的保存路径改变而改变,不再固定指向其初始位置
  • \n
  • 移除列表多选框,现在多选需要键盘配合,想要多选前需按下ShiftCtrl键然后再鼠标点击想要选中的内容即可触发多选机制,其中Shift键用于连续选择,Ctrl键用于不连续选择,Ctrl+a用于快速全选。例子一:想要选中1-5项,则先按下Shift键后,鼠标点击第一项,再点击第五项即可完成选择;例子二:想要选中1项与第3项,则先按下Ctrl键后,鼠标点击第一项,再点击第三项即可完成选择;例子三:想要选中当前列表的全部内容,键盘先按下Ctrl键不放,然后按a键,即可完成选择。用ShiftCtrl选择时,鼠标点击未选中的内容会将其选中,点击已选择的内容会将其取消选择,若想全部取消选择,在不按ShiftAlt键的情况下,随意点击列表里的一项内容即可全部取消选择。(P.S:Ctrl键对应Mac OS上的Command键)
  • \n
  • 现在进度条的封面图左击改为打开播放详情页,在列表定位歌曲改为右击
  • \n
\n

修复

\n
    \n
  • 修复网易源某些歌曲提示没有可播放的音质的问题
  • \n
  • 修复下载管理刷新URL失败时不标记任务下载失败的问题
  • \n
  • 修复列表导出的文字描述,感谢 @CPCer
  • \n
  • 修复歌曲切换方式无法取消勾选的问题
  • \n
  • 修复打开歌单详情的情况下切到其他界面再切回来报错的问题
  • \n
  • 修正播放列表浮动按钮错误的文字提示
  • \n
\n

移除

\n
    \n
  • 因128k以外的音质失效,So 禁止所有128k外的音质下载
  • \n
\n

其他

\n

更新 Electron 到 8.2.5

\n"},{"version":"0.17.0","desc":"

新增

\n
    \n
  • 新增多语言设置,目前软件内置了简体中文、繁体中文、英语三种语言,欢迎提交PR翻译更多语言!
  • \n
  • 新增无法打开外部歌单FAQ
  • \n
  • 新增启动参数search,使用例子:.\\lx-music-desktop.exe -search="突然的自我 - 伍佰"
  • \n
  • 新增音频输出设置
  • \n
  • 新增软件内的包括字体在内的界面内容大小调整,现在当窗口大小切换到“较小/大/较大”时,软件内的元素将会适当减小或加大,窗口大小的“小”与“中”内的元素将保持之前的大小暂不做改变
  • \n
  • 新增音源别名,默认将显示别名,想要显示回原名可到设置切换(免责声明:别名仅是本软件用于描述各音源的标签,其名字归版权方所有)
  • \n
  • 新增发现新版本更新失败弹窗的忽略提醒按钮,忽略提醒后,以后同一个版本再失败时将不会弹窗提醒,但仍可到设置-版本更新手动点开更新弹窗查看或恢复提醒
  • \n
  • 新增热搜词,默认关闭,可到设置开启
  • \n
  • 新增历史搜索记录,默认关闭,可到设置开启(右击单个历史记录标签可移除所点击的记录)
  • \n
\n

优化

\n
    \n
  • 优化月里嫦娥皮肤侧栏鼠标悬浮颜色
  • \n
  • 优化播放进度条的动画效果
  • \n
  • 现在添加下载任务时,后面添加的任务会在列表顶部插入
  • \n
  • 优化歌单打开机制,现在歌单加载失败时会提示加载失败了,并且支持直接打开企鹅、酷我手机分享出来的歌单了
  • \n
  • 优化右上角最小化/关闭按钮布局
  • \n
\n

修复

\n
    \n
  • 修复歌单详情处于加载状态时无法返回的问题
  • \n
  • 修复鼠标右击复制列表内容时会复制音质标签的问题
  • \n
  • 修复0.6.2及以前的版本导出的“所有数据”内的歌曲列表无法导入的问题
  • \n
  • 修复下载列表在某些情况下无法取消全选的问题
  • \n
\n

其他

\n
    \n
  • 更新Electron到 8.1.1
  • \n
\n"},{"version":"0.16.0","desc":"

新增

\n
    \n
  • 允许选中列表内歌曲名、歌手名、专辑名内的文字,选中后可使用键盘快捷键进行复制
  • \n
  • 新增在列表可选内容区域鼠标右击时自动复制列表已选文字的功能
  • \n
  • 新增在搜索框鼠标右击时自动粘贴剪贴板的文本到搜索框中
  • \n
  • 任务下载失败时将显示搜索按钮,方便在其他源搜索该歌曲
  • \n
\n

优化

\n
    \n
  • 优化木叶之村主题翻页器背景颜色
  • \n
  • 优化各个主题音质标签颜色
  • \n
  • 优化其他一些界面细节及用户交互效果
  • \n
\n

修复

\n
    \n
  • 修复启用透明窗口鼠标不穿透的bug
  • \n
  • 修复大窗口时设置的音乐来源选项不换行的问题
  • \n
  • 修复某些情况下暂停任务会自动开始任务的问题
  • \n
  • 修复移除暂停、错误的任务时不删除未下载完成的文件的问题
  • \n
  • 修复酷狗源歌单热门标签歌单列表无法加载问题
  • \n
  • 修复QQ源歌单热门标签歌单列表无法加载问题
  • \n
\n

其他

\n
    \n
  • 更新electron到 8.0.1
  • \n
\n"},{"version":"0.15.0","desc":"

洛雪提前祝大家新年快乐、身体健康、阖家幸福!

\n

修复

\n
    \n
  • 修复歌曲下载列表无法加载的问题
  • \n
  • 修复歌曲下载任务数大于最大下载任务数的问题
  • \n
  • 修复某些情况下歌曲下载错误的问题
  • \n
  • 修复下载列表数据没有被迁移直接被丢弃的问题
  • \n
\n"},{"version":"0.14.1","desc":"

洛雪提前祝大家新年快乐、身体健康、阖家幸福!

\n

修复

\n
    \n
  • 修复由于旧版配置文件迁移出错导致的软件界面无法显示的问题
  • \n
\n"},{"version":"0.14.0","desc":"

洛雪提前祝大家新年快乐、身体健康、阖家幸福!

\n

新增

\n
    \n
  • 新增各大平台歌单热门标签显示(显示在歌单界面的第一个下拉标签菜单中)
  • \n
  • 恢复QQ音乐源128k音质试听
  • \n
  • 新增不强制win7开启透明效果即可使用,但要配置运行参数-nt,例如:.\\lx-music-desktop.exe -nt,添加方法可自行百度“给快捷方式加参数”
  • \n
  • 新增“新年快乐”主题,可自行切换体验
  • \n
\n

优化

\n
    \n
  • 减淡各个主题的歌曲列表分隔线颜色
  • \n
  • 在线音乐列表音质标签优化,当歌曲有无损音质时隐藏高品质标签
  • \n
  • 更新改进的歌词播放插件,现在歌词的播放显示将更准确
  • \n
\n

修复

\n
    \n
  • 修复咪咕源无法搜索的问题
  • \n
  • 修复更新弹窗底部文字颜色没有适配当前主题颜色的问题
  • \n
  • 修复导入设置窗口大小、代理设置不立即生效的问题
  • \n
  • 修复在线音乐列表获取失败时无限循环请求的问题
  • \n
\n

其他

\n
    \n
  • 将软件设置与播放列表分离存储成两个文件
  • \n
  • 更新 Electron 到 7.1.9
  • \n
\n"},{"version":"0.13.1","desc":"

修复

\n
    \n
  • 修复全局更新弹窗无法遮盖搜索框的问题
  • \n
\n

其他

\n
    \n
  • 由于electron 7.1.3 - 7.1.5 的自动更新功能存在Bug,现降级到7.1.2
  • \n
\n"},{"version":"0.13.0","desc":"

新增

\n
    \n
  • 新增搜索框搜索建议键盘上下方向键选择功能
  • \n
  • 聚合搜索新增音源显示
  • \n
  • 新增“离开搜索界面时清空搜索列表”设置选项,默认关闭,可到设置-强迫症设置开启
  • \n
\n

优化

\n
    \n
  • 优化“信口雌黄”皮肤配色
  • \n
\n

修复

\n
    \n
  • 修复存在弹出层时,搜索建议列表被弹出层覆盖的问题
  • \n
  • 修复搜索、排行榜、歌单列表多选框从不定状态到选中的Bug
  • \n
\n

移除

\n
    \n
  • 因Q音接口失效,移除Q音源的试听与下载
  • \n
\n

其他

\n
    \n
  • 更新electron到7.1.5
  • \n
  • 更新vue到2.6.11
  • \n
\n"},{"version":"0.12.1","desc":"

优化

\n
    \n
  • 优化定位歌曲时的列表滚动机制
  • \n
  • 优化链接点击效果
  • \n
\n

修复

\n
    \n
  • 修复使用酷我源下载歌曲时,当歌曲无封面时下载报错的问题
  • \n
  • 修复酷我源排行榜、歌单详情列表里的歌曲音质匹配问题(原来无论歌曲有无高品、无损都会显示有)
  • \n
  • 禁止外部链接在软件内打开,将所有外部链接从默认浏览器打开
  • \n
\n

其他

\n
    \n
  • 更新electron到7.1.2
  • \n
\n"},{"version":"0.12.0","desc":"

由于新下载库仍然没有完成,但下载功能已经可用,so 移除之前使用的第三方下载库,暂时把新下载库的下载模块直接加入本程序,若出现下载问题欢迎反馈!

\n

新增

\n
    \n
  • 新增下载功能对代理设置的支持,现在若在软件设置了代理服务器,下载功能也将会走代理网络了
  • \n
\n

优化

\n
    \n
  • 新下载模块将对恢复下载的任务进行字节校验,用于解决下载进度超过100%后仍然下载的问题
  • \n
  • 注意:目前仍然无法暂停处于链接获取状态中的任务
  • \n
\n

修复

\n
    \n
  • 修复Linux deb版本.desktop桌面文件缺少图标的问题,新增中文名称显示、软件分类,感谢@lowy的反馈!
  • \n
  • 修复下载列表歌曲状态分类列表操作Bug
  • \n
  • 修复歌曲封面下载失败时仍然执行嵌入封面操作导致报错的问题
  • \n
  • 跳过重复添加相同歌曲名与扩展名的歌曲,例如你之前下载了A歌曲的128k音质,现在想要下载它的320k音质,但由于两者都是MP3格式,会因为重名导致之前的128k音质被覆盖但列表中仍然显示两种音质的问题(但实际上都是指向后面的320k音质)
  • \n
\n"},{"version":"0.11.0","desc":"

新增

\n
    \n
  • 新增歌曲缓冲定时器,尝试用于解决网络正常但是歌曲缓冲过久的问题
  • \n
  • 新增下载管理的任务状态分类
  • \n
  • 添加杀毒软件提示有病毒或恶意行为的说明,可到常见问题拉到最后查看(常见问题可在开源地址找到)
  • \n
\n

优化

\n
    \n
  • 优化更新弹窗机制及其内容描述,对于可以自动更新的版本,现在可以看到软件的下载进度了
  • \n
\n"},{"version":"0.10.0","desc":"

优化

\n
    \n
  • 大幅减少程序播放时对CPU与GPU的使用,经测试CPU使用减少60%以上,GPU使用减少90%以上,这应该能解决MAC系统上的温度上涨的问题
  • \n
\n

修复

\n
    \n
  • 修复酷我源搜索提示排行榜无法获取的问题
  • \n
  • 修复咪咕源无法播放的问题
  • \n
\n"},{"version":"0.9.1","desc":"

修复

\n
    \n
  • 修复没有配置文件时程序启动出错的问题
  • \n
\n"},{"version":"0.9.0","desc":"

新增

\n
    \n
  • 新增窗口大小设置,若觉得软件窗口小可以到设置页调大点
  • \n
  • 新增定位当前播放歌曲,点击播放栏左侧的歌曲图片可在播放列表定位当前播放的歌曲(该功能对播放下载列表的歌曲无效)
  • \n
\n

修复

\n
    \n
  • 修复搜索提示失效的问题
  • \n
  • 修复从歌单或列表点击搜索按钮搜索目标歌曲时,搜索框未聚焦仍然弹出候选搜索列表的问题
  • \n
\n"},{"version":"0.8.2","desc":"

修复

\n
    \n
  • 兼容旧版酷我源搜索列表过滤128k音质的bug(注:0.8.1版本仅修复了酷我源的歌曲过滤问题,该修复仅对以后添加的歌曲有效,如果是之前添加的歌曲仍会出现这个问题,现修复对之前旧列表数据的兼容处理)
  • \n
\n"},{"version":"0.8.1","desc":"

修复

\n
    \n
  • 修复酷我源搜索歌曲结果未添加128k音质导致播放128k音质时显示“该歌曲没有可播放的音频”的问题
  • \n
\n"},{"version":"0.8.0","desc":"

新增

\n
    \n
  • 新增网易云源歌曲搜索
  • \n
  • 新增网易云源歌单
  • \n
  • 新增各平台通过输入歌单链接或歌单ID打开歌单详情列表,目前只适配了网页版歌单链接,其他方式的歌单链接可能无法解析,但你可想办法获取歌单ID后输入打开。注:各平台歌单ID均为纯数字,若遇到链接里存在歌单ID但无法解析的歌单链接,可以到GitHub提交issue或发送邮件或加群830125506反馈!
  • \n
  • 新增音量调整滑动功能,现在支持鼠标左右拖动调整音量了
  • \n
\n

优化

\n
    \n
  • 优化搜索框搜索体验
  • \n
  • 优化音量条交互视觉效果
  • \n
  • 缓存歌单详情列表数据
  • \n
\n

修复

\n
    \n
  • 修复QQ源歌单无法翻页Bug
  • \n
  • 修复默认列表没有创建时无法显示收藏列表的Bug
  • \n
  • 修复网易云128k直接试听
  • \n
  • 修复歌曲音质不存在时仍然播放或下载的Bug
  • \n
  • 修复调整音量时,调整的位置与鼠标点击的位置不一致的问题
  • \n
\n"},{"version":"0.7.0","desc":"

新增

\n
    \n
  • 新增“我的收藏”本地播放列表
  • \n
  • 新增缓存清理功能,可到设置-其他查看与清理软件缓存
  • \n
  • 新增QQ音乐源搜索
  • \n
  • 新增咪咕源搜索
  • \n
  • 新增咪咕源歌单
  • \n
  • 新增咪咕源排行榜
  • \n
  • 新增我的音乐列表歌曲源显示,默认关闭,可到设置-列表设置开启
  • \n
\n

优化

\n
    \n
  • 优化选择框动画效果
  • \n
  • 尝试优化选我的音乐列表内容很多时多选的卡顿问题
  • \n
\n

修复

\n
    \n
  • 修复列表延迟显示的Bug
  • \n
  • 修复QQ音源128k音质试听
  • \n
\n"},{"version":"0.6.2","desc":"

祝贺祖国成立70周年~!

\n

新增

\n
    \n
  • 新增QQ音乐源歌单
  • \n
\n

修复

\n
    \n
  • 修正火影皮肤名字
  • \n
  • 修复当试听列表为空时,无法切到其他界面的Bug
  • \n
  • 修复百度源搜索结果为空时的接口处理Bug
  • \n
  • 恢复酷狗其他音质播放
  • \n
\n"},{"version":"0.6.1","desc":"

新增

\n
    \n
  • 新增试听列表滚动条位置恢复设置(可自动恢复到上次离开时的列表滚动位置),本功能默认开启,若不需要可到设置-列表设置将其关闭
  • \n
  • 新增 《海贼王》 皮肤,喜欢个性化的可以试试~
  • \n
\n

优化

\n
    \n
  • 新增DNS解析缓存,加快请求速度
  • \n
  • 优化代码逻辑,减少软件对系统资源的占用
  • \n
  • 优化新版本信息检测,尽量减少弹出版本获取失败弹窗弹出的概率
  • \n
  • 优化下拉列表动画效果
  • \n
\n

修复

\n
    \n
  • 修复请求超时的逻辑处理Bug,尝试修复请求无法取消导致的正在播放的歌曲与界面显示的信息不一致的问题
  • \n
  • 修复其他一些小Bug
  • \n
\n

移除

\n
    \n
  • 移除 192k 音质
  • \n
  • 移除酷我音源 ape 音质,无损推荐 flac 格式
  • \n
\n"},{"version":"0.6.0","desc":"

新增

\n
    \n
  • 新增音乐聚合搜索,目前支持酷我、酷狗、百度源搜索
  • \n
  • 新增代理功能
  • \n
\n

优化

\n
    \n
  • 优化从《梦里嫦娥》皮肤切换到其他皮肤时侧栏动画的切换效果
  • \n
\n

修复

\n
    \n
  • 修复试听列表没有歌曲时会显示列表加载中的Bug
  • \n
  • 修复切换歌单列表详情时的UI Bug
  • \n
\n"},{"version":"0.5.5","desc":"

新增

\n
    \n
  • 月是故乡明,祝大家中秋快乐🥮~~新增个性皮肤**《月里嫦娥》**,时间仓促,皮肤还不是很完善,可以试试喜不喜欢~😉
  • \n
  • 新增 MAC 版本退出快捷键支持
  • \n
  • 新增点击播放器中的歌曲标题可以复制标题的功能(遇到好听的歌曲方便分享)
  • \n
\n

修复

\n
    \n
  • 修复 MAC 系统下软件关闭时再次从 dock 打开时报错的Bug
  • \n
  • 修复下载的歌曲文件名中包含命名规则不允许的符号时下载失败的问题(若歌曲名包含这些符号会自动将其移除)
  • \n
  • 修复 MAC 版本不能复制粘贴的问题
  • \n
\n"},{"version":"0.5.4","desc":"

移除

\n
    \n
  • 下载的FLAC文件在修改歌曲信息后,软件无法播放,但使用本地播放器可以播放
  • \n
  • 为了稳妥起见,暂时移除FLAC格式的meta信息修改
  • \n
  • MP3格式无此问题
  • \n
\n"},{"version":"0.5.3","desc":"

优化

\n
    \n
  • 更新所有依赖包到最新
  • \n
\n

修复

\n
    \n
  • 修复试听酷狗源的音乐仍然获取320k音质导致获取失败的Bug
  • \n
\n"},{"version":"0.5.2","desc":"

新增

\n
    \n
  • 新增强迫症设置-离开搜索界面时是否清空搜索框
  • \n
  • 设置-关于板块新增常见问题链接
  • \n
  • 歌单左上角的分类按钮添加一个向下图标,方便识别该按钮为下拉框(该按钮可选择歌单类型,请自行尝试)
  • \n
\n

优化

\n
    \n
  • 略微优化最小化按钮字符
  • \n
  • 优化试听列表的加载体验,当歌曲数过多时列表将延迟加载
  • \n
\n

修复

\n
    \n
  • 修复下载管理的一些Bug
  • \n
\n

移除

\n
    \n
  • 因接口失效,移除网易云音源,酷狗音源仅支持播放128k音质
  • \n
\n"},{"version":"0.5.1","desc":"

新增

\n
    \n
  • 新增右上角最小化/关闭按钮鼠标滑过符号
  • \n
  • 新增下载列表定位文件按钮
  • \n
\n

修复

\n
    \n
  • 修复百度源歌单全部分类无法加载的问题
  • \n
  • 修复更新弹窗无法弹出的问题
  • \n
\n"},{"version":"0.5.0","desc":"

新增

\n
    \n
  • 新增封面嵌入(默认开启,可到设置-下载设置关闭)
  • \n
  • 新增歌词下载(默认关闭,可到设置-下载设置开启)
  • \n
  • 新增单例应用功能(实现软件单开功能,禁止软件多开)
  • \n
\n

优化

\n
    \n
  • 优化歌单列表动画
  • \n
\n

修复

\n
    \n
  • 修复歌单无法翻页的问题
  • \n
  • 修复在某些情况下,添加下载歌曲导致下载列表崩溃的问题
  • \n
  • 修复版本更新弹窗Bug
  • \n
  • 修复酷狗歌单推荐歌单出现在其他分类中的Bug
  • \n
\n"},{"version":"0.4.0","desc":"

新增

\n
    \n
  • 新增歌单功能,目前支持酷我、酷狗、百度源歌单
  • \n
  • 在设置界面-关于洛雪音乐说明部分新增最新版网盘下载地址打赏地址
  • \n
  • 新增酷狗 电音热歌榜、DJ热歌榜
  • \n
  • 新增版本更新超时功能,对于部分无法访问GitHub的用户做更新超时提醒
  • \n
\n

移除

\n
    \n
  • 注意:0.4.0以前的版本即将失效,请更新到0.4.0版本
  • \n
\n"},{"version":"0.3.5","desc":"

新增

\n
    \n
  • 新增测试接口,该接口同样速度较慢,但软件的大部分功能可用,请自行切换到该接口,找接口辛苦,且用且珍惜!
  • \n
\n

优化

\n
    \n
  • 取消需要刷新URL时windows任务栏进度显示错误状态(现显示为暂停状态)
  • \n
\n

修复

\n
    \n
  • 修复使用临时接口时在试听列表双击灰色歌曲仍然会进行播放的Bug
  • \n
  • 修复歌词加载Bug
  • \n
\n"},{"version":"0.3.4","desc":"

优化

\n
    \n
  • 减少接口不稳定带来的影响,适当增加请求等待时间
  • \n
\n

修复

\n
    \n
  • 修复播放过程中URL过期不会刷新URL的问题
  • \n
\n"},{"version":"0.3.3","desc":"

修复

\n
    \n
  • messoer的接口已经关闭,暂时切换到临时接口使用,部分功能受限。。。
  • \n
  • 修复设置界面更新出错时仍然显示更新下载中的问题
  • \n
  • 修复手动定位播放进度条时存在偏差的问题
  • \n
  • 屏蔽播放器中没有歌曲时对进度条的点击
  • \n
\n"},{"version":"0.3.2","desc":"

新增

\n
    \n
  • 新增酷狗排行榜其他音质下载
  • \n
\n"},{"version":"0.3.1","desc":"

修复

\n
    \n
  • 修复音量条主题适配
  • \n
\n"},{"version":"0.3.0","desc":"

新增

\n
    \n
  • 新增MACLinux版本(需要的可自行下载)
  • \n
  • 新增音量调整
  • \n
  • 新增任务栏播放进度条控制选项(现在可在设置界面关闭在任务栏显示的播放进度)
  • \n
  • 新增更新出错时的弹窗提示
  • \n
  • 从该版本起,非安装版也会有更新弹窗提醒了,但仍然需要手动下载新版本更新,版本信息可到设置页面查看
  • \n
\n

修复

\n
    \n
  • 强制把临时接口设置回 messoer 接口
  • \n
\n"},{"version":"0.2.3","desc":"

新增

\n
    \n
  • 新增任务栏程序标题改变功能(播放歌曲时任务栏标题将显示当前播放的歌曲)
  • \n
\n

修复

\n
    \n
  • 使用临时接口时,试听列表中的下载按钮仍然能点击的Bug
  • \n
  • 修复某些情况下歌曲链接未能缓存的问题
  • \n
\n

移除

\n
    \n
  • 移除临时接口(因服务器被攻击,本接口已关闭)
  • \n
  • 移除列表栏设置的隐藏专辑栏选项(感觉这个设置并没有什么luan用,并且还会打破布局)
  • \n
\n"},{"version":"0.2.2","desc":"

修复

\n
    \n
  • 修复下载过程中出错重试5次都失败后不会自动开始下一个任务的Bug
  • \n
  • 修复播放到一半URL过期时不会刷新URL直接播放下一首的问题
  • \n
\n"},{"version":"0.2.1","desc":"

优化

\n
    \n
  • 新增歌曲URL存储,当URL无效时才重新获取,以减少接口不稳定的影响
  • \n
\n

修复

\n
    \n
  • 修复歌曲加载无法加载时自动切换混乱的Bug
  • \n
  • 修复移除列表最后一首歌曲时播放器不停止播放的问题
  • \n
\n"},{"version":"0.2.0","desc":"

新增

\n
    \n
  • 新增百度音乐排行榜及其音乐直接试听与下载
  • \n
  • 新增网易云排行榜音乐直接试听与下载(目前仅支持128k音质)
  • \n
  • 新增酷狗排行榜音乐直接试听与下载(目前仅支持128k音质)
  • \n
\n

修复

\n
    \n
  • 修复更新弹窗历史版本描述多余的换行问题
  • \n
  • 修复歌曲无法播放的情况下歌词仍会播放的问题
  • \n
\n"},{"version":"0.1.6","desc":"

修复

\n
    \n
  • 修复列表多选音源限制Bug
  • \n
\n"},{"version":"0.1.5","desc":"

新增

\n
    \n
  • 新增搜索列表批量试听与下载功能
  • \n
  • 新增排行榜列表批量试听与下载功能
  • \n
  • 新增试听列表批量移除与下载功能
  • \n
  • 新增下载列表批量开始、暂停与移除功能
  • \n
\n

优化

\n
    \n
  • 优化歌曲切换机制
  • \n
\n"},{"version":"0.1.4","desc":"

新增

\n
    \n
  • 新增音乐来源切换,可到设置页面-基本设置 look look !
  • \n
  • 为搜索结果列表添加多选功能。
    \nP.S:暂时没想好多选后的操作按钮放哪…
  • \n
\n

优化

\n
    \n
  • 重构与改进checkbox组件,使其支持不定选中状态
  • \n
  • 完善上一个版本的http请求封装并切换部分请求到该方法上
  • \n
  • 优化其他一些细节
  • \n
\n"},{"version":"0.1.3","desc":"

新增

\n
    \n
  • 新增win32应用构建
  • \n
\n

修复

\n
    \n
  • 修复安装包许可协议乱码问题
  • \n
  • messoer 提供的接口已挂,暂时切换到临时接口!
  • \n
\n

移除

\n
    \n
  • 由于messoer接口无法使用,QQ音乐排行榜直接播放/下载功能暂时关闭
  • \n
\n"},{"version":"0.1.2","desc":"

修复

\n
    \n
  • 修复更新弹窗的内容显示问题
  • \n
\n"},{"version":"0.1.1","desc":"

新增

\n
    \n
  • QQ音乐排行榜直接试听与下载(该接口貌似不太稳定,且用且珍惜!)
  • \n
\n

优化

\n
    \n
  • 优化http请求机制
  • \n
  • 更新关于本软件说明
  • \n
\n

修复

\n
    \n
  • 修复当上一个歌曲链接正在获取时切换歌曲请求不会取消的问题
  • \n
  • 修复切换歌曲时仍然播放上一首歌曲的问题
  • \n
\n"},{"version":"0.1.0","desc":"0.1.0版本发布"}]} From 0a919d707655e4549d4137ba369ffd460b5412e3 Mon Sep 17 00:00:00 2001 From: lyswhut Date: Sun, 13 Dec 2020 12:32:55 +0800 Subject: [PATCH 29/41] =?UTF-8?q?=E4=BF=AE=E5=A4=8DgetAttribute=E7=9A=84?= =?UTF-8?q?=E6=8A=A5=E9=94=99?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/renderer/plugins/Tips/index.js | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/src/renderer/plugins/Tips/index.js b/src/renderer/plugins/Tips/index.js index 4e2aee98..eede83c9 100644 --- a/src/renderer/plugins/Tips/index.js +++ b/src/renderer/plugins/Tips/index.js @@ -4,11 +4,14 @@ import { debounce } from '../../utils' let instance let prevTips -const getTips = el => el.getAttribute('tips') - ? el.getAttribute('tips') - : el.parentNode === document.documentElement - ? null - : getTips(el.parentNode) +const getTips = el => + el + ? el.getAttribute('tips') + ? el.getAttribute('tips') + : el.parentNode === document.documentElement + ? null + : getTips(el.parentNode) + : null const showTips = debounce(event => { let msg = getTips(event.target) From 382235c5563940312f66adf0e8c0b0e88b532f2a Mon Sep 17 00:00:00 2001 From: lyswhut Date: Sun, 13 Dec 2020 13:30:21 +0800 Subject: [PATCH 30/41] =?UTF-8?q?=E7=A7=BB=E9=99=A4=E5=A4=9A=E4=BD=99?= =?UTF-8?q?=E4=BB=A3=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/renderer/views/List.vue | 12 +++++------- src/renderer/views/SongList.vue | 4 +--- 2 files changed, 6 insertions(+), 10 deletions(-) diff --git a/src/renderer/views/List.vue b/src/renderer/views/List.vue index d0f1a077..df5a82e6 100644 --- a/src/renderer/views/List.vue +++ b/src/renderer/views/List.vue @@ -846,18 +846,16 @@ export default { } else { this.fetchingListStatus[id] = true } - return this.getListDetailAll({ source, id: sourceListId }).catch(err => { - return Promise.reject(err) - }).finally(() => { + return this.getListDetailAll({ source, id: sourceListId }).finally(() => { this.fetchingListStatus[id] = false }) }, async handleSyncSourceList(index) { - const targetList = this.userList[index] - const list = await this.fetchList(targetList.id, targetList.source, targetList.sourceListId) - // console.log(targetList.list.length, list.length) + const targetListInfo = this.userList[index] + const list = await this.fetchList(targetListInfo.id, targetListInfo.source, targetListInfo.sourceListId) + // console.log(targetListInfo.list.length, list.length) this.setList({ - ...targetList, + ...targetListInfo, list, }) }, diff --git a/src/renderer/views/SongList.vue b/src/renderer/views/SongList.vue index 2c1b5cda..d99241dc 100644 --- a/src/renderer/views/SongList.vue +++ b/src/renderer/views/SongList.vue @@ -405,9 +405,7 @@ export default { }, async fetchList() { this.detailLoading = true - return this.getListDetailAll({ source: this.source, id: this.selectListInfo.id }).catch(err => { - return Promise.reject(err) - }).finally(() => { + return this.getListDetailAll({ source: this.source, id: this.selectListInfo.id }).finally(() => { this.detailLoading = false }) }, From 0fcc3f257d1581cb5f00f46a783aabe7c835e77d Mon Sep 17 00:00:00 2001 From: lyswhut Date: Fri, 18 Dec 2020 19:36:29 +0800 Subject: [PATCH 31/41] =?UTF-8?q?=E4=BF=AE=E6=AD=A3=E6=8F=8F=E8=BF=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .github/ISSUE_TEMPLATE/--bug.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/ISSUE_TEMPLATE/--bug.md b/.github/ISSUE_TEMPLATE/--bug.md index be948180..f0a8160b 100644 --- a/.github/ISSUE_TEMPLATE/--bug.md +++ b/.github/ISSUE_TEMPLATE/--bug.md @@ -34,7 +34,7 @@ assignees: '' **环境:**   -操作系统及版本:[例如:Windows 10 64位 18362.156] -  -软件安装包及版本:[例如:Windows 64位绿色版 1.0.0] +  -软件安装包及版本:[例如:1.0.0 安装版] **其他内容** From ba9fd8d1f12734e2fc7007f5ec856d4d4767262e Mon Sep 17 00:00:00 2001 From: lyswhut Date: Fri, 18 Dec 2020 19:36:38 +0800 Subject: [PATCH 32/41] =?UTF-8?q?=E6=96=B0=E5=A2=9E=20=E6=9B=B4=E6=96=B0?= =?UTF-8?q?=E5=B7=B2=E6=94=B6=E8=97=8F=E7=9A=84=E5=9C=A8=E7=BA=BF=E6=AD=8C?= =?UTF-8?q?=E5=8D=95=20=E9=97=AE=E7=AD=94?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- FAQ.md | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/FAQ.md b/FAQ.md index 9c808d33..6d04931c 100644 --- a/FAQ.md +++ b/FAQ.md @@ -125,6 +125,12 @@ Windows 7 未开启 Aero 效果时桌面歌词会有问题,详情看下面的 注意:**绿色版**的软件自动更新功能**不可用**,建议使用安装版!!
注意:**Mac版**、**Linux deb**版不支持自动更新! +## 更新已收藏的在线歌单 + +该功能仅对直接从歌单详情页点“收藏”按钮收藏的歌单有效,可右击已收藏的列表名从弹出的菜单中选择“同步”使用该功能, + +需要注意的是:这将会覆盖本地的目标列表,歌曲将被替换成最新的在线列表。 + ## 缺少`xxx.dll` 这个是电脑缺少某些dll导致的,正常的系统是没有这个问题的,可以尝试如下几个解决办法: From bc69a98df1d2c8af662658d7b787ff3c988e84bc Mon Sep 17 00:00:00 2001 From: lyswhut Date: Sat, 19 Dec 2020 15:16:22 +0800 Subject: [PATCH 33/41] =?UTF-8?q?=E6=88=91=E7=9A=84=E5=88=97=E8=A1=A8?= =?UTF-8?q?=E5=8F=B3=E9=94=AE=E8=8F=9C=E5=8D=95=E6=96=B0=E5=A2=9E=E5=88=97?= =?UTF-8?q?=E8=A1=A8=E6=8E=92=E5=BA=8F=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- package.json | 2 +- publish/changeLog.md | 12 +- src/renderer/components/material/Input.vue | 21 +- .../components/material/ListAddModal.vue | 201 ++++++++++++++++++ .../material/ListAddMultipleModal.vue | 195 +++++++++++++++++ .../components/material/ListSortModal.vue | 109 ++++++++++ src/renderer/components/material/Menu.vue | 4 +- .../components/material/XmVerifyModal.vue | 50 +++++ .../lang/en-us/material/list_sort_modal.json | 6 + src/renderer/lang/en-us/view/list.json | 1 + .../lang/zh-cn/material/list_sort_modal.json | 6 + src/renderer/lang/zh-cn/view/list.json | 1 + .../lang/zh-tw/material/list_sort_modal.json | 6 + src/renderer/lang/zh-tw/view/list.json | 1 + src/renderer/store/modules/list.js | 6 + src/renderer/views/List.vue | 34 +++ 16 files changed, 639 insertions(+), 16 deletions(-) create mode 100644 src/renderer/components/material/ListAddModal.vue create mode 100644 src/renderer/components/material/ListAddMultipleModal.vue create mode 100644 src/renderer/components/material/ListSortModal.vue create mode 100644 src/renderer/components/material/XmVerifyModal.vue create mode 100644 src/renderer/lang/en-us/material/list_sort_modal.json create mode 100644 src/renderer/lang/zh-cn/material/list_sort_modal.json create mode 100644 src/renderer/lang/zh-tw/material/list_sort_modal.json diff --git a/package.json b/package.json index 378935fa..85f0e190 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "lx-music-desktop", - "version": "1.5.0", + "version": "1.6.0", "description": "一个免费的音乐下载助手", "main": "./dist/electron/main.js", "productName": "lx-music-desktop", diff --git a/publish/changeLog.md b/publish/changeLog.md index 085d884a..d758fc6e 100644 --- a/publish/changeLog.md +++ b/publish/changeLog.md @@ -1,14 +1,4 @@ ### 新增 -- 直接从歌单详情收藏的列表新增同步功能。注意:这将会覆盖本地的目标列表,歌曲将被替换成最新的在线列表 +- 我的列表右键菜单新增列表排序功能,可调整单曲、多选后的歌曲的顺序 -### 优化 - -- 优化软件启动时恢复上一次播放的歌曲进度功能 - -### 修复 - -- 修复MAC平台上下载歌曲封面嵌入无法显示的问题 -- 修复MAC平台首次运行软件最小化、关闭控制按钮默认在右边的问题 -- 修复酷狗源的某些歌曲没有专辑字段导致的列表加载失败问题 -- 修复某些酷狗源歌单链接无法打开的问题 diff --git a/src/renderer/components/material/Input.vue b/src/renderer/components/material/Input.vue index 1f0bf89f..8b1ac781 100644 --- a/src/renderer/components/material/Input.vue +++ b/src/renderer/components/material/Input.vue @@ -1,6 +1,6 @@ @@ -24,6 +24,16 @@ export default { default: 'text', }, }, + methods: { + handleInput(event) { + let value = event.target.value.trim() + event.target.value = value + this.$emit('input', value) + }, + focus() { + this.$refs.dom_input.focus() + }, + }, } @@ -41,6 +51,13 @@ export default { transition: background-color 0.2s ease; background-color: @color-btn-background; font-size: 13.3px; + + &::-webkit-outer-spin-button, + &::-webkit-inner-spin-button { + -webkit-appearance: none; + margin: 0; + } + &[disabled] { opacity: .4; } diff --git a/src/renderer/components/material/ListAddModal.vue b/src/renderer/components/material/ListAddModal.vue new file mode 100644 index 00000000..c42c8de3 --- /dev/null +++ b/src/renderer/components/material/ListAddModal.vue @@ -0,0 +1,201 @@ + + + + + + diff --git a/src/renderer/components/material/ListAddMultipleModal.vue b/src/renderer/components/material/ListAddMultipleModal.vue new file mode 100644 index 00000000..40a9e734 --- /dev/null +++ b/src/renderer/components/material/ListAddMultipleModal.vue @@ -0,0 +1,195 @@ + + + + + + diff --git a/src/renderer/components/material/ListSortModal.vue b/src/renderer/components/material/ListSortModal.vue new file mode 100644 index 00000000..79af530d --- /dev/null +++ b/src/renderer/components/material/ListSortModal.vue @@ -0,0 +1,109 @@ + + + + + + diff --git a/src/renderer/components/material/Menu.vue b/src/renderer/components/material/Menu.vue index 534cf82a..a48afd6e 100644 --- a/src/renderer/components/material/Menu.vue +++ b/src/renderer/components/material/Menu.vue @@ -138,10 +138,10 @@ export default { // will-change: transform; li { cursor: pointer; - min-width: 80px; + min-width: 90px; line-height: 34px; // color: @color-btn; - padding: 0 5px; + padding: 0 10px; text-align: center; outline: none; transition: @transition-theme; diff --git a/src/renderer/components/material/XmVerifyModal.vue b/src/renderer/components/material/XmVerifyModal.vue new file mode 100644 index 00000000..6a910c4c --- /dev/null +++ b/src/renderer/components/material/XmVerifyModal.vue @@ -0,0 +1,50 @@ + + + + + + diff --git a/src/renderer/lang/en-us/material/list_sort_modal.json b/src/renderer/lang/en-us/material/list_sort_modal.json new file mode 100644 index 00000000..c767e46e --- /dev/null +++ b/src/renderer/lang/en-us/material/list_sort_modal.json @@ -0,0 +1,6 @@ +{ + "title": "Adjust the position of {name} to:", + "title_multiple": "Adjust the position of the selected {num} songs to:", + "input_tip": "Please input which position you want to adjust to", + "btn_confirm": "Confirm" +} diff --git a/src/renderer/lang/en-us/view/list.json b/src/renderer/lang/en-us/view/list.json index 37809cf7..37d039d6 100644 --- a/src/renderer/lang/en-us/view/list.json +++ b/src/renderer/lang/en-us/view/list.json @@ -10,6 +10,7 @@ "list_copy_name": "Copy name", "list_add_to": "Add to ...", "list_move_to": "Move to ...", + "list_sort": "Adjust position", "list_download": "Download", "list_remove": "Remove", "list_source_detail": "Song Page", diff --git a/src/renderer/lang/zh-cn/material/list_sort_modal.json b/src/renderer/lang/zh-cn/material/list_sort_modal.json new file mode 100644 index 00000000..457585b2 --- /dev/null +++ b/src/renderer/lang/zh-cn/material/list_sort_modal.json @@ -0,0 +1,6 @@ +{ + "title": "将 {name} 的位置调整到:", + "title_multiple": "将已选的 {num} 首歌曲的位置调整到:", + "input_tip": "请输入要调整到第几个位置", + "btn_confirm": "确定" +} diff --git a/src/renderer/lang/zh-cn/view/list.json b/src/renderer/lang/zh-cn/view/list.json index 87778d88..3fbbf6bb 100644 --- a/src/renderer/lang/zh-cn/view/list.json +++ b/src/renderer/lang/zh-cn/view/list.json @@ -11,6 +11,7 @@ "list_source_detail": "歌曲详情页", "list_add_to": "添加到...", "list_move_to": "移动到...", + "list_sort": "调整位置", "list_download": "下载", "list_remove": "删除", "default_list": "试听列表", diff --git a/src/renderer/lang/zh-tw/material/list_sort_modal.json b/src/renderer/lang/zh-tw/material/list_sort_modal.json new file mode 100644 index 00000000..7e3ddd66 --- /dev/null +++ b/src/renderer/lang/zh-tw/material/list_sort_modal.json @@ -0,0 +1,6 @@ +{ + "title": "將 {name} 的位置調整到:", + "title_multiple": "將已選的 {num} 首歌曲的位置調整到:", + "input_tip": "請輸入要調整到第幾個位置", + "btn_confirm": "確定" +} diff --git a/src/renderer/lang/zh-tw/view/list.json b/src/renderer/lang/zh-tw/view/list.json index 1f218c54..68b7f9fe 100644 --- a/src/renderer/lang/zh-tw/view/list.json +++ b/src/renderer/lang/zh-tw/view/list.json @@ -10,6 +10,7 @@ "list_copy_name": "複製歌曲名", "list_add_to": "添加到...", "list_move_to": "移動到...", + "list_sort": "調整位置", "list_download": "下載", "list_remove": "刪除", "list_source_detail": "歌曲詳情頁", diff --git a/src/renderer/store/modules/list.js b/src/renderer/store/modules/list.js index 9df804c3..ce6ce500 100644 --- a/src/renderer/store/modules/list.js +++ b/src/renderer/store/modules/list.js @@ -185,6 +185,12 @@ const mutations = { setListScroll(state, { id, location }) { if (allList[id]) allList[id].location = location }, + sortList(state, { id, sortNum, musicInfos }) { + let targetList = allList[id] + this.commit('list/listRemoveMultiple', { id, list: musicInfos }) + + targetList.list.splice(sortNum - 1, 0, ...musicInfos) + }, } export default { diff --git a/src/renderer/views/List.vue b/src/renderer/views/List.vue index df5a82e6..445b69e6 100644 --- a/src/renderer/views/List.vue +++ b/src/renderer/views/List.vue @@ -69,6 +69,7 @@ material-menu(:menus="listsItemMenu" :location="listsData.menuLocation" item-name="name" :isShow="listsData.isShowItemMenu" @menu-click="handleListsItemMenuClick") material-menu(:menus="listItemMenu" :location="listMenu.menuLocation" item-name="name" :isShow="listMenu.isShowItemMenu" @menu-click="handleListItemMenuClick") material-search-list(:list="list" @action="handleMusicSearchAction" :visible="isVisibleMusicSearch") + material-list-sort-modal(:show="isShowListSortModal" :music-info="musicInfo" :selected-num="selectdListDetailData.length" @close="isShowListSortModal = false" @confirm="handleSortMusicInfo") From 027466dfc2cff71678a50b5b8d84ab5f1e297742 Mon Sep 17 00:00:00 2001 From: lyswhut Date: Sat, 19 Dec 2020 15:19:24 +0800 Subject: [PATCH 34/41] =?UTF-8?q?=E6=9B=B4=E6=96=B0=E6=8E=92=E5=BA=8F?= =?UTF-8?q?=E8=AF=B4=E6=98=8E?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- publish/changeLog.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/publish/changeLog.md b/publish/changeLog.md index d758fc6e..ae012b8b 100644 --- a/publish/changeLog.md +++ b/publish/changeLog.md @@ -1,4 +1,4 @@ ### 新增 -- 我的列表右键菜单新增列表排序功能,可调整单曲、多选后的歌曲的顺序 +- 我的列表右键菜单新增列表排序功能,可调整单曲、多选后的歌曲的顺序。注意:多选排序还将会按照选中歌曲时的顺序排序 From f00c6b1cb6727d673a257d900b25c40d82e25979 Mon Sep 17 00:00:00 2001 From: lyswhut Date: Sat, 19 Dec 2020 15:39:33 +0800 Subject: [PATCH 35/41] =?UTF-8?q?=E6=9B=B4=E6=96=B0Linux=E6=A1=8C=E9=9D=A2?= =?UTF-8?q?=E6=AD=8C=E8=AF=8D=E8=AF=B4=E6=98=8E?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- FAQ.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/FAQ.md b/FAQ.md index 6d04931c..fb36f51b 100644 --- a/FAQ.md +++ b/FAQ.md @@ -98,7 +98,8 @@ Windows 7 未开启 Aero 效果时桌面歌词会有问题,详情看下面的 ### Linux 系统下桌面歌词窗口异常 -目前在 Ubuntu 18.10 下第一次开启桌面歌词时歌词窗口会变白,需要关闭后再开启, +`v1.2.1`以前的版本在 Ubuntu 18.10 下第一次开启桌面歌词时歌词窗口会变白,需要关闭后再开启, +`v1.2.1`及之后的版本已修复该问题。 其他 Linux 系统未测试,如有异常也是意料之中,目前不打算去处理 Linux 平台的桌面歌词问题。 From 06b453ebe7c6db51c1149ef910fc7f179844720e Mon Sep 17 00:00:00 2001 From: lyswhut Date: Wed, 23 Dec 2020 17:03:38 +0800 Subject: [PATCH 36/41] =?UTF-8?q?=E6=96=B0=E5=A2=9E=E6=AD=8C=E6=9B=B2?= =?UTF-8?q?=E4=B8=8B=E8=BD=BD=E5=A4=B1=E8=B4=A5FAQ?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- FAQ.md | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/FAQ.md b/FAQ.md index fb36f51b..9c17aaf2 100644 --- a/FAQ.md +++ b/FAQ.md @@ -103,6 +103,19 @@ Windows 7 未开启 Aero 效果时桌面歌词会有问题,详情看下面的 其他 Linux 系统未测试,如有异常也是意料之中,目前不打算去处理 Linux 平台的桌面歌词问题。 +## 歌曲下载失败 + +### 提示 `ENOENT: no such file or directory, mkdir` + +更换下载歌曲目录即可解决(一般是设置的歌曲下载目录没有读写入权限导致的)。 + +### 提示 `请求异常` 或 `Fail` + +尝试更换网络,如切换到移动网络。 + +### 其他错误 + +按照前面的 "歌曲无法试听与下载" 方案解决。 ## 软件安装包说明 From a58d65e8afbfeb6a5d94ec52f950f8a81b69ba65 Mon Sep 17 00:00:00 2001 From: lyswhut Date: Thu, 24 Dec 2020 11:33:01 +0800 Subject: [PATCH 37/41] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E6=81=A2=E5=A4=8D?= =?UTF-8?q?=E4=B8=8A=E6=AC=A1=E6=92=AD=E6=94=BE=E7=9A=84=E6=AD=8C=E6=9B=B2?= =?UTF-8?q?=E6=97=B6=E5=9C=A8=E9=9A=8F=E6=9C=BA=E6=92=AD=E6=94=BE=E6=A8=A1?= =?UTF-8?q?=E5=BC=8F=E4=B8=8B=E4=B8=8D=E6=8A=8A=E6=81=A2=E5=A4=8D=E6=92=AD?= =?UTF-8?q?=E6=94=BE=E7=9A=84=E6=AD=8C=E6=9B=B2=E6=94=BE=E5=85=A5=E5=B7=B2?= =?UTF-8?q?=E6=92=AD=E6=94=BE=E9=98=9F=E5=88=97=E7=9A=84=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- publish/changeLog.md | 3 +++ src/renderer/components/core/Player.vue | 1 + 2 files changed, 4 insertions(+) diff --git a/publish/changeLog.md b/publish/changeLog.md index ae012b8b..195024ba 100644 --- a/publish/changeLog.md +++ b/publish/changeLog.md @@ -2,3 +2,6 @@ - 我的列表右键菜单新增列表排序功能,可调整单曲、多选后的歌曲的顺序。注意:多选排序还将会按照选中歌曲时的顺序排序 +### 修复 + +- 修复恢复上次播放的歌曲时在随机播放模式下不把恢复播放的歌曲放入已播放队列的问题(该问题会导致随机模式下会导致未播放完整个列表前就会再次随机到该歌曲,以及无法通过上一曲切回该歌曲) diff --git a/src/renderer/components/core/Player.vue b/src/renderer/components/core/Player.vue index 21cab61f..44c24259 100644 --- a/src/renderer/components/core/Player.vue +++ b/src/renderer/components/core/Player.vue @@ -264,6 +264,7 @@ export default { this.$nextTick(() => { this.sendProgressEvent(this.progress, 'paused') }) + if (this.setting.player.togglePlayMethod == 'random') this.setPlayedList(musicInfo) window.restorePlayInfo = null return } From 94c25b5dcb11c89acbc195471be021ca4a678291 Mon Sep 17 00:00:00 2001 From: lyswhut Date: Thu, 24 Dec 2020 14:27:44 +0800 Subject: [PATCH 38/41] =?UTF-8?q?=E4=BC=98=E5=8C=96=E5=88=97=E8=A1=A8?= =?UTF-8?q?=E6=8E=92=E5=BA=8F=E5=BC=B9=E7=AA=97=E7=95=8C=E9=9D=A2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../components/material/ListSortModal.vue | 24 ++++++++++++++----- src/renderer/views/List.vue | 6 +++++ 2 files changed, 24 insertions(+), 6 deletions(-) diff --git a/src/renderer/components/material/ListSortModal.vue b/src/renderer/components/material/ListSortModal.vue index 79af530d..981ed4f5 100644 --- a/src/renderer/components/material/ListSortModal.vue +++ b/src/renderer/components/material/ListSortModal.vue @@ -2,8 +2,9 @@ material-modal(:show="show" @close="handleClose") main(:class="$style.main") h2 {{selectedNum > 0 ? $t('material.list_sort_modal.title_multiple', { num: selectedNum }) : $t('material.list_sort_modal.title', { name: musicInfo ? musicInfo.name : '' })}} - material-input(:class="$style.input" type="number" v-model="sortNum" ref="input" :placeholder="$t('material.list_sort_modal.input_tip')" @keydown.native.enter="handleSubmit") - material-btn(:class="$style.btn" @click="handleSubmit") {{$t('material.list_sort_modal.btn_confirm')}} + material-input(:class="$style.input" type="number" v-model="sortNum" ref="input" @blur.native="verify" :placeholder="$t('material.list_sort_modal.input_tip')" @keydown.native.enter="handleSubmit") + div(:class="$style.footer") + material-btn(:class="$style.btn" @click="handleSubmit") {{$t('material.list_sort_modal.btn_confirm')}} - - - diff --git a/src/renderer/components/material/listAddMultipleModal.vue b/src/renderer/components/material/listAddMultipleModal.vue deleted file mode 100644 index 40a9e734..00000000 --- a/src/renderer/components/material/listAddMultipleModal.vue +++ /dev/null @@ -1,195 +0,0 @@ - - - - - - diff --git a/src/renderer/components/material/xmVerifyModal.vue b/src/renderer/components/material/xmVerifyModal.vue deleted file mode 100644 index 6a910c4c..00000000 --- a/src/renderer/components/material/xmVerifyModal.vue +++ /dev/null @@ -1,50 +0,0 @@ - - - - - - From ad2acc2a16f354f3e63e0db6319b989f25e2bdb6 Mon Sep 17 00:00:00 2001 From: lyswhut Date: Thu, 24 Dec 2020 17:20:27 +0800 Subject: [PATCH 41/41] =?UTF-8?q?=E6=9B=B4=E6=96=B0=E6=9B=B4=E6=96=B0?= =?UTF-8?q?=E6=97=A5=E5=BF=97?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- publish/changeLog.md | 1 + 1 file changed, 1 insertion(+) diff --git a/publish/changeLog.md b/publish/changeLog.md index 195024ba..1f305c55 100644 --- a/publish/changeLog.md +++ b/publish/changeLog.md @@ -5,3 +5,4 @@ ### 修复 - 修复恢复上次播放的歌曲时在随机播放模式下不把恢复播放的歌曲放入已播放队列的问题(该问题会导致随机模式下会导致未播放完整个列表前就会再次随机到该歌曲,以及无法通过上一曲切回该歌曲) +- 修复音乐嵌入的封面在 Mac 系统无法显示的问题