Feature: add 'migrate from PicGo' option in setting page

This commit is contained in:
萌萌哒赫萝
2023-03-21 11:54:18 +08:00
parent ccac4968e6
commit 6bfecba01d
6 changed files with 79 additions and 1 deletions

View File

@@ -15,6 +15,7 @@ import server from '~/main/server'
import getPicBeds from '~/main/utils/getPicBeds'
import shortKeyHandler from 'apis/app/shortKey/shortKeyHandler'
import bus from '@core/bus'
import fs from 'fs-extra'
import {
TOGGLE_SHORTKEY_MODIFIED_MODE,
OPEN_DEVTOOLS,
@@ -113,6 +114,34 @@ export default {
}
})
ipcMain.handle('migrateFromPicGo', async () => {
const picGoConfigPath = STORE_PATH.replace('piclist', 'picgo')
console.log(picGoConfigPath)
const fileToMigration = [
'data.json',
'data.bak.json',
'picgo.db',
'picgo.bak.db'
]
const targetFileNames = [
'data.json',
'data.bak.json',
'piclist.db',
'piclist.bak.db'
]
try {
for (let i = 0; i < fileToMigration.length; i++) {
if (fs.existsSync(path.join(picGoConfigPath, fileToMigration[i]))) {
fs.removeSync(path.join(STORE_PATH, targetFileNames[i]))
fs.copyFileSync(path.join(picGoConfigPath, fileToMigration[i]), path.join(STORE_PATH, targetFileNames[i]))
}
}
return true
} catch (e) {
return false
}
})
ipcMain.on('updateCustomLink', () => {
const notification = new Notification({
title: T('OPERATION_SUCCEED'),

View File

@@ -42,6 +42,18 @@
/>
</el-select>
</el-form-item>
<el-form-item
:label="$T('SETTINGS_MIGRATE_FROM_PICGO')"
>
<el-button
type="primary"
round
size="small"
@click="handelMigrateFromPicGo"
>
{{ $T('SETTINGS_CLICK_TO_SET') }}
</el-button>
</el-form-item>
<el-form-item
:label="$T('SETTINGS_OPEN_CONFIG_FILE')"
>
@@ -787,7 +799,7 @@
</div>
</template>
<script lang="ts" setup>
import { ElForm, ElMessage as $message, FormRules } from 'element-plus'
import { ElForm, ElMessage as $message, ElMessage, ElMessageBox, FormRules } from 'element-plus'
import { Reading, QuestionFilled } from '@element-plus/icons-vue'
import pkg from 'root/package.json'
import { PICGO_OPEN_FILE, OPEN_URL, GET_PICBEDS } from '#/events/constants'
@@ -1085,6 +1097,23 @@ function confirmProxy () {
}
}
function handelMigrateFromPicGo () {
ElMessageBox.confirm($T('SETTINGS_MIGRATE_FROM_PICGO_CONTENT'), $T('SETTINGS_MIGRATE_FROM_PICGO_TITLE'), {
confirmButtonText: $T('CONFIRM'),
cancelButtonText: $T('CANCEL'),
type: 'warning',
center: true
}).then(() => {
ipcRenderer.invoke('migrateFromPicGo').then(() => {
ElMessage.success($T('SETTINGS_MIGRATE_FROM_PICGO_SUCCESS'))
}).catch(() => {
ElMessage.error($T('SETTINGS_MIGRATE_FROM_PICGO_FAILED'))
})
}).catch(() => {
return false
})
}
function updateHelperChange (val: ICheckBoxValueType) {
saveConfig('settings.showUpdateTip', val)
}

View File

@@ -99,6 +99,11 @@ interface ILocales {
UPLOAD_PAGE_IMAGE_PROCESS_POSITION_CENTER: string
SETTINGS: string
SETTINGS_OPEN_CONFIG_FILE: string
SETTINGS_MIGRATE_FROM_PICGO: string
SETTINGS_MIGRATE_FROM_PICGO_TITLE: string
SETTINGS_MIGRATE_FROM_PICGO_CONTENT: string
SETTINGS_MIGRATE_FROM_PICGO_SUCCESS: string
SETTINGS_MIGRATE_FROM_PICGO_FAILED: string
SETTINGS_CLICK_TO_OPEN: string
SETTINGS_SET_LOG_FILE: string
SETTINGS_CLICK_TO_SET: string