when current account is limited, throw error directly

This commit is contained in:
geekgeekrun
2024-03-15 09:25:20 +08:00
parent 2339b2565e
commit 44aa73e18c
@@ -92,22 +92,27 @@ export async function mainLoop (hooks) {
} }
await setDomainLocalStorage(browser, localStoragePageUrl, bossLocalStorage) await setDomainLocalStorage(browser, localStoragePageUrl, bossLocalStorage)
await page.bringToFront() await page.bringToFront()
let userInfoResponse let userInfoPromise = page.waitForResponse((response) => {
await Promise.all([
page.goto(recommendJobPageUrl, { timeout: 0 }),
page.waitForResponse((response) => {
if (response.url().startsWith('https://www.zhipin.com/wapi/zpuser/wap/getUserInfo.json')) { if (response.url().startsWith('https://www.zhipin.com/wapi/zpuser/wap/getUserInfo.json')) {
return true return true
} }
return false return false
}).then((res) => { }).then((res) => {
return res.json() return res.json()
}).then((res) => { })
userInfoResponse = res await Promise.all([
}), page.goto(recommendJobPageUrl, { timeout: 60 * 1000 }),
page.waitForNavigation(), page.waitForNavigation(),
]) ])
if (
page.url().startsWith('https://www.zhipin.com/web/common/403.html') ||
page.url().startsWith('https://www.zhipin.com/web/common/error.html')
) {
throw new Error("ACCESS_IS_DENIED")
}
hooks.pageLoaded?.call() hooks.pageLoaded?.call()
let userInfoResponse = await userInfoPromise
hooks.userInfoResponse?.call(userInfoResponse) hooks.userInfoResponse?.call(userInfoResponse)
if (userInfoResponse.code !== 0) { if (userInfoResponse.code !== 0) {
@@ -354,14 +359,16 @@ export async function mainLoop (hooks) {
// ;await browser.close() // ;await browser.close()
} catch (err) { } catch (err) {
closeBrowserWindow() closeBrowserWindow()
console.error(err)
throw err throw err
} }
} }
export async function closeBrowserWindow () { export async function closeBrowserWindow () {
browser?.close() browser?.close()
const browserProcess = browser?.process()
if (browserProcess) {
process.kill(browserProcess.pid)
}
browser = null browser = null
page = null page = null
} }