Use aid in place of title

This commit is contained in:
the1812 2019-07-18 16:03:35 +08:00
parent 906c4c9507
commit 2580df59f8
10 changed files with 23 additions and 59 deletions

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -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>

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -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

View File

@ -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%);

View File

@ -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>

View File

@ -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();
});
}

View File

@ -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()
})
}