mirror of
https://github.com/the1812/Bilibili-Evolved.git
synced 2025-11-04 21:22:45 +08:00
Use aid in place of title
This commit is contained in:
parent
906c4c9507
commit
2580df59f8
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@ -1 +1 @@
|
||||
<div class=download-video><a v-bind:href=blobUrl id=video-complete style="display: none"></a><div class=header><h1>下载视频</h1><i class="mdi mdi-close"v-on:click=close()></i></div><div v-if=batch class=tabs><div class="tab download-single"v-bind:class="{active: downloadSingle}"v-on:click="downloadSingle = true">单个视频</div><div class="tab download-batch"v-bind:class="{active: !downloadSingle}"v-on:click="downloadSingle = false">批量导出</div></div><div class=info><img v-show=downloadSingle v-bind:src=coverUrl class=cover><div class=title><span v-if=downloadSingle class=bold v-bind:title="title + epTitle">{{title}}{{epTitle}}</span><span v-else class=bold v-bind:title=title>{{title}}</span><span v-show=downloadSingle class=size><div v-if=sizeWarning class=size-warning><i class="mdi mdi-alert-circle"></i><div class=size-warning-tip>警告: 过大的视频大小会在直接下载时占用大量内存, 并可能导致浏览器标签页崩溃. 请考虑降低清晰度或使用导出选项.</div></div>{{displaySize}}</span><span v-show=!downloadSingle class=size>共{{episodeList.length}}P</span></div></div><div class=options><div class=option-item>清晰度<v-dropdown v-on:change=formatChange() v-bind:model=qualityModel></v-dropdown></div><div class=option-item>弹幕<v-dropdown v-on:change=danmakuOptionChange() v-bind:model=danmakuModel></v-dropdown></div></div><div class=separator></div><div v-show=downloadSingle class=direct-download><h2>直接下载</h2><button v-if=!downloading class="primary start-download"v-on:click=startDownload()>开始</button><button v-else class="primary cancel-download"v-on:click=cancelDownload()>取消</button><div class=progress><div class=background><div class=foreground v-bind:style="{width: progressPercent + '%'}"></div></div><span class=percent>{{progressPercent}}%</span></div></div><div v-show=!downloadSingle class=batch-download><div class=episode-header><h2>选集</h2><button class=list-tool title=全选 v-on:click=selectAllEpisodes()><i class="mdi mdi-checkbox-multiple-marked-circle"></i></button><button class=list-tool title=全不选 v-on:click=unselectAllEpisodes()><i class="mdi mdi-checkbox-multiple-blank-circle-outline"></i></button><button class=list-tool title=反选 v-on:click=inverseAllEpisodes()><i class="mdi mdi-circle-slice-4"></i></button><span class=selected-count>{{selectedEpisodeCount}}/{{episodeList.length}}</span></div><div class=episode-list><v-checkbox v-for="ep of episodeList"v-bind:key=ep.index v-bind:model=ep></v-checkbox></div></div><div class=separator></div><div class=exports><h2>导出</h2><div class=actions><button class=copy-link v-bind:disabled="downloadSingle ? null : 'disabled'"v-on:click="exportData('copyLink')">复制链接</button><button class=aria2-file v-on:click="exportData('aria2')">导出aria2</button><button class=vld-copy v-on:click="exportData('copyVLD')">复制vld数据</button><button class=vld-export v-on:click="exportData('exportVLD')">导出vld数据</button></div></div></div>
|
||||
<div class=download-video><a v-bind:href=blobUrl id=video-complete style="display: none"></a><div class=header><h1>下载视频</h1><i class="mdi mdi-close"v-on:click=close()></i></div><div v-if=batch class=tabs><div class="tab download-single"v-bind:class="{active: downloadSingle}"v-on:click="downloadSingle = true">单个视频</div><div class="tab download-batch"v-bind:class="{active: !downloadSingle}"v-on:click="downloadSingle = false">批量导出</div></div><div class=info><img v-show=downloadSingle v-bind:src=coverUrl class=cover><div class=title><span class=bold v-bind:title=aid>av{{aid}}</span><span v-show=downloadSingle class=size><div v-if=sizeWarning class=size-warning><i class="mdi mdi-alert-circle"></i><div class=size-warning-tip>警告: 过大的视频大小会在直接下载时占用大量内存, 并可能导致浏览器标签页崩溃. 请考虑降低清晰度或使用导出选项.</div></div>{{displaySize}}</span><span v-show=!downloadSingle class=size>共{{episodeList.length}}P</span></div></div><div class=options><div class=option-item>清晰度<v-dropdown v-on:change=formatChange() v-bind:model=qualityModel></v-dropdown></div><div class=option-item>弹幕<v-dropdown v-on:change=danmakuOptionChange() v-bind:model=danmakuModel></v-dropdown></div></div><div class=separator></div><div v-show=downloadSingle class=direct-download><h2>直接下载</h2><button v-if=!downloading class="primary start-download"v-on:click=startDownload()>开始</button><button v-else class="primary cancel-download"v-on:click=cancelDownload()>取消</button><div class=progress><div class=background><div class=foreground v-bind:style="{width: progressPercent + '%'}"></div></div><span class=percent>{{progressPercent}}%</span></div></div><div v-show=!downloadSingle class=batch-download><div class=episode-header><h2>选集</h2><button class=list-tool title=全选 v-on:click=selectAllEpisodes()><i class="mdi mdi-checkbox-multiple-marked-circle"></i></button><button class=list-tool title=全不选 v-on:click=unselectAllEpisodes()><i class="mdi mdi-checkbox-multiple-blank-circle-outline"></i></button><button class=list-tool title=反选 v-on:click=inverseAllEpisodes()><i class="mdi mdi-circle-slice-4"></i></button><span class=selected-count>{{selectedEpisodeCount}}/{{episodeList.length}}</span></div><div class=episode-list><v-checkbox v-for="ep of episodeList"v-bind:key=ep.index v-bind:model=ep></v-checkbox></div></div><div class=separator></div><div class=exports><h2>导出</h2><div class=actions><button class=copy-link v-bind:disabled="downloadSingle ? null : 'disabled'"v-on:click="exportData('copyLink')">复制链接</button><button class=aria2-file v-on:click="exportData('aria2')">导出aria2</button><button class=vld-copy v-on:click="exportData('copyVLD')">复制vld数据</button><button class=vld-export v-on:click="exportData('exportVLD')">导出vld数据</button></div></div></div>
|
||||
2
min/download-video.min.js
vendored
2
min/download-video.min.js
vendored
File diff suppressed because one or more lines are too long
2
min/gui-settings.min.css
vendored
2
min/gui-settings.min.css
vendored
File diff suppressed because one or more lines are too long
@ -48,7 +48,7 @@
|
||||
body.dark .gui-settings,
|
||||
body.dark .gui-settings-widgets
|
||||
{
|
||||
background-color: rgba(0,0,0,0.75);
|
||||
background-color: rgba(0,0,0,0.3);
|
||||
}
|
||||
.gui-settings:hover,
|
||||
.gui-settings-widgets:hover
|
||||
|
||||
@ -107,16 +107,13 @@ body.dark .download-video {
|
||||
}
|
||||
.v-dropdown {
|
||||
position: relative;
|
||||
background-color: #ededed;
|
||||
background-color: #8884;
|
||||
cursor: pointer;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: space-between;
|
||||
min-width: 100px;
|
||||
}
|
||||
body.dark .v-dropdown {
|
||||
background-color: #333;
|
||||
}
|
||||
.v-dropdown .dropdown-menu {
|
||||
transform-origin: top;
|
||||
transform: scaleY(0) translateX(-50%);
|
||||
|
||||
@ -13,8 +13,7 @@
|
||||
<div class="info">
|
||||
<img v-show="downloadSingle" v-bind:src="coverUrl" class="cover">
|
||||
<div class="title">
|
||||
<span v-if="downloadSingle" class="bold" v-bind:title="title + epTitle">{{title}}{{epTitle}}</span>
|
||||
<span v-else class="bold" v-bind:title="title">{{title}}</span>
|
||||
<span class="bold" v-bind:title="aid">av{{aid}}</span>
|
||||
<span v-show="downloadSingle" class="size">
|
||||
<div v-if="sizeWarning" class="size-warning">
|
||||
<i class="mdi mdi-alert-circle"></i>
|
||||
|
||||
@ -1,4 +1,4 @@
|
||||
import { getFriendlyTitle, formatTitle } from '../title';
|
||||
import { getFriendlyTitle } from '../title';
|
||||
import { VideoInfo, DanmakuInfo } from '../video-info';
|
||||
class Video {
|
||||
constructor() {
|
||||
@ -473,8 +473,7 @@ async function loadPanel() {
|
||||
data: {
|
||||
downloadSingle: true,
|
||||
coverUrl: '',
|
||||
title: '',
|
||||
epTitle: '',
|
||||
aid: pageData.aid,
|
||||
qualityModel: {
|
||||
value: selectedFormat.displayName,
|
||||
items: formats.map(f => f.displayName)
|
||||
@ -702,12 +701,15 @@ async function loadPanel() {
|
||||
});
|
||||
Observer.videoChange(async () => {
|
||||
panel.close();
|
||||
panel.batch = false;
|
||||
panel.downloadSingle = true;
|
||||
const button = dq('#download-video');
|
||||
const canDownload = await loadPageData();
|
||||
button.style.display = canDownload ? 'flex' : 'none';
|
||||
if (!canDownload) {
|
||||
return;
|
||||
}
|
||||
panel.aid = pageData.aid;
|
||||
const videoInfo = new VideoInfo(pageData.aid);
|
||||
await videoInfo.fetchInfo();
|
||||
panel.coverUrl = videoInfo.coverUrl.replace('http:', 'https:');
|
||||
@ -718,22 +720,6 @@ async function loadPanel() {
|
||||
items: formats.map(f => f.displayName)
|
||||
};
|
||||
panel.formatChange();
|
||||
(async () => {
|
||||
await SpinQuery.condition(() => document.querySelector('.video-toolbar .ops .coin,.tool-bar .coin-info'), it => {
|
||||
return it !== null && it.innerText !== '--';
|
||||
});
|
||||
panel.title = formatTitle('[title]', false);
|
||||
SpinQuery.select('#eplist_module li.cursor').then(li => {
|
||||
if (li !== null) {
|
||||
panel.epTitle = ' - ' + li.innerText;
|
||||
}
|
||||
});
|
||||
SpinQuery.select('#multi_page .cur-list>ul li.on a').then(a => {
|
||||
if (a !== null) {
|
||||
panel.epTitle = ' - ' + a.getAttribute('title');
|
||||
}
|
||||
});
|
||||
})();
|
||||
await panel.checkBatch();
|
||||
});
|
||||
}
|
||||
|
||||
@ -499,8 +499,7 @@ async function loadPanel() {
|
||||
data: {
|
||||
downloadSingle: true,
|
||||
coverUrl: '',
|
||||
title: '',
|
||||
epTitle: '',
|
||||
aid: pageData.aid,
|
||||
qualityModel: {
|
||||
value: selectedFormat!.displayName,
|
||||
items: formats.map(f => f.displayName)
|
||||
@ -735,6 +734,8 @@ async function loadPanel() {
|
||||
if (!canDownload) {
|
||||
return
|
||||
}
|
||||
|
||||
panel.aid = pageData.aid
|
||||
const videoInfo = new VideoInfo(pageData.aid)
|
||||
await videoInfo.fetchInfo()
|
||||
panel.coverUrl = videoInfo.coverUrl.replace('http:', 'https:')
|
||||
@ -745,27 +746,8 @@ async function loadPanel() {
|
||||
value: selectedFormat.displayName,
|
||||
items: formats.map(f => f.displayName)
|
||||
}
|
||||
panel.formatChange();
|
||||
(async () => {
|
||||
await SpinQuery.condition(
|
||||
() => document.querySelector('.video-toolbar .ops .coin,.tool-bar .coin-info'),
|
||||
it => {
|
||||
return it !== null && (it as HTMLElement).innerText !== '--'
|
||||
})
|
||||
panel.title = formatTitle('[title]', false)
|
||||
SpinQuery.select('#eplist_module li.cursor').then(li => {
|
||||
if (li !== null) {
|
||||
panel.epTitle = ' - ' + li.innerText
|
||||
}
|
||||
})
|
||||
SpinQuery.select('#multi_page .cur-list>ul li.on a').then(a => {
|
||||
if (a !== null) {
|
||||
panel.epTitle = ' - ' + a.getAttribute('title')!
|
||||
}
|
||||
})
|
||||
})()
|
||||
panel.formatChange()
|
||||
await panel.checkBatch()
|
||||
|
||||
})
|
||||
}
|
||||
|
||||
|
||||
Loading…
Reference in New Issue
Block a user