PicList/src/main/migrate/index.ts

62 lines
1.9 KiB
TypeScript
Raw Normal View History

2021-07-26 12:15:11 -04:00
import { DBStore } from '@picgo/store'
import ConfigStore from '~/main/apis/core/datastore'
import path from 'path'
import fse from 'fs-extra'
2022-01-08 02:44:09 -05:00
import { PicGo as PicGoCore } from 'picgo'
2022-08-20 04:44:55 -04:00
import { T } from '~/main/i18n'
2019-09-10 02:38:08 -04:00
// from v2.1.2
2021-07-26 12:15:11 -04:00
const updateShortKeyFromVersion212 = (db: typeof ConfigStore, shortKeyConfig: IShortKeyConfigs | IOldShortKeyConfigs) => {
// #557 极端情况可能会出现配置不存在,需要重新写入
if (shortKeyConfig === undefined) {
const defaultShortKeyConfig = {
enable: true,
key: 'CommandOrControl+Shift+P',
name: 'upload',
2022-01-11 08:50:29 -05:00
label: T('QUICK_UPLOAD')
}
db.set('settings.shortKey[picgo:upload]', defaultShortKeyConfig)
return true
}
if (shortKeyConfig.upload) {
2019-12-19 06:17:21 -05:00
// @ts-ignore
shortKeyConfig['picgo:upload'] = {
enable: true,
key: shortKeyConfig.upload,
name: 'upload',
2022-01-11 08:50:29 -05:00
label: T('QUICK_UPLOAD')
2019-09-10 02:38:08 -04:00
}
// @ts-ignore
delete shortKeyConfig.upload
2019-09-11 07:30:08 -04:00
db.set('settings.shortKey', shortKeyConfig)
return true
2019-09-10 02:38:08 -04:00
}
return false
2019-09-10 02:38:08 -04:00
}
const migrateGalleryFromVersion230 = async (configDB: typeof ConfigStore, galleryDB: DBStore, picgo: PicGoCore) => {
const originGallery: ImgInfo[] = picgo.getConfig('uploaded')
// if hasMigrate, we don't need to migrate
const hasMigrate: boolean = configDB.get('__migrateUploaded')
if (hasMigrate) {
return
}
2021-07-26 12:15:11 -04:00
const configPath = configDB.getConfigPath()
const configBakPath = path.join(path.dirname(configPath), 'config.bak.json')
2021-07-26 12:15:11 -04:00
// migrate gallery from config to gallery db
if (originGallery && Array.isArray(originGallery) && originGallery?.length > 0) {
if (fse.existsSync(configBakPath)) {
fse.copyFileSync(configPath, configBakPath)
}
2021-07-26 12:15:11 -04:00
await galleryDB.insertMany(originGallery)
picgo.saveConfig({
uploaded: [],
__migrateUploaded: true
})
2021-07-26 12:15:11 -04:00
}
}
2019-09-10 02:38:08 -04:00
export {
2021-07-26 12:15:11 -04:00
updateShortKeyFromVersion212,
migrateGalleryFromVersion230
2019-09-10 02:38:08 -04:00
}