mirror of
https://github.com/geekgeekrun/geekgeekrun.git
synced 2026-09-07 00:17:17 +08:00
bypass anti debug of target site
This commit is contained in:
+2
-1
@@ -15,9 +15,10 @@
|
|||||||
"dayjs": "^1.11.10",
|
"dayjs": "^1.11.10",
|
||||||
"json5": "^2.2.3",
|
"json5": "^2.2.3",
|
||||||
"minimist": "^1.2.8",
|
"minimist": "^1.2.8",
|
||||||
"puppeteer": "20.1.0",
|
"puppeteer": "24.19.0",
|
||||||
"puppeteer-extra": "3.3.6",
|
"puppeteer-extra": "3.3.6",
|
||||||
"puppeteer-extra-plugin-stealth": "2.11.2",
|
"puppeteer-extra-plugin-stealth": "2.11.2",
|
||||||
|
"@geekgeekrun/puppeteer-extra-plugin-laodeng": "workspace:*",
|
||||||
"rimraf": "^3.0.2",
|
"rimraf": "^3.0.2",
|
||||||
"tapable": "^2.2.1"
|
"tapable": "^2.2.1"
|
||||||
},
|
},
|
||||||
|
|||||||
@@ -73,21 +73,26 @@ export const autoStartChatEventBus = new EventEmitter()
|
|||||||
*/
|
*/
|
||||||
let puppeteer
|
let puppeteer
|
||||||
let StealthPlugin
|
let StealthPlugin
|
||||||
|
let LaodengPlugin
|
||||||
export async function initPuppeteer () {
|
export async function initPuppeteer () {
|
||||||
// production
|
// production
|
||||||
const importResult = await Promise.all(
|
const importResult = await Promise.all(
|
||||||
[
|
[
|
||||||
import('puppeteer-extra'),
|
import('puppeteer-extra'),
|
||||||
import('puppeteer-extra-plugin-stealth')
|
import('puppeteer-extra-plugin-stealth'),
|
||||||
|
import('@geekgeekrun/puppeteer-extra-plugin-laodeng')
|
||||||
]
|
]
|
||||||
)
|
)
|
||||||
puppeteer = importResult[0].default
|
puppeteer = importResult[0].default
|
||||||
StealthPlugin = importResult[1].default
|
StealthPlugin = importResult[1].default
|
||||||
|
LaodengPlugin = importResult[2].default
|
||||||
puppeteer.use(StealthPlugin())
|
puppeteer.use(StealthPlugin())
|
||||||
|
puppeteer.use(LaodengPlugin())
|
||||||
|
|
||||||
return {
|
return {
|
||||||
puppeteer,
|
puppeteer,
|
||||||
StealthPlugin
|
StealthPlugin,
|
||||||
|
LaodengPlugin
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1472,6 +1477,7 @@ export async function mainLoop (hooks) {
|
|||||||
}
|
}
|
||||||
await setDomainLocalStorage(browser, localStoragePageUrl, bossLocalStorage)
|
await setDomainLocalStorage(browser, localStoragePageUrl, bossLocalStorage)
|
||||||
await page.bringToFront()
|
await page.bringToFront()
|
||||||
|
// __GGR_INJECT_ANTI_ANTI_DEBUGGER__
|
||||||
await hooks.mainFlowWillLaunch?.promise({
|
await hooks.mainFlowWillLaunch?.promise({
|
||||||
jobNotMatchStrategy,
|
jobNotMatchStrategy,
|
||||||
jobNotActiveStrategy,
|
jobNotActiveStrategy,
|
||||||
|
|||||||
File diff suppressed because one or more lines are too long
@@ -0,0 +1,29 @@
|
|||||||
|
{
|
||||||
|
"name": "@geekgeekrun/puppeteer-extra-plugin-laodeng",
|
||||||
|
"version": "0.0.1",
|
||||||
|
"description": "laodeng",
|
||||||
|
"main": "./index.js",
|
||||||
|
"author": "geekgeekrun",
|
||||||
|
"productName": "GeekGeekRun",
|
||||||
|
"homepage": "https://github.com/geekgeekrun",
|
||||||
|
"scripts": {},
|
||||||
|
"devDependencies": {
|
||||||
|
"puppeteer": "^24.19.0"
|
||||||
|
},
|
||||||
|
"dependencies": {
|
||||||
|
"puppeteer-extra": "^3.3.6",
|
||||||
|
"puppeteer-extra-plugin": "^3.2.3"
|
||||||
|
},
|
||||||
|
"peerDependencies": {
|
||||||
|
"playwright-extra": "*",
|
||||||
|
"puppeteer-extra": "*"
|
||||||
|
},
|
||||||
|
"peerDependenciesMeta": {
|
||||||
|
"puppeteer-extra": {
|
||||||
|
"optional": true
|
||||||
|
},
|
||||||
|
"playwright-extra": {
|
||||||
|
"optional": true
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -33,6 +33,7 @@
|
|||||||
"@geekgeekrun/dingtalk-plugin": "workspace:*",
|
"@geekgeekrun/dingtalk-plugin": "workspace:*",
|
||||||
"@geekgeekrun/geek-auto-start-chat-with-boss": "workspace:*",
|
"@geekgeekrun/geek-auto-start-chat-with-boss": "workspace:*",
|
||||||
"@geekgeekrun/launch-bosszhipin-login-page-with-preload-extension": "workspace:*",
|
"@geekgeekrun/launch-bosszhipin-login-page-with-preload-extension": "workspace:*",
|
||||||
|
"@geekgeekrun/puppeteer-extra-plugin-laodeng": "workspace:*",
|
||||||
"@geekgeekrun/sqlite-plugin": "workspace:*",
|
"@geekgeekrun/sqlite-plugin": "workspace:*",
|
||||||
"@geekgeekrun/utils": "workspace:*",
|
"@geekgeekrun/utils": "workspace:*",
|
||||||
"JSONStream": "^1.3.5",
|
"JSONStream": "^1.3.5",
|
||||||
@@ -43,7 +44,7 @@
|
|||||||
"mitt": "^3.0.1",
|
"mitt": "^3.0.1",
|
||||||
"node-machine-id": "^1.1.12",
|
"node-machine-id": "^1.1.12",
|
||||||
"pinia": "^3.0.2",
|
"pinia": "^3.0.2",
|
||||||
"puppeteer": "20.1.0",
|
"puppeteer": "24.19.0",
|
||||||
"puppeteer-extra-plugin-stealth": "2.11.2",
|
"puppeteer-extra-plugin-stealth": "2.11.2",
|
||||||
"uuid": "^11.1.0",
|
"uuid": "^11.1.0",
|
||||||
"vuedraggable": "^4.1.0"
|
"vuedraggable": "^4.1.0"
|
||||||
@@ -54,7 +55,7 @@
|
|||||||
"@electron-toolkit/tsconfig": "^1.0.1",
|
"@electron-toolkit/tsconfig": "^1.0.1",
|
||||||
"@inquirer/prompts": "^7.0.1",
|
"@inquirer/prompts": "^7.0.1",
|
||||||
"@inquirer/select": "^4.0.1",
|
"@inquirer/select": "^4.0.1",
|
||||||
"@puppeteer/browsers": "^2.0.0",
|
"@puppeteer/browsers": "^2.11.0",
|
||||||
"@rushstack/eslint-patch": "^1.7.1",
|
"@rushstack/eslint-patch": "^1.7.1",
|
||||||
"@types/node": "^18.19.9",
|
"@types/node": "^18.19.9",
|
||||||
"@unocss/preset-attributify": "^0.58.5",
|
"@unocss/preset-attributify": "^0.58.5",
|
||||||
@@ -88,4 +89,4 @@
|
|||||||
"vue-router": "^4.2.5",
|
"vue-router": "^4.2.5",
|
||||||
"vue-tsc": "^1.8.27"
|
"vue-tsc": "^1.8.27"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -8,6 +8,8 @@ export interface BrowserInfo {
|
|||||||
executablePath: string
|
executablePath: string
|
||||||
}
|
}
|
||||||
|
|
||||||
|
const CONFIG_VSERION = 2
|
||||||
|
|
||||||
const runtimeFolderPath = path.join(os.homedir(), '.geekgeekrun')
|
const runtimeFolderPath = path.join(os.homedir(), '.geekgeekrun')
|
||||||
export const lastUsedBrowserRecordFilePath = path.join(
|
export const lastUsedBrowserRecordFilePath = path.join(
|
||||||
runtimeFolderPath,
|
runtimeFolderPath,
|
||||||
@@ -28,8 +30,13 @@ export const getLastUsedAndAvailableBrowser = async (): Promise<BrowserInfo | nu
|
|||||||
}
|
}
|
||||||
try {
|
try {
|
||||||
const fileContent = (await fsPromise.readFile(lastUsedBrowserRecordFilePath)).toString()
|
const fileContent = (await fsPromise.readFile(lastUsedBrowserRecordFilePath)).toString()
|
||||||
const [path, browser] = fileContent.split('\n').map((it) => it.trim())
|
const [path, browser, configVersion] = fileContent.split('\n').map((it) => it.trim())
|
||||||
if (!path || !fs.existsSync(path)) {
|
if (
|
||||||
|
!path ||
|
||||||
|
!fs.existsSync(path) ||
|
||||||
|
!Number(configVersion) ||
|
||||||
|
Number(configVersion) < CONFIG_VSERION
|
||||||
|
) {
|
||||||
await removeLastUsedAndAvailableBrowserPath()
|
await removeLastUsedAndAvailableBrowserPath()
|
||||||
return null
|
return null
|
||||||
}
|
}
|
||||||
@@ -57,7 +64,7 @@ export const saveLastUsedAndAvailableBrowserInfo = async (browserInfo: BrowserIn
|
|||||||
}
|
}
|
||||||
await fsPromise.writeFile(
|
await fsPromise.writeFile(
|
||||||
lastUsedBrowserRecordFilePath,
|
lastUsedBrowserRecordFilePath,
|
||||||
[browserInfo.executablePath, browserInfo.browser].join('\n')
|
[browserInfo.executablePath, browserInfo.browser, CONFIG_VSERION].join('\n')
|
||||||
)
|
)
|
||||||
} catch {
|
} catch {
|
||||||
console.warn('lastUsedBrowserRecordFile write error')
|
console.warn('lastUsedBrowserRecordFile write error')
|
||||||
|
|||||||
+1
-1
@@ -16,7 +16,7 @@ const getPuppeteerManagerModule = async () => {
|
|||||||
return puppeteerManager
|
return puppeteerManager
|
||||||
}
|
}
|
||||||
|
|
||||||
const EXPECT_CHROMIUM_BUILD_ID = '113.0.5672.63'
|
const EXPECT_CHROMIUM_BUILD_ID = '139.0.7258.154'
|
||||||
const cacheDir = path.join(os.homedir(), '.geekgeekrun', 'cache')
|
const cacheDir = path.join(os.homedir(), '.geekgeekrun', 'cache')
|
||||||
|
|
||||||
const getExpectCachedPuppeteerExecutable = async (): Promise<BrowserInfo> => {
|
const getExpectCachedPuppeteerExecutable = async (): Promise<BrowserInfo> => {
|
||||||
|
|||||||
Generated
+373
-213
File diff suppressed because it is too large
Load Diff
Reference in New Issue
Block a user