mirror of
https://github.com/the1812/Bilibili-Evolved.git
synced 2025-11-04 21:22:45 +08:00
41 lines
1.3 KiB
TypeScript
41 lines
1.3 KiB
TypeScript
import { defineComponentMetadata } from '@/components/define'
|
|
import { addData } from '@/plugins/data'
|
|
import { AboutPageAction } from '@/components/settings-panel/sub-pages/about-page'
|
|
import { runMigrate } from './migrate'
|
|
|
|
export const component = defineComponentMetadata({
|
|
name: 'v1Migrate',
|
|
displayName: 'v1 设置迁移',
|
|
description: {
|
|
'zh-CN':
|
|
'在设置的 `关于` 面板中添加 `导入 v1 设置` 按钮, 点击导入可以导入 v1 的设置, 并根据打开的选项自动下载安装 v2 中对应的功能.',
|
|
},
|
|
tags: [componentsTags.utils],
|
|
entry: () => {
|
|
addData('settingsPanel.about.actions', (actions: AboutPageAction[]) => {
|
|
actions.push({
|
|
icon: 'mdi-inbox-arrow-down-outline',
|
|
name: 'importV1Settings',
|
|
displayName: '导入 v1 设置',
|
|
run: async () => {
|
|
const { logError } = await import('@/core/utils/log')
|
|
const { pickFile } = await import('@/core/file-picker')
|
|
const files = await pickFile({
|
|
accept: '*.json',
|
|
})
|
|
if (files.length === 0) {
|
|
return
|
|
}
|
|
const [file] = files
|
|
try {
|
|
const settings = JSON.parse(await file.text())
|
|
await runMigrate(settings)
|
|
} catch (error) {
|
|
logError(error)
|
|
}
|
|
},
|
|
})
|
|
})
|
|
},
|
|
})
|