mirror of
https://github.com/geekgeekrun/geekgeekrun.git
synced 2026-09-08 17:09:07 +08:00
replace cookie input with cookie assistant entry on configuration page
This commit is contained in:
@@ -69,35 +69,25 @@ export function createMainWindow(): void {
|
|||||||
const configFileContentList = configFileNameList.map((fileName) => {
|
const configFileContentList = configFileNameList.map((fileName) => {
|
||||||
return readConfigFile(fileName)
|
return readConfigFile(fileName)
|
||||||
})
|
})
|
||||||
const storageFileContentList = storageFileNameList.map((fileName) => {
|
|
||||||
return readStorageFile(fileName)
|
|
||||||
})
|
|
||||||
const result = {
|
const result = {
|
||||||
config: {},
|
config: {},
|
||||||
storage: {}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
configFileNameList.forEach((fileName, index) => {
|
configFileNameList.forEach((fileName, index) => {
|
||||||
result.config[fileName] = configFileContentList[index]
|
result.config[fileName] = configFileContentList[index]
|
||||||
})
|
})
|
||||||
|
|
||||||
storageFileNameList.forEach((fileName, index) => {
|
|
||||||
result.storage[fileName] = storageFileContentList[index]
|
|
||||||
})
|
|
||||||
|
|
||||||
return result
|
return result
|
||||||
})
|
})
|
||||||
|
|
||||||
ipcMain.handle('save-config-file-from-ui', async (ev, payload) => {
|
ipcMain.handle('save-config-file-from-ui', async (ev, payload) => {
|
||||||
payload = JSON.parse(payload)
|
payload = JSON.parse(payload)
|
||||||
ensureConfigFileExist()
|
ensureConfigFileExist()
|
||||||
ensureStorageFileExist()
|
|
||||||
|
|
||||||
const dingtalkConfig = readConfigFile('dingtalk.json')
|
const dingtalkConfig = readConfigFile('dingtalk.json')
|
||||||
dingtalkConfig.groupRobotAccessToken = payload.dingtalkRobotAccessToken
|
dingtalkConfig.groupRobotAccessToken = payload.dingtalkRobotAccessToken
|
||||||
|
|
||||||
return await Promise.all([
|
return await Promise.all([
|
||||||
writeStorageFile('boss-cookies.json', JSON.parse(payload.bossZhipinCookies)),
|
|
||||||
writeConfigFile('dingtalk.json', dingtalkConfig),
|
writeConfigFile('dingtalk.json', dingtalkConfig),
|
||||||
writeConfigFile('target-company-list.json', payload.expectCompanies.split(','))
|
writeConfigFile('target-company-list.json', payload.expectCompanies.split(','))
|
||||||
])
|
])
|
||||||
|
|||||||
@@ -1,26 +1,10 @@
|
|||||||
<template>
|
<template>
|
||||||
<div class="form-wrap">
|
<div class="form-wrap">
|
||||||
<el-form ref="formRef" :model="formContent" label-position="top" :rules="formRules">
|
<el-form ref="formRef" :model="formContent" label-position="top" :rules="formRules">
|
||||||
<el-form-item label="BOSS直聘 Cookie" prop="bossZhipinCookies">
|
<el-form-item label="BOSS直聘 Cookie">
|
||||||
<div class="description" font-size-0.8em>
|
<el-button size="small" type="primary" font-size-inherit @click="handleClickLaunchLogin"
|
||||||
<div>Cookie 是您访问BOSS直聘聊天功能的凭据。</div>
|
>Cookie助手</el-button
|
||||||
<div>
|
>
|
||||||
本程序承诺,<b style="color: #e40">您的Cookie仅在您的PC与BOSS直聘网站之间存储、传递</b
|
|
||||||
>,不做其它用途;请放心填写
|
|
||||||
</div>
|
|
||||||
<!-- <div>操作过程中,本程序缓存的 Boss直聘 Cookie 会被自动更新</div> -->
|
|
||||||
<div>
|
|
||||||
如果您不清楚如何操作您可
|
|
||||||
<el-button size="small" type="primary" font-size-inherit @click="handleClickLaunchLogin"
|
|
||||||
>点击此处打开BOSS直聘 Cookie助手</el-button
|
|
||||||
>来帮您填写。
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<el-input
|
|
||||||
v-model="formContent.bossZhipinCookies"
|
|
||||||
:autosize="{ minRows: 4 }"
|
|
||||||
type="textarea"
|
|
||||||
/>
|
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="钉钉机器人 AccessToken" prop="dingtalkRobotAccessToken">
|
<el-form-item label="钉钉机器人 AccessToken" prop="dingtalkRobotAccessToken">
|
||||||
<el-input v-model="formContent.dingtalkRobotAccessToken" />
|
<el-input v-model="formContent.dingtalkRobotAccessToken" />
|
||||||
@@ -43,48 +27,23 @@
|
|||||||
|
|
||||||
<script setup lang="ts">
|
<script setup lang="ts">
|
||||||
import { ref } from 'vue'
|
import { ref } from 'vue'
|
||||||
import JSON5 from 'json5'
|
|
||||||
import { ElForm, ElMessage } from 'element-plus'
|
import { ElForm, ElMessage } from 'element-plus'
|
||||||
import router from '../../router/index'
|
import router from '../../router/index'
|
||||||
import { mountGlobalDialog as mountDependenciesSetupProgressIndicatorDialog } from '@renderer/features/DependenciesSetupProgressIndicatorDialog/operations'
|
import { mountGlobalDialog as mountDependenciesSetupProgressIndicatorDialog } from '@renderer/features/DependenciesSetupProgressIndicatorDialog/operations'
|
||||||
import { mountGlobalDialog as mountWaitForLoginDialog } from '@renderer/features/WaitForLoginDialog/operations'
|
import { mountGlobalDialog as mountWaitForLoginDialog } from '@renderer/features/WaitForLoginDialog/operations'
|
||||||
|
|
||||||
const formContent = ref({
|
const formContent = ref({
|
||||||
bossZhipinCookies: '',
|
|
||||||
dingtalkRobotAccessToken: '',
|
dingtalkRobotAccessToken: '',
|
||||||
expectCompanies: ''
|
expectCompanies: ''
|
||||||
})
|
})
|
||||||
|
|
||||||
electron.ipcRenderer.invoke('fetch-config-file-content').then((res) => {
|
electron.ipcRenderer.invoke('fetch-config-file-content').then((res) => {
|
||||||
console.log(res)
|
console.log(res)
|
||||||
formContent.value.bossZhipinCookies = JSON.stringify(res.storage['boss-cookies.json'], null, 2)
|
|
||||||
formContent.value.dingtalkRobotAccessToken = res.config['dingtalk.json']['groupRobotAccessToken']
|
formContent.value.dingtalkRobotAccessToken = res.config['dingtalk.json']['groupRobotAccessToken']
|
||||||
formContent.value.expectCompanies = res.config['target-company-list.json'].join(',')
|
formContent.value.expectCompanies = res.config['target-company-list.json'].join(',')
|
||||||
})
|
})
|
||||||
|
|
||||||
const formRules = {
|
const formRules = {
|
||||||
bossZhipinCookies: [
|
|
||||||
{
|
|
||||||
required: true
|
|
||||||
},
|
|
||||||
{
|
|
||||||
trigger: 'blur',
|
|
||||||
validator(rule, val, cb) {
|
|
||||||
let arr
|
|
||||||
try {
|
|
||||||
arr = JSON5.parse(val)
|
|
||||||
} catch (err) {
|
|
||||||
cb(new Error(`JSON content is invalid: ${err.message}`))
|
|
||||||
return
|
|
||||||
}
|
|
||||||
if (!Array.isArray(arr) || !arr.length) {
|
|
||||||
cb(new Error(`Invalid cookies. Please copy with EditThisCookie extension`))
|
|
||||||
return
|
|
||||||
}
|
|
||||||
cb()
|
|
||||||
}
|
|
||||||
}
|
|
||||||
]
|
|
||||||
}
|
}
|
||||||
|
|
||||||
const formRef = ref<InstanceType<typeof ElForm>>()
|
const formRef = ref<InstanceType<typeof ElForm>>()
|
||||||
@@ -136,7 +95,7 @@ const handleClickLaunchLogin = () => {
|
|||||||
|
|
||||||
<style scoped lang="scss">
|
<style scoped lang="scss">
|
||||||
.form-wrap {
|
.form-wrap {
|
||||||
padding-top: 100px;
|
padding-top: 60px;
|
||||||
margin: 0 auto;
|
margin: 0 auto;
|
||||||
max-width: 640px;
|
max-width: 640px;
|
||||||
.last-form-item {
|
.last-form-item {
|
||||||
|
|||||||
Reference in New Issue
Block a user