mirror of
https://github.com/geekgeekrun/geekgeekrun.git
synced 2026-09-09 01:17:06 +08:00
add chrome for puppeteer downloader
This commit is contained in:
@@ -8,6 +8,7 @@
|
|||||||
"start": "electron-vite preview",
|
"start": "electron-vite preview",
|
||||||
"dev": "electron-vite dev",
|
"dev": "electron-vite dev",
|
||||||
"dev:geek-auto-start-chat-with-boss-only": "MAIN_BOSSGEEKGO_UI_RUN_MODE=geekAutoStartWithBoss electron-vite dev",
|
"dev:geek-auto-start-chat-with-boss-only": "MAIN_BOSSGEEKGO_UI_RUN_MODE=geekAutoStartWithBoss electron-vite dev",
|
||||||
|
"dev:check-and-download-dependencies-for-init-only": "MAIN_BOSSGEEKGO_UI_RUN_MODE=checkAndDownloadDependenciesForInit electron-vite dev",
|
||||||
"build": "electron-vite build",
|
"build": "electron-vite build",
|
||||||
"format": "prettier --write .",
|
"format": "prettier --write .",
|
||||||
"lint": "eslint . --ext .js,.jsx,.cjs,.mjs,.ts,.tsx,.cts,.mts,.vue --fix",
|
"lint": "eslint . --ext .js,.jsx,.cjs,.mjs,.ts,.tsx,.cts,.mts,.vue --fix",
|
||||||
@@ -21,10 +22,11 @@
|
|||||||
"build:linux": "npm run build && electron-builder --linux"
|
"build:linux": "npm run build && electron-builder --linux"
|
||||||
},
|
},
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@bossgeekgo/geek-auto-start-chat-with-boss": "workspace:*",
|
|
||||||
"@bossgeekgo/dingtalk-plugin": "workspace:*",
|
"@bossgeekgo/dingtalk-plugin": "workspace:*",
|
||||||
|
"@bossgeekgo/geek-auto-start-chat-with-boss": "workspace:*",
|
||||||
"@electron-toolkit/preload": "^3.0.0",
|
"@electron-toolkit/preload": "^3.0.0",
|
||||||
"@electron-toolkit/utils": "^3.0.0",
|
"@electron-toolkit/utils": "^3.0.0",
|
||||||
|
"@puppeteer/browsers": "^2.0.0",
|
||||||
"electron-updater": "^6.1.7",
|
"electron-updater": "^6.1.7",
|
||||||
"element-plus": "^2.5.5",
|
"element-plus": "^2.5.5",
|
||||||
"normalize.css": "^8.0.1",
|
"normalize.css": "^8.0.1",
|
||||||
|
|||||||
+48
@@ -0,0 +1,48 @@
|
|||||||
|
import * as path from 'node:path'
|
||||||
|
import * as os from 'node:os'
|
||||||
|
import * as fs from 'node:fs'
|
||||||
|
import type { InstalledBrowser } from '@puppeteer/browsers'
|
||||||
|
|
||||||
|
const expectBuildId = process.env.EXPECT_CHROME_FOR_PUPPETEER_BUILD_ID || '121.0.6167.85'
|
||||||
|
const cacheDir = path.join(
|
||||||
|
os.homedir(),
|
||||||
|
'.bossgeekgo',
|
||||||
|
'external-node-runtime-dependencies',
|
||||||
|
'static'
|
||||||
|
)
|
||||||
|
|
||||||
|
const checkAndDownloadPuppeteer = async (options: {
|
||||||
|
downloadProgressCallback?: (downloadedBytes: number, totalBytes: number) => void
|
||||||
|
}) => {
|
||||||
|
const puppeteerManager = await import('@puppeteer/browsers')
|
||||||
|
const executablePath = puppeteerManager.computeExecutablePath({
|
||||||
|
browser: puppeteerManager.Browser.CHROME,
|
||||||
|
cacheDir,
|
||||||
|
buildId: expectBuildId
|
||||||
|
})
|
||||||
|
let installedBrowser: InstalledBrowser
|
||||||
|
if (!fs.existsSync(executablePath)) {
|
||||||
|
// maybe the exist installation is broken.
|
||||||
|
await puppeteerManager.uninstall({
|
||||||
|
cacheDir,
|
||||||
|
buildId: expectBuildId,
|
||||||
|
browser: puppeteerManager.Browser.CHROME,
|
||||||
|
})
|
||||||
|
installedBrowser = await puppeteerManager.install({
|
||||||
|
browser: puppeteerManager.Browser.CHROME,
|
||||||
|
cacheDir,
|
||||||
|
buildId: expectBuildId,
|
||||||
|
downloadProgressCallback: options.downloadProgressCallback
|
||||||
|
})
|
||||||
|
} else {
|
||||||
|
installedBrowser = (
|
||||||
|
await puppeteerManager.getInstalledBrowsers({
|
||||||
|
cacheDir
|
||||||
|
})
|
||||||
|
).find((it) => it.buildId === expectBuildId)!
|
||||||
|
}
|
||||||
|
|
||||||
|
return installedBrowser
|
||||||
|
}
|
||||||
|
|
||||||
|
export default checkAndDownloadPuppeteer
|
||||||
@@ -0,0 +1,11 @@
|
|||||||
|
import checkAndDownloadPuppeteer from './check-and-download-puppeteer'
|
||||||
|
|
||||||
|
export const checkAndDownloadDependenciesForInit = async () => {
|
||||||
|
const browser = await checkAndDownloadPuppeteer({
|
||||||
|
downloadProgressCallback(downloadedBytes: number, totalBytes: number) {
|
||||||
|
console.log(`${downloadedBytes} / ${totalBytes}`)
|
||||||
|
}
|
||||||
|
})
|
||||||
|
|
||||||
|
console.log(browser)
|
||||||
|
}
|
||||||
@@ -1,5 +1,6 @@
|
|||||||
import { runAutoChat } from './flow/GEEK_AUTO_START_CHAT_WITH_BOSS'
|
import { runAutoChat } from './flow/GEEK_AUTO_START_CHAT_WITH_BOSS'
|
||||||
import { openSettingWindow } from './flow/OPEN_SETTING_WINDOW'
|
import { openSettingWindow } from './flow/OPEN_SETTING_WINDOW'
|
||||||
|
import { checkAndDownloadDependenciesForInit } from './flow/CHECK_AND_DOWNLOAD_DEPENDENCIES/index';
|
||||||
|
|
||||||
const runMode = process.env.MAIN_BOSSGEEKGO_UI_RUN_MODE
|
const runMode = process.env.MAIN_BOSSGEEKGO_UI_RUN_MODE
|
||||||
switch (runMode) {
|
switch (runMode) {
|
||||||
@@ -7,6 +8,10 @@ switch (runMode) {
|
|||||||
runAutoChat()
|
runAutoChat()
|
||||||
break
|
break
|
||||||
}
|
}
|
||||||
|
case 'checkAndDownloadDependenciesForInit': {
|
||||||
|
checkAndDownloadDependenciesForInit()
|
||||||
|
break
|
||||||
|
}
|
||||||
default: {
|
default: {
|
||||||
openSettingWindow()
|
openSettingWindow()
|
||||||
break
|
break
|
||||||
|
|||||||
@@ -96,6 +96,7 @@ export function createMainWindow(): void {
|
|||||||
env: {
|
env: {
|
||||||
...process.env,
|
...process.env,
|
||||||
MAIN_BOSSGEEKGO_UI_RUN_MODE: 'geekAutoStartWithBoss'
|
MAIN_BOSSGEEKGO_UI_RUN_MODE: 'geekAutoStartWithBoss'
|
||||||
|
// PUPPETEER_EXECUTABLE_PATH: '/Applications/Microsoft Edge.app/Contents/MacOS/Microsoft Edge'
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
ipcMain.emit('geek-auto-start-chat-with-boss-started')
|
ipcMain.emit('geek-auto-start-chat-with-boss-started')
|
||||||
|
|||||||
Generated
+23
-5
@@ -61,6 +61,9 @@ importers:
|
|||||||
'@electron-toolkit/utils':
|
'@electron-toolkit/utils':
|
||||||
specifier: ^3.0.0
|
specifier: ^3.0.0
|
||||||
version: 3.0.0(electron@28.2.0)
|
version: 3.0.0(electron@28.2.0)
|
||||||
|
'@puppeteer/browsers':
|
||||||
|
specifier: ^2.0.0
|
||||||
|
version: 2.0.0
|
||||||
electron-updater:
|
electron-updater:
|
||||||
specifier: ^6.1.7
|
specifier: ^6.1.7
|
||||||
version: 6.1.7
|
version: 6.1.7
|
||||||
@@ -890,6 +893,22 @@ packages:
|
|||||||
- supports-color
|
- supports-color
|
||||||
dev: false
|
dev: false
|
||||||
|
|
||||||
|
/@puppeteer/browsers@2.0.0:
|
||||||
|
resolution: {integrity: sha512-3PS82/5+tnpEaUWonjAFFvlf35QHF15xqyGd34GBa5oP5EPVfFXRsbSxIGYf1M+vZlqBZ3oxT1kRg9OYhtt8ng==}
|
||||||
|
engines: {node: '>=18'}
|
||||||
|
hasBin: true
|
||||||
|
dependencies:
|
||||||
|
debug: 4.3.4
|
||||||
|
extract-zip: 2.0.1
|
||||||
|
progress: 2.0.3
|
||||||
|
proxy-agent: 6.3.1
|
||||||
|
tar-fs: 3.0.4
|
||||||
|
unbzip2-stream: 1.4.3
|
||||||
|
yargs: 17.7.2
|
||||||
|
transitivePeerDependencies:
|
||||||
|
- supports-color
|
||||||
|
dev: false
|
||||||
|
|
||||||
/@rollup/pluginutils@5.1.0:
|
/@rollup/pluginutils@5.1.0:
|
||||||
resolution: {integrity: sha512-XTIWOPPcpvyKI6L1NHo0lFlCyznUEyPmPY1mc3KpPVDYulHSTvyeLNVW00QTLIAFNhR3kYnJTQHeGqU4M3n09g==}
|
resolution: {integrity: sha512-XTIWOPPcpvyKI6L1NHo0lFlCyznUEyPmPY1mc3KpPVDYulHSTvyeLNVW00QTLIAFNhR3kYnJTQHeGqU4M3n09g==}
|
||||||
engines: {node: '>=14.0.0'}
|
engines: {node: '>=14.0.0'}
|
||||||
@@ -1045,7 +1064,7 @@ packages:
|
|||||||
dependencies:
|
dependencies:
|
||||||
'@types/http-cache-semantics': 4.0.4
|
'@types/http-cache-semantics': 4.0.4
|
||||||
'@types/keyv': 3.1.4
|
'@types/keyv': 3.1.4
|
||||||
'@types/node': 18.19.9
|
'@types/node': 18.19.15
|
||||||
'@types/responselike': 1.0.3
|
'@types/responselike': 1.0.3
|
||||||
|
|
||||||
/@types/debug@4.1.12:
|
/@types/debug@4.1.12:
|
||||||
@@ -1073,7 +1092,7 @@ packages:
|
|||||||
/@types/keyv@3.1.4:
|
/@types/keyv@3.1.4:
|
||||||
resolution: {integrity: sha512-BQ5aZNSCpj7D6K2ksrRCTmKRLEpnPvWDiLPfoGyhZ++8YtiK9d/3DBKPJgry359X/P1PfruyYwvnvwFjuEiEIg==}
|
resolution: {integrity: sha512-BQ5aZNSCpj7D6K2ksrRCTmKRLEpnPvWDiLPfoGyhZ++8YtiK9d/3DBKPJgry359X/P1PfruyYwvnvwFjuEiEIg==}
|
||||||
dependencies:
|
dependencies:
|
||||||
'@types/node': 18.19.9
|
'@types/node': 18.19.15
|
||||||
|
|
||||||
/@types/lodash-es@4.17.12:
|
/@types/lodash-es@4.17.12:
|
||||||
resolution: {integrity: sha512-0NgftHUcV4v34VhXm8QBSftKVXtbkBG3ViCjs6+eJ5a6y6Mi/jiFGPc1sC7QK+9BFhWrURE3EOggmWaSxL9OzQ==}
|
resolution: {integrity: sha512-0NgftHUcV4v34VhXm8QBSftKVXtbkBG3ViCjs6+eJ5a6y6Mi/jiFGPc1sC7QK+9BFhWrURE3EOggmWaSxL9OzQ==}
|
||||||
@@ -1092,7 +1111,6 @@ packages:
|
|||||||
resolution: {integrity: sha512-AMZ2UWx+woHNfM11PyAEQmfSxi05jm9OlkxczuHeEqmvwPkYj6MWv44gbzDPefYOLysTOFyI3ziiy2ONmUZfpA==}
|
resolution: {integrity: sha512-AMZ2UWx+woHNfM11PyAEQmfSxi05jm9OlkxczuHeEqmvwPkYj6MWv44gbzDPefYOLysTOFyI3ziiy2ONmUZfpA==}
|
||||||
dependencies:
|
dependencies:
|
||||||
undici-types: 5.26.5
|
undici-types: 5.26.5
|
||||||
optional: true
|
|
||||||
|
|
||||||
/@types/node@18.19.9:
|
/@types/node@18.19.9:
|
||||||
resolution: {integrity: sha512-oZFKlC8l5YtzGQNT4zC2PiSSKzQVZ8bAwwd+EYdPLtyk0nSEq6O16SkK+rkkT2eflDAbormJgEF3QnH3oDrTSw==}
|
resolution: {integrity: sha512-oZFKlC8l5YtzGQNT4zC2PiSSKzQVZ8bAwwd+EYdPLtyk0nSEq6O16SkK+rkkT2eflDAbormJgEF3QnH3oDrTSw==}
|
||||||
@@ -1102,7 +1120,7 @@ packages:
|
|||||||
/@types/plist@3.0.5:
|
/@types/plist@3.0.5:
|
||||||
resolution: {integrity: sha512-E6OCaRmAe4WDmWNsL/9RMqdkkzDCY1etutkflWk4c+AcjDU07Pcz1fQwTX0TQz+Pxqn9i4L1TU3UFpjnrcDgxA==}
|
resolution: {integrity: sha512-E6OCaRmAe4WDmWNsL/9RMqdkkzDCY1etutkflWk4c+AcjDU07Pcz1fQwTX0TQz+Pxqn9i4L1TU3UFpjnrcDgxA==}
|
||||||
dependencies:
|
dependencies:
|
||||||
'@types/node': 18.19.9
|
'@types/node': 18.19.15
|
||||||
xmlbuilder: 15.1.1
|
xmlbuilder: 15.1.1
|
||||||
dev: true
|
dev: true
|
||||||
optional: true
|
optional: true
|
||||||
@@ -1110,7 +1128,7 @@ packages:
|
|||||||
/@types/responselike@1.0.3:
|
/@types/responselike@1.0.3:
|
||||||
resolution: {integrity: sha512-H/+L+UkTV33uf49PH5pCAUBVPNj2nDBXTN+qS1dOwyyg24l3CcicicCA7ca+HMvJBZcFgl5r8e+RR6elsb4Lyw==}
|
resolution: {integrity: sha512-H/+L+UkTV33uf49PH5pCAUBVPNj2nDBXTN+qS1dOwyyg24l3CcicicCA7ca+HMvJBZcFgl5r8e+RR6elsb4Lyw==}
|
||||||
dependencies:
|
dependencies:
|
||||||
'@types/node': 18.19.9
|
'@types/node': 18.19.15
|
||||||
|
|
||||||
/@types/semver@7.5.6:
|
/@types/semver@7.5.6:
|
||||||
resolution: {integrity: sha512-dn1l8LaMea/IjDoHNd9J52uBbInB796CDffS6VdIxvqYCPSG0V0DzHp76GpaWnlhg88uYyPbXCDIowa86ybd5A==}
|
resolution: {integrity: sha512-dn1l8LaMea/IjDoHNd9J52uBbInB796CDffS6VdIxvqYCPSG0V0DzHp76GpaWnlhg88uYyPbXCDIowa86ybd5A==}
|
||||||
|
|||||||
Reference in New Issue
Block a user