diff --git a/packages/geek-auto-start-chat-with-boss/sage-time.mjs b/packages/geek-auto-start-chat-with-boss/sage-time.mjs index cd45cf5..5a6445d 100644 --- a/packages/geek-auto-start-chat-with-boss/sage-time.mjs +++ b/packages/geek-auto-start-chat-with-boss/sage-time.mjs @@ -1,16 +1,38 @@ +import { readConfigFile } from './runtime-file-utils.mjs' import { sleep } from "@geekgeekrun/utils/sleep.mjs" +let { + isSageTimeEnabled, + sageTimeOpTimes, + sageTimePauseMinute, +} = readConfigFile('boss.json') +isSageTimeEnabled = isSageTimeEnabled ?? true +sageTimeOpTimes = + isNaN(parseInt(sageTimeOpTimes)) || + parseInt(sageTimeOpTimes) < 1 + ? 50 + : parseInt(sageTimeOpTimes) +sageTimePauseMinute = + isNaN(parseFloat(sageTimePauseMinute)) || + parseFloat(sageTimePauseMinute) < 0 + ? 5 + : parseFloat(sageTimePauseMinute) +if (parseFloat(sageTimePauseMinute) === 0) { + isSageTimeEnabled = false +} let totalEnabledTimes = 0 - let recordedOpCount = 0 export const waitForSageTimeOrJustContinue = async ({ tag } = {}) => { + if (!isSageTimeEnabled) { + return + } const tagText = tag ? ` ${tag}` : '' - if (recordedOpCount > 50) { + if (recordedOpCount > sageTimeOpTimes) { totalEnabledTimes++ console.log(`[SageTime${tagText}] 请求已达限制,开启;当前记录次数 ${recordedOpCount};第 ${totalEnabledTimes} 次开启`) - await sleep(5 * 60 * 1000) + await sleep(sageTimePauseMinute * 60 * 1000) console.log(`[SageTime${tagText}] 请求限制已解除,关闭;当前记录次数 ${recordedOpCount};第 ${totalEnabledTimes} 次关闭`) recordedOpCount = 0 } diff --git a/packages/ui/src/main/flow/OPEN_SETTING_WINDOW/ipc/index.ts b/packages/ui/src/main/flow/OPEN_SETTING_WINDOW/ipc/index.ts index a3f78b3..5b30682 100644 --- a/packages/ui/src/main/flow/OPEN_SETTING_WINDOW/ipc/index.ts +++ b/packages/ui/src/main/flow/OPEN_SETTING_WINDOW/ipc/index.ts @@ -166,6 +166,15 @@ export default function initIpc() { bossConfig.staticCombineRecommendJobFilterConditions = payload.staticCombineRecommendJobFilterConditions } + if (hasOwn(payload, 'isSageTimeEnabled')) { + bossConfig.isSageTimeEnabled = payload.isSageTimeEnabled + } + if (hasOwn(payload, 'sageTimeOpTimes')) { + bossConfig.sageTimeOpTimes = payload.sageTimeOpTimes + } + if (hasOwn(payload, 'sageTimePauseMinute')) { + bossConfig.sageTimePauseMinute = payload.sageTimePauseMinute + } promiseArr.push(writeConfigFile('boss.json', bossConfig)) diff --git a/packages/ui/src/renderer/src/page/MainLayout/GeekAutoStartChatWithBoss/index.vue b/packages/ui/src/renderer/src/page/MainLayout/GeekAutoStartChatWithBoss/index.vue index 1298296..d9fca57 100644 --- a/packages/ui/src/renderer/src/page/MainLayout/GeekAutoStartChatWithBoss/index.vue +++ b/packages/ui/src/renderer/src/page/MainLayout/GeekAutoStartChatWithBoss/index.vue @@ -8,7 +8,7 @@
- +
BOSS直聘 Cookie
+
+
摸鱼模式
+
+ 启用摸鱼模式 +
+
+
+ 当如下行为的次数总计达 + + + + 次时,暂停运行 + + + + 分钟;之后继续运行并重新计次,循环整个过程 +
    +
  • 职位来源变更
  • +
  • 职位列表滚动后发生加载
  • +
  • 职位详情加载
  • +
  • 职位被标记不合适
  • +
  • 职位被开聊
  • +
+
+ +
+
@@ -1035,7 +1087,10 @@ const formContent = ref({ type: 'expect', enabled: true } - ]) + ]), + isSageTimeEnabled: true, + sageTimeOpTimes: 50, + sageTimePauseMinute: 5 }) const anyCombineBossRecommendFilterHasCondition = computed(() => { @@ -1182,6 +1237,17 @@ electron.ipcRenderer.invoke('fetch-config-file-content').then((res) => { formContent.value.__jobSourceList = formatJobSourceConfigToFormValue( res.config['boss.json'].jobSourceList || [] ) + formContent.value.isSageTimeEnabled = res.config['boss.json'].isSageTimeEnabled ?? true + formContent.value.sageTimeOpTimes = + isNaN(parseInt(res.config['boss.json'].sageTimeOpTimes)) || + parseInt(res.config['boss.json'].sageTimeOpTimes) < 1 + ? 50 + : parseInt(res.config['boss.json'].sageTimeOpTimes) + formContent.value.sageTimePauseMinute = + isNaN(parseFloat(res.config['boss.json'].sageTimePauseMinute)) || + parseFloat(res.config['boss.json'].sageTimePauseMinute) < 0 + ? 5 + : parseFloat(res.config['boss.json'].sageTimePauseMinute) }) const jobSourceFormItemSectionEl = ref() @@ -1274,6 +1340,32 @@ const formRules = { } cb() } + }, + sageTimeOpTimes: { + validator(_, value, cb) { + if (!formContent.value.isSageTimeEnabled) { + cb() + return + } + if (value < 1 || isNaN(parseInt(value))) { + cb(new Error(`最小值为1,请重试`)) + return + } + cb() + } + }, + sageTimePauseMinute: { + validator(_, value, cb) { + if (!formContent.value.isSageTimeEnabled) { + cb() + return + } + if (value < 0 || isNaN(parseFloat(value))) { + cb(new Error(`最小值为0,请重试`)) + return + } + cb() + } } }