mirror of
https://github.com/Kuingsmile/PicList.git
synced 2026-05-11 09:59:59 +08:00
✨ Feature: add 'migrate from PicGo' option in setting page
This commit is contained in:
@@ -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'),
|
||||
|
||||
@@ -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)
|
||||
}
|
||||
|
||||
5
src/universal/types/i18n.d.ts
vendored
5
src/universal/types/i18n.d.ts
vendored
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user