mirror of
https://github.com/the1812/Bilibili-Evolved.git
synced 2025-11-04 21:22:45 +08:00
Merge pull request #3798 from Seaward233/preview-features
新增下载视频时选择是否使用备用下载地址的功能
This commit is contained in:
commit
df8899123a
@ -45,6 +45,10 @@
|
||||
正在计算大小
|
||||
</div>
|
||||
</template>
|
||||
<div class="download-video-config-item">
|
||||
<div class="download-video-config-title">使用备用下载地址:</div>
|
||||
<SwitchBox v-model="useBackupUrls" />
|
||||
</div>
|
||||
<component
|
||||
:is="a.component"
|
||||
v-for="a of assetsWithOptions"
|
||||
@ -86,7 +90,7 @@ import { getComponentSettings } from '@/core/settings'
|
||||
import { matchUrlPattern } from '@/core/utils'
|
||||
import { logError } from '@/core/utils/log'
|
||||
import { formatFileSize } from '@/core/utils/formatters'
|
||||
import { VPopup, VButton, VDropdown, VIcon } from '@/ui'
|
||||
import { VPopup, VButton, VDropdown, VIcon, SwitchBox } from '@/ui'
|
||||
import { registerAndGetData } from '@/plugins/data'
|
||||
import { allQualities, VideoQuality } from '@/components/video/video-quality'
|
||||
import { Toast } from '@/core/toast'
|
||||
@ -127,6 +131,7 @@ const { basicConfig } = getComponentSettings('downloadVideo').options as {
|
||||
api: string
|
||||
quality: number
|
||||
output: string
|
||||
useBackupUrls: boolean
|
||||
}
|
||||
}
|
||||
const filterData = <T extends { match?: TestPattern }>(items: T[]) => {
|
||||
@ -146,6 +151,7 @@ export default Vue.extend({
|
||||
VButton,
|
||||
VDropdown,
|
||||
VIcon,
|
||||
SwitchBox,
|
||||
},
|
||||
props: {
|
||||
triggerElement: {
|
||||
@ -154,6 +160,7 @@ export default Vue.extend({
|
||||
},
|
||||
data() {
|
||||
const lastOutput = basicConfig.output
|
||||
const lastUseBackupUrls = basicConfig.useBackupUrls
|
||||
return {
|
||||
open: false,
|
||||
busy: false,
|
||||
@ -173,6 +180,7 @@ export default Vue.extend({
|
||||
selectedApi: undefined,
|
||||
outputs,
|
||||
selectedOutput: outputs.find(it => it.name === lastOutput) || outputs[0],
|
||||
useBackupUrls: lastUseBackupUrls || false,
|
||||
}
|
||||
},
|
||||
computed: {
|
||||
@ -218,6 +226,12 @@ export default Vue.extend({
|
||||
}
|
||||
basicConfig.output = output.name
|
||||
},
|
||||
useBackupUrls(useBackupUrls: boolean) {
|
||||
if (useBackupUrls === undefined) {
|
||||
return
|
||||
}
|
||||
basicConfig.useBackupUrls = useBackupUrls
|
||||
},
|
||||
},
|
||||
mounted() {
|
||||
coreApis.observer.videoChange(() => {
|
||||
@ -304,6 +318,16 @@ export default Vue.extend({
|
||||
Toast.info('未接收到可下载数据, 请检查输入源和格式是否适用于当前视频.', '下载视频', 3000)
|
||||
return
|
||||
}
|
||||
if (this.useBackupUrls) {
|
||||
videoInfos.forEach(videoInfo => {
|
||||
videoInfo.fragments.forEach(fragment => {
|
||||
fragment.url =
|
||||
fragment.backupUrls && fragment.backupUrls.length !== 0
|
||||
? fragment.backupUrls.at(0)
|
||||
: fragment.url
|
||||
})
|
||||
})
|
||||
}
|
||||
const action = new DownloadVideoAction(videoInfos)
|
||||
const extraAssets = (
|
||||
await Promise.all(
|
||||
|
||||
Loading…
Reference in New Issue
Block a user