From 6ce92af18994dc2585a77f305ecddd8a46d31070 Mon Sep 17 00:00:00 2001 From: geekgeekrun Date: Sun, 10 Mar 2024 23:50:11 +0800 Subject: [PATCH] fix ui project issue that once throw error, browser never restart; add the time gap for next time when encounter error. --- packages/geek-auto-start-chat-with-boss/index.mjs | 8 ++------ .../run-core-of-geek-auto-start-chat-with-boss/index.mjs | 8 +++++++- .../src/main/flow/GEEK_AUTO_START_CHAT_WITH_BOSS/index.ts | 4 ++-- 3 files changed, 11 insertions(+), 9 deletions(-) diff --git a/packages/geek-auto-start-chat-with-boss/index.mjs b/packages/geek-auto-start-chat-with-boss/index.mjs index c1758be..5eb0e86 100644 --- a/packages/geek-auto-start-chat-with-boss/index.mjs +++ b/packages/geek-auto-start-chat-with-boss/index.mjs @@ -84,18 +84,14 @@ export async function mainLoop (hooks) { }) hooks.puppeteerLaunched?.call() - page = await browser.newPage() - sleep(2000).then(() => { - page.bringToFront() - }) - + page = (await browser.pages())[0] //set cookies hooks.cookieWillSet?.call(bossCookies) for(let i = 0; i < bossCookies.length; i++){ await page.setCookie(bossCookies[i]); } await setDomainLocalStorage(browser, localStoragePageUrl, bossLocalStorage) - + await page.bringToFront() let userInfoResponse await Promise.all([ page.goto(recommendJobPageUrl, { timeout: 0 }), diff --git a/packages/run-core-of-geek-auto-start-chat-with-boss/index.mjs b/packages/run-core-of-geek-auto-start-chat-with-boss/index.mjs index 0a21dba..641b305 100644 --- a/packages/run-core-of-geek-auto-start-chat-with-boss/index.mjs +++ b/packages/run-core-of-geek-auto-start-chat-with-boss/index.mjs @@ -9,6 +9,7 @@ import path from 'node:path' import { get__dirname } from '@geekgeekrun/utils/legacy-path.mjs'; import JSON5 from 'json5' import { readConfigFile, readStorageFile } from '@geekgeekrun/geek-auto-start-chat-with-boss/runtime-file-utils.mjs' +import { sleep } from '@geekgeekrun/utils/sleep.mjs' const bossCookies = readStorageFile('boss-cookies.json') const { groupRobotAccessToken: dingTalkAccessToken } = readConfigFile('dingtalk.json') @@ -36,7 +37,12 @@ const initPlugins = (hooks) => { try { await mainLoop(hooks) } catch (err) { - console.error(err) + console.log(err) + if (err instanceof Error && err.message.includes('LOGIN_STATUS_INVALID')) { + process.exit(2) + break + } + await sleep(3000) } } })() \ No newline at end of file diff --git a/packages/ui/src/main/flow/GEEK_AUTO_START_CHAT_WITH_BOSS/index.ts b/packages/ui/src/main/flow/GEEK_AUTO_START_CHAT_WITH_BOSS/index.ts index 1dbc345..1a051ed 100644 --- a/packages/ui/src/main/flow/GEEK_AUTO_START_CHAT_WITH_BOSS/index.ts +++ b/packages/ui/src/main/flow/GEEK_AUTO_START_CHAT_WITH_BOSS/index.ts @@ -5,6 +5,7 @@ import { readConfigFile } from '@geekgeekrun/geek-auto-start-chat-with-boss/runt import * as fs from 'fs' import { pipeWriteRegardlessError } from '../utils/pipe' import { getAnyAvailablePuppeteerExecutable } from '../CHECK_AND_DOWNLOAD_DEPENDENCIES/utils/puppeteer-executable' +import { sleep } from '@geekgeekrun/utils/sleep.mjs' const { groupRobotAccessToken: dingTalkAccessToken } = readConfigFile('dingtalk.json') @@ -91,9 +92,8 @@ export const runAutoChat = async () => { if (err instanceof Error && err.message.includes('LOGIN_STATUS_INVALID')) { process.exit(2) break - } else { - throw err } + await sleep(3000) } } closeBrowserWindow()