Skip to content

Commit

Permalink
fix: 支持平台一键导入
Browse files Browse the repository at this point in the history
  • Loading branch information
terwer committed Sep 4, 2023
1 parent 3eb68c0 commit 1c8934e
Show file tree
Hide file tree
Showing 3 changed files with 39 additions and 114 deletions.
29 changes: 0 additions & 29 deletions src/adaptors/web/notion/useNotionWeb.ts

This file was deleted.

27 changes: 0 additions & 27 deletions src/adaptors/web/yuque/useYuqueWeb.ts

This file was deleted.

97 changes: 39 additions & 58 deletions src/components/set/PublishSetting.vue
Original file line number Diff line number Diff line change
Expand Up @@ -30,12 +30,13 @@ import { Delete, Lock, Tools, WarningFilled } from "@element-plus/icons-vue"
import { useSettingStore } from "~/src/stores/useSettingStore.ts"
import { SypConfig } from "~/syp.config.ts"
import { createAppLogger } from "~/src/utils/appLogger.ts"
import { JsonUtil, StrUtil } from "zhi-common"
import { JsonUtil } from "zhi-common"
import {
AuthMode,
deletePlatformByKey,
DynamicConfig,
DynamicJsonCfg,
isDynamicKeyExists,
PlatformType,
replacePlatformByKey,
setDynamicJsonCfg,
Expand All @@ -53,6 +54,8 @@ import { ElectronCookie, WebConfig } from "zhi-blog-api"
import { useSiyuanDevice } from "~/src/composables/useSiyuanDevice.ts"
import CookieSetting from "~/src/components/set/publish/singleplatform/base/CookieSetting.vue"
import { CommonWebConfig } from "~/src/adaptors/web/base/commonWebConfig.ts"
import { pre } from "~/src/utils/import/pre.ts"
import _ from "lodash"
const logger = createAppLogger("publish-setting")
Expand All @@ -73,7 +76,7 @@ const formData = reactive({
dynamicConfigArray: [] as DynamicConfig[],
webAuthLoadingMap: {} as any,
isUpgradeLoading: false,
isImportLoading: false,
showLogMessage: false,
logMessage: "",
Expand Down Expand Up @@ -357,64 +360,44 @@ const _handleValidateCookieAuth = async (cfg: DynamicConfig) => {
const handleHideCookieDlg = () => {
formData.cookieSettingFormVisible = false
}
const handleImportPre = () => {
ElMessage.info("开发中,敬请期待,您可以自行前往 [新增平台] 选择添加")
}
const checkAndUpgradeSetting = async (setting: Partial<typeof SypConfig>) => {
let isUpgrade = false
let logText = ""
// 单个大类导入
const basicImport = (importCfgs: DynamicConfig[]) => {
for (const importCfg of importCfgs) {
const pkey = importCfg.platformKey
const pkeyExist = isDynamicKeyExists(formData.dynamicConfigArray, pkey)
if (pkeyExist) {
formData.logMessage += `${pkey} 已经存在,忽略导入\n`
continue
}
const logMessage = (message: string) => {
logger.info(message)
logText += `\n${message}`
}
const newCfg = _.cloneDeep(importCfg)
formData.dynamicConfigArray.push(newCfg)
formData.logMessage += `${pkey} 已加入导入列表\n`
logMessage(t("setting.upgrade.syp.doTip1"))
if (StrUtil.isEmptyString(setting.version)) {
logMessage(t("setting.upgrade.syp.doTip2"))
// TODO 迁移旧配置
// 读取旧的配置文件
// 数据转换适配
// 更新最新版本号
logMessage("TODO,开发中,敬请期待")
// setting.version = version
//
// await updateSetting(setting)
//
// logMessage(t("setting.upgrade.syp.doTip3"))
// isUpgrade = true
} else {
logMessage(t("setting.upgrade.syp.doTip4"))
// 初始化一个空配置
formData.setting[newCfg.platformKey] = {}
formData.logMessage += `${pkey} 初始化\n`
}
return { isUpgrade, logText }
}
const handleCheckAndUpgrade = async () => {
formData.isUpgradeLoading = true
const handleImportPre = async () => {
formData.showLogMessage = true
formData.logMessage = ""
formData.isImportLoading = true
try {
formData.logMessage += `${t("setting.upgrade.syp.tip1")}`
const { isUpgrade, logText } = await checkAndUpgradeSetting(formData.setting)
formData.logMessage += logText
if (isUpgrade) {
formData.logMessage += `\n${t("setting.upgrade.syp.tip2")}`
} else {
formData.logMessage += `\n${t("setting.upgrade.syp.tip3")}`
}
ElMessage.success(t("main.opt.success"))
} catch (e) {
formData.logMessage += `\n${t("setting.upgrade.syp.tip4")}` + e
ElMessage.error(t("main.opt.failure") + "=>" + e)
logger.error(t("main.opt.failure") + "=>", e)
}
formData.logMessage += `\n${t("setting.upgrade.syp.tip5")}`
formData.isUpgradeLoading = false
// 大类导入
basicImport(pre.commonCfg)
basicImport(pre.githubCfg)
basicImport(pre.gitlabCfg)
basicImport(pre.metaweblogCfg)
basicImport(pre.customCfg)
// 转换格式并保存
const dynJsonCfg = setDynamicJsonCfg(formData.dynamicConfigArray)
formData.setting[DYNAMIC_CONFIG_KEY] = dynJsonCfg
await updateSetting(formData.setting)
formData.isImportLoading = false
formData.logMessage += `全部导入成功并保存\n`
}
const initPage = async () => {
Expand Down Expand Up @@ -594,15 +577,13 @@ onMounted(async () => {
<el-row>
<el-col>
<div class="import-pre-action">
<el-button size="small" type="primary" @click="handleImportPre">导入预定义平台</el-button>
<el-button
size="small"
type="danger"
:loading="formData.isUpgradeLoading"
@click="handleCheckAndUpgrade"
type="primary"
:loading="formData.isImportLoading"
@click="handleImportPre"
>导入预定义平台</el-button
>
检测并迁移历史配置
</el-button>
</div>
<div class="log-message-box">
<el-input
Expand Down

0 comments on commit 1c8934e

Please sign in to comment.