diff --git a/packages/geek-auto-start-chat-with-boss/runtime-file-utils.mjs b/packages/geek-auto-start-chat-with-boss/runtime-file-utils.mjs index 01c9db6..a7a4a07 100644 --- a/packages/geek-auto-start-chat-with-boss/runtime-file-utils.mjs +++ b/packages/geek-auto-start-chat-with-boss/runtime-file-utils.mjs @@ -130,3 +130,12 @@ export const readStorageFile = (fileName) => { return o } + +export const writeStorageFile = async (fileName, content) => { + const filePath = path.join(storageFilePath, fileName) + const fileContent = JSON.stringify(content) + return fsPromise.writeFile( + filePath, + fileContent + ) +} diff --git a/packages/ui/src/main/window/mainWindow.ts b/packages/ui/src/main/window/mainWindow.ts index 7923075..b3f65a8 100644 --- a/packages/ui/src/main/window/mainWindow.ts +++ b/packages/ui/src/main/window/mainWindow.ts @@ -3,10 +3,16 @@ import path from 'path' import * as childProcess from 'node:child_process' import { is } from '@electron-toolkit/utils' import { - readConfigFile, - configFileNameList, ensureConfigFileExist, - writeConfigFile + ensureStorageFileExist, + + configFileNameList, + readConfigFile, + writeConfigFile, + + storageFileNameList, + readStorageFile, + writeStorageFile } from '@geekgeekrun/geek-auto-start-chat-with-boss/runtime-file-utils.mjs' import { ChildProcess } from 'child_process' import * as JSONStream from 'JSONStream' @@ -54,29 +60,38 @@ export function createMainWindow(): void { } ipcMain.handle('fetch-config-file-content', async () => { - const fileContentList = configFileNameList.map((fileName) => { + const configFileContentList = configFileNameList.map((fileName) => { return readConfigFile(fileName) }) - const result = {} + const storageFileContentList = storageFileNameList.map((fileName) => { + return readStorageFile(fileName) + }) + const result = { + config: {}, + storage: {} + } configFileNameList.forEach((fileName, index) => { - result[fileName] = fileContentList[index] + result.config[fileName] = configFileContentList[index] }) + + storageFileNameList.forEach((fileName, index) => { + result.storage[fileName] = storageFileContentList[index] + }) + return result }) ipcMain.handle('save-config-file-from-ui', async (ev, payload) => { payload = JSON.parse(payload) ensureConfigFileExist() + ensureStorageFileExist() const dingtalkConfig = readConfigFile('dingtalk.json') dingtalkConfig.groupRobotAccessToken = payload.dingtalkRobotAccessToken - const bossZhipinConfig = readConfigFile('boss.json') - bossZhipinConfig.cookies = JSON.parse(payload.bossZhipinCookies) - return await Promise.all([ - writeConfigFile('boss.json', bossZhipinConfig), + writeStorageFile('boss-cookies.json', JSON.parse(payload.bossZhipinCookies)), writeConfigFile('dingtalk.json', dingtalkConfig), writeConfigFile('target-company-list.json', payload.expectCompanies.split(',')) ]) diff --git a/packages/ui/src/renderer/src/page/Configuration/GeekAutoStartChatWithBoss.vue b/packages/ui/src/renderer/src/page/Configuration/GeekAutoStartChatWithBoss.vue index d1fc705..cf7c09c 100644 --- a/packages/ui/src/renderer/src/page/Configuration/GeekAutoStartChatWithBoss.vue +++ b/packages/ui/src/renderer/src/page/Configuration/GeekAutoStartChatWithBoss.vue @@ -45,9 +45,9 @@ const formContent = ref({ electron.ipcRenderer.invoke('fetch-config-file-content').then((res) => { console.log(res) - formContent.value.bossZhipinCookies = JSON.stringify(res['boss.json'].cookies, null, 2) - formContent.value.dingtalkRobotAccessToken = res['dingtalk.json']['groupRobotAccessToken'] - formContent.value.expectCompanies = res['target-company-list.json'].join(',') + formContent.value.bossZhipinCookies = JSON.stringify(res.storage['boss-cookies.json'], null, 2) + formContent.value.dingtalkRobotAccessToken = res.config['dingtalk.json']['groupRobotAccessToken'] + formContent.value.expectCompanies = res.config['target-company-list.json'].join(',') }) const formRules = {