Skip to content

Commit f2382d4

Browse files
committed
feat: 增加选项仅获取到目标音质时下载
1 parent 557ae99 commit f2382d4

File tree

2 files changed

+16
-7
lines changed

2 files changed

+16
-7
lines changed

ncmExtend/src/PopUpUI/ShowBatchDLPopUp.js

Lines changed: 4 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -4,21 +4,18 @@ import { filterSongs } from "../song/filterSongs"
44
import { createSongsUrlApi } from "../song/createSongsUrlApi"
55
export const ShowBatchDLPopUp = (config) => {
66
Swal.fire({
7+
width: 650,
78
title: '批量下载',
8-
customClass: {
9-
input: 'f-rdi',
10-
},
119
html: `<div id="my-cbs">
1210
<label><input class="form-check-input" type="checkbox" value="" id="cb-fee1" checked>VIP歌曲</label>
1311
<label><input class="form-check-input" type="checkbox" value="" id="cb-fee4" checked>付费专辑歌曲</label>
14-
</div>
15-
<div id="my-cbs2">
1612
<label><input class="form-check-input" type="checkbox" value="" id="cb-fee8" checked>低音质免费歌曲</label>
1713
<label><input class="form-check-input" type="checkbox" value="" id="cb-fee0" checked>免费和云盘未匹配歌曲</label>
1814
</div>
19-
<div id="my-cbs3">
15+
<div id="my-cbs2">
2016
<label><input class="form-check-input" type="checkbox" value="" id="cb-skipcloud">跳过云盘歌曲</label>
2117
<label><input class="form-check-input" type="checkbox" value="" id="cb-dlLyric">下载歌词文件(.lrc)</label>
18+
<label><input class="form-check-input" type="checkbox" value="" id="cb-targetLevelOnly">仅获取到目标音质时下载</label>
2219
</div>
2320
<div id="my-level">
2421
<label>优先下载音质<select id="level-select" class="swal2-select"><option value="jymaster" selected="">超清母带</option><option value="dolby">杜比全景声</option><option value="sky">沉浸环绕声</option><option value="jyeffect">高清环绕声</option><option value="hires">Hi-Res</option><option value="lossless">无损</option><option value="exhigh">极高</option></select></label>
@@ -46,6 +43,7 @@ export const ShowBatchDLPopUp = (config) => {
4643
lowFree: container.querySelector('#cb-fee8').checked,
4744
skipCloud: container.querySelector('#cb-skipcloud').checked,
4845
downloadLyric: container.querySelector('#cb-dlLyric').checked,
46+
targetLevelOnly: container.querySelector('#cb-targetLevelOnly').checked,
4947
level: container.querySelector('#level-select').value,
5048
out: container.querySelector('#out-select').value,
5149
folder: container.querySelector('#folder-select').value,

ncmExtend/src/song/batchDownloadSongs.js

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -73,6 +73,7 @@ width: 10%;
7373
}
7474
config.finnshCount = 0
7575
config.errorSongs = []
76+
config.skipSongs = []
7677
config.taskCount = songList.length
7778
config.threadList = threadList
7879
for (let i = 0; i < config.threadCount; i++) {
@@ -95,8 +96,11 @@ const downloadSongSub = (threadIndex, songList, config) => {
9596
}
9697
if (allFinnsh) {
9798
let finnshText = '下载完成'
99+
if (config.skipSongs.length > 0) {
100+
finnshText += '\n' + `有${config.skipSongs.length}首歌曲不是目标音质,未进行下载。`
101+
}
98102
if (config.errorSongs.length > 0) {
99-
finnshText = `下载完成。以下${config.errorSongs.length}首歌曲下载失败: ${config.errorSongs.map(song => `<a href="https://music.163.com/#/song?id=${song.id}">${song.title}</a>`).join()}`
103+
finnshText += '\n' + `以下${config.errorSongs.length}首歌曲下载失败: ${config.errorSongs.map(song => `<a href="https://music.163.com/#/song?id=${song.id}">${song.title}</a>`).join()}`
100104
}
101105
Swal.update({
102106
allowOutsideClick: true,
@@ -118,6 +122,13 @@ const downloadSongSub = (threadIndex, songList, config) => {
118122
onload: (content) => {
119123
let resData = content.data[0] || content.data
120124
if (resData.url != null) {
125+
//跳过未到达音质的歌曲
126+
if (config.targetLevelOnly && config.level != resData.level) {
127+
prText.innerHTML = `跳过下载`
128+
config.skipSongs.push(song)
129+
downloadSongSub(threadIndex, songList, config)
130+
return
131+
}
121132
let fileName = nameFileWithoutExt(song.title, song.artist, config.out).replace('/', '/')
122133
let fileFullName = fileName + '.' + resData.type.toLowerCase()
123134
let folder = ''

0 commit comments

Comments
 (0)