Skip to content

Commit 1f52edc

Browse files
authored
v1.13: 优化哔哩界面展开
1 parent ee34487 commit 1f52edc

File tree

1 file changed

+38
-58
lines changed

1 file changed

+38
-58
lines changed

BilibiliVideoDownloader.user.js

Lines changed: 38 additions & 58 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
// @name Bilibili Video Downloader
33
// @name:zh 哔哩哔哩视频下载器
44
// @namespace https://github.com/jc3213/userscript
5-
// @version 1.12.0
5+
// @version 1.13.0
66
// @description Download videos from Bilibili (No Bangumi)
77
// @description:zh 下载哔哩哔哩视频(不支持番剧)
88
// @author jc3213
@@ -18,25 +18,25 @@ let bvOpen = true;
1818
let history = {};
1919
let archive;
2020
let format = {
21-
'30280': {text: '音频 高码率', ext: '.192k.m4a'},
22-
'30232': {text: '音频 中码率', ext: '.128k.m4a'},
23-
'30216': {text: '音频 低码率', ext: '.64k.m4a'},
24-
'127': {text: '8K 超高清', ext: '.8k.mp4'},
25-
'125': {text: '4K 超清+', ext: '.4k+.mp4'},
26-
'120': {text: '4K 超清', ext: '.4k.mp4'},
27-
'116': {text: '1080P 60帧', ext: '.1080f60.mp4'},
28-
'112': {text: '1080P 高码率', ext: '.1080+.mp4'},
29-
'80': {text: '1080P 高清', ext: '.1080.mp4'},
30-
'74': {text: '720P 60帧', ext: '.720f60.mp4'},
31-
'64': {text: '720P 高清', ext: '.720.mp4'},
32-
'32': {text: '480P 清晰', ext: '.480.mp4'},
33-
'16': {text: '360P 流畅', ext: '.360.mp4'},
34-
'15': {text: '360P 流畅', ext: '.360-.mp4'},
35-
'avc1': {title: '视频编码: H.264', alt: 'h264', type: 'video'},
36-
'hvc1': {title: '视频编码: HEVC 增强', alt: 'h265', type: 'video'},
37-
'hev1': {title: '视频编码: HEVC', alt: 'h265', type: 'video'},
38-
'av01': {title: '视频编码:AV1', alt: 'av1', type: 'video'},
39-
'mp4a': {title: '音频编码: AAC', alt: 'aac', type: 'audio'}
21+
'30280': { text: '音频 高码率', ext: '.192k.m4a' },
22+
'30232': { text: '音频 中码率', ext: '.128k.m4a' },
23+
'30216': { text: '音频 低码率', ext: '.64k.m4a' },
24+
'127': { text: '8K 超高清', ext: '.8k.mp4' },
25+
'125': { text: '4K 超清+', ext: '.4k+.mp4' },
26+
'120': { text: '4K 超清', ext: '.4k.mp4' },
27+
'116': { text: '1080P 60帧', ext: '.1080f60.mp4' },
28+
'112': { text: '1080P 高码率', ext: '.1080+.mp4' },
29+
'80': { text: '1080P 高清', ext: '.1080.mp4' },
30+
'74': { text: '720P 60帧', ext: '.720f60.mp4' },
31+
'64': { text: '720P 高清', ext: '.720.mp4' },
32+
'32': { text: '480P 清晰', ext: '.480.mp4' },
33+
'16': { text: '360P 流畅', ext: '.360.mp4' },
34+
'15': { text: '360P 流畅', ext: '.360-.mp4' },
35+
'avc1': { title: '视频编码: H.264', alt: 'h264', type: 'video' },
36+
'hvc1': { title: '视频编码: HEVC 增强', alt: 'h265', type: 'video' },
37+
'hev1': { title: '视频编码: HEVC', alt: 'h265', type: 'video' },
38+
'av01': { title: '视频编码:AV1', alt: 'av1', type: 'video' },
39+
'mp4a': { title: '音频编码: AAC', alt: 'aac', type: 'audio' }
4040
};
4141

4242
let bvHandler = {
@@ -146,12 +146,11 @@ function bVideoOptions() {
146146
function bVideoAnalyze() {
147147
optionsPane.classList.add('bilivideo_hidden');
148148
analysePane.classList.toggle('bilivideo_hidden');
149-
if (bvOpen) {
150-
analysePane.classList.add(videocodec);
151-
bvOpen = false;
152-
analysePane.innerHTML = '';
153-
bvMenu.fetch();
154-
}
149+
if (!bvOpen) return;
150+
analysePane.classList.add(videocodec);
151+
bvOpen = false;
152+
analysePane.innerHTML = '';
153+
bvMenu.fetch();
155154
}
156155

157156
const menuEvent = {
@@ -176,16 +175,11 @@ optionsPane.addEventListener('change', (event) => {
176175
});
177176

178177
analysePane.addEventListener('click', (event) => {
179-
let {altKey, target: {url, file}} = event;
180-
if (url && file) {
181-
if (altKey) {
182-
var urls = [{ url, options: { out: file, referer: location.href } }];
183-
window.postMessage({ aria2c: 'aria2c_download', params: urls });
184-
}
185-
else {
186-
GM_download({ url, responseType: 'blob', headers: { referer: location.href }, name: file });
187-
}
188-
}
178+
let { altKey, target: { url, file } } = event;
179+
if (!url || !file) return;
180+
altKey
181+
? window.postMessage({ aria2c: 'aria2c_download', params: [{ url, options: { out: file, referer: location.href } }] })
182+
: GM_download({ url, responseType: 'blob', headers: { referer: location.href }, name: file });
189183
});
190184

191185
let [, optionWide,, optionCodec] = optionsPane.children;
@@ -230,27 +224,13 @@ Object.defineProperty(proto, 'src', {
230224

231225
proto.play = async function (...args) {
232226
proto.play = bvplay;
233-
let wide = await PromiseSelector(bvMenu.widebtn);
234-
let menu = await PromiseSelector(bvMenu.menu);
235-
if (!wide.classList.contains(bvMenu.widestat) && autowide === '1' ) {
236-
wide.click();
237-
}
238-
menu.append(mainPane, cssPane);
227+
setTimeout(() => {
228+
let wide = document.querySelector(bvMenu.widebtn);
229+
let menu = document.querySelector(bvMenu.menu);
230+
if (!wide.classList.contains(bvMenu.widestat) && autowide === '1' ) {
231+
wide.click();
232+
}
233+
menu.append(mainPane, cssPane);
234+
}, 1000);
239235
return bvplay.apply(this, args);
240236
};
241-
242-
function PromiseSelector(text) {
243-
return new Promise((resolve, reject) => {
244-
let time = 15;
245-
let t = setInterval(() => {
246-
let node = document.querySelector(text);
247-
if (node) {
248-
clearInterval(t);
249-
resolve(node);
250-
} else if (--time === 0) {
251-
clearInterval(t);
252-
reject();
253-
}
254-
}, 200);
255-
});
256-
}

0 commit comments

Comments
 (0)