mirror of
https://github.com/geekgeekrun/geekgeekrun.git
synced 2026-09-04 23:17:39 +08:00
upgrade EditThisCookie.extract ensureEditThisCookie
This commit is contained in:
BIN
Binary file not shown.
@@ -6,68 +6,28 @@ import {
|
|||||||
sleep,
|
sleep,
|
||||||
sleepWithRandomDelay
|
sleepWithRandomDelay
|
||||||
} from '@geekgeekrun/utils/sleep.mjs'
|
} from '@geekgeekrun/utils/sleep.mjs'
|
||||||
import extractZip from 'extract-zip'
|
|
||||||
import { blockNavigation } from '@geekgeekrun/utils/puppeteer/block-navigation.mjs'
|
import { blockNavigation } from '@geekgeekrun/utils/puppeteer/block-navigation.mjs'
|
||||||
import {
|
import {
|
||||||
writeStorageFile
|
writeStorageFile
|
||||||
} from '@geekgeekrun/geek-auto-start-chat-with-boss/runtime-file-utils.mjs'
|
} from '@geekgeekrun/geek-auto-start-chat-with-boss/runtime-file-utils.mjs'
|
||||||
|
|
||||||
import fs from 'node:fs'
|
|
||||||
import os from 'node:os'
|
|
||||||
import path from 'node:path';
|
|
||||||
import JSON5 from 'json5'
|
import JSON5 from 'json5'
|
||||||
import url from 'url';
|
import url from 'url';
|
||||||
import packageJson from './package.json' assert {type: 'json'}
|
import {
|
||||||
|
runtimeFolderPath,
|
||||||
|
ensureEditThisCookie,
|
||||||
|
editThisCookieExtensionPath,
|
||||||
|
isRunFromUi,
|
||||||
|
} from './utils.mjs'
|
||||||
|
|
||||||
import { EventEmitter } from 'node:events'
|
import { EventEmitter } from 'node:events'
|
||||||
|
|
||||||
export const loginEventBus = new EventEmitter()
|
export const loginEventBus = new EventEmitter()
|
||||||
|
|
||||||
const __dirname = url.fileURLToPath(new URL('.', import.meta.url))
|
const __dirname = url.fileURLToPath(new URL('.', import.meta.url))
|
||||||
const isRunFromUi = Boolean(process.env.MAIN_BOSSGEEKGO_UI_RUN_MODE)
|
|
||||||
const isUiDev = process.env.NODE_ENV === 'development'
|
|
||||||
|
|
||||||
const runtimeFolderPath = path.join(os.homedir(), '.geekgeekrun')
|
|
||||||
const extensionDir = path.join(
|
|
||||||
runtimeFolderPath,
|
|
||||||
'chrome-extensions'
|
|
||||||
)
|
|
||||||
if (!fs.existsSync(
|
|
||||||
runtimeFolderPath
|
|
||||||
)) {
|
|
||||||
fs.mkdirSync(runtimeFolderPath)
|
|
||||||
}
|
|
||||||
if (!fs.existsSync(extensionDir)) {
|
|
||||||
fs.mkdirSync(extensionDir)
|
|
||||||
}
|
|
||||||
const editThisCookieExtensionPath = path.join(extensionDir, 'EditThisCookie')
|
|
||||||
|
|
||||||
let editThisCookieZipPath
|
|
||||||
async function getEditThisCookieZipPath () {
|
|
||||||
if (editThisCookieZipPath) {
|
|
||||||
return editThisCookieZipPath
|
|
||||||
}
|
|
||||||
if (isRunFromUi) {
|
|
||||||
const { app } = await import('electron')
|
|
||||||
editThisCookieZipPath = path.join(app.getAppPath(), './node_modules', packageJson.name, 'extensions', 'EditThisCookie.zip')
|
|
||||||
} else {
|
|
||||||
editThisCookieZipPath = path.join(__dirname, 'extensions', 'EditThisCookie.zip')
|
|
||||||
}
|
|
||||||
return editThisCookieZipPath
|
|
||||||
}
|
|
||||||
|
|
||||||
export async function main() {
|
export async function main() {
|
||||||
if (!fs.existsSync(
|
await ensureEditThisCookie()
|
||||||
path.join(editThisCookieExtensionPath, 'manifest.json')
|
|
||||||
)) {
|
|
||||||
await extractZip(
|
|
||||||
await getEditThisCookieZipPath(),
|
|
||||||
{
|
|
||||||
dir: extensionDir
|
|
||||||
}
|
|
||||||
)
|
|
||||||
}
|
|
||||||
|
|
||||||
const { puppeteer } = await initPuppeteer()
|
const { puppeteer } = await initPuppeteer()
|
||||||
const browser = await puppeteer.launch({
|
const browser = await puppeteer.launch({
|
||||||
headless: false,
|
headless: false,
|
||||||
|
|||||||
@@ -0,0 +1,82 @@
|
|||||||
|
import path from 'node:path';
|
||||||
|
import fs from 'node:fs'
|
||||||
|
import os from 'node:os'
|
||||||
|
import extractZip from 'extract-zip'
|
||||||
|
import packageJson from './package.json' assert {type: 'json'}
|
||||||
|
|
||||||
|
export const isRunFromUi = Boolean(process.env.MAIN_BOSSGEEKGO_UI_RUN_MODE)
|
||||||
|
const isUiDev = process.env.NODE_ENV === 'development'
|
||||||
|
|
||||||
|
export const runtimeFolderPath = path.join(os.homedir(), '.geekgeekrun')
|
||||||
|
|
||||||
|
const extensionDir = path.join(
|
||||||
|
runtimeFolderPath,
|
||||||
|
'chrome-extensions'
|
||||||
|
)
|
||||||
|
if (!fs.existsSync(
|
||||||
|
runtimeFolderPath
|
||||||
|
)) {
|
||||||
|
fs.mkdirSync(runtimeFolderPath)
|
||||||
|
}
|
||||||
|
if (!fs.existsSync(extensionDir)) {
|
||||||
|
fs.mkdirSync(extensionDir)
|
||||||
|
}
|
||||||
|
export const editThisCookieExtensionPath = path.join(extensionDir, 'EditThisCookie')
|
||||||
|
|
||||||
|
let editThisCookieZipPath
|
||||||
|
async function getEditThisCookieZipPath () {
|
||||||
|
if (editThisCookieZipPath) {
|
||||||
|
return editThisCookieZipPath
|
||||||
|
}
|
||||||
|
if (isRunFromUi) {
|
||||||
|
const { app } = await import('electron')
|
||||||
|
editThisCookieZipPath = path.join(app.getAppPath(), './node_modules', packageJson.name, 'extensions', 'EditThisCookie.zip')
|
||||||
|
} else {
|
||||||
|
editThisCookieZipPath = path.join(__dirname, 'extensions', 'EditThisCookie.zip')
|
||||||
|
}
|
||||||
|
return editThisCookieZipPath
|
||||||
|
}
|
||||||
|
|
||||||
|
export async function ensureEditThisCookie () {
|
||||||
|
let isNeedExtractEditThisCookie = false
|
||||||
|
const manifestFilePath = path.join(editThisCookieExtensionPath, 'manifest.json')
|
||||||
|
if (!fs.existsSync(
|
||||||
|
manifestFilePath
|
||||||
|
)) {
|
||||||
|
isNeedExtractEditThisCookie = true
|
||||||
|
} else {
|
||||||
|
let manifest
|
||||||
|
try {
|
||||||
|
manifest = JSON.parse(fs.readFileSync(manifestFilePath, { encoding: 'utf-8' }))
|
||||||
|
if (!manifest.manifest_version || manifest.manifest_version <= 2) {
|
||||||
|
isNeedExtractEditThisCookie = true
|
||||||
|
}
|
||||||
|
}
|
||||||
|
catch {
|
||||||
|
console.log(`未能获取到文件内容`)
|
||||||
|
isNeedExtractEditThisCookie = true
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (isNeedExtractEditThisCookie) {
|
||||||
|
if (
|
||||||
|
fs.existsSync(
|
||||||
|
editThisCookieExtensionPath
|
||||||
|
)
|
||||||
|
) {
|
||||||
|
fs.rmSync(
|
||||||
|
editThisCookieExtensionPath,
|
||||||
|
{
|
||||||
|
recursive: true,
|
||||||
|
force: true
|
||||||
|
}
|
||||||
|
)
|
||||||
|
}
|
||||||
|
await extractZip(
|
||||||
|
await getEditThisCookieZipPath(),
|
||||||
|
{
|
||||||
|
dir: extensionDir
|
||||||
|
}
|
||||||
|
)
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -1,6 +1,5 @@
|
|||||||
import { app } from 'electron'
|
import { app } from 'electron'
|
||||||
import { initPuppeteer } from '@geekgeekrun/geek-auto-start-chat-with-boss/index.mjs'
|
import { initPuppeteer } from '@geekgeekrun/geek-auto-start-chat-with-boss/index.mjs'
|
||||||
import extractZip from 'extract-zip'
|
|
||||||
import {
|
import {
|
||||||
readStorageFile,
|
readStorageFile,
|
||||||
writeStorageFile
|
writeStorageFile
|
||||||
@@ -17,10 +16,6 @@ import { getPublicDbFilePath } from '@geekgeekrun/geek-auto-start-chat-with-boss
|
|||||||
import { MarkAsNotSuitReason } from '@geekgeekrun/sqlite-plugin/dist/enums'
|
import { MarkAsNotSuitReason } from '@geekgeekrun/sqlite-plugin/dist/enums'
|
||||||
|
|
||||||
import fs from 'node:fs'
|
import fs from 'node:fs'
|
||||||
import os from 'node:os'
|
|
||||||
import path from 'node:path'
|
|
||||||
import url from 'url'
|
|
||||||
import packageJson from '@geekgeekrun/launch-bosszhipin-login-page-with-preload-extension/package.json' assert { type: 'json' }
|
|
||||||
import { Target } from 'puppeteer'
|
import { Target } from 'puppeteer'
|
||||||
import { pipeWriteRegardlessError } from '../utils/pipe'
|
import { pipeWriteRegardlessError } from '../utils/pipe'
|
||||||
import * as JSONStream from 'JSONStream'
|
import * as JSONStream from 'JSONStream'
|
||||||
@@ -31,38 +26,11 @@ import { type ChatMessageRecord } from '@geekgeekrun/sqlite-plugin/src/entity/Ch
|
|||||||
import { BossInfo } from '@geekgeekrun/sqlite-plugin/dist/entity/BossInfo'
|
import { BossInfo } from '@geekgeekrun/sqlite-plugin/dist/entity/BossInfo'
|
||||||
import { messageForSaveFilter } from '../../../common/utils/chat-list'
|
import { messageForSaveFilter } from '../../../common/utils/chat-list'
|
||||||
|
|
||||||
const __dirname = url.fileURLToPath(new URL('.', import.meta.url))
|
import {
|
||||||
const isRunFromUi = Boolean(process.env.MAIN_BOSSGEEKGO_UI_RUN_MODE)
|
ensureEditThisCookie,
|
||||||
|
editThisCookieExtensionPath
|
||||||
|
} from '@geekgeekrun/launch-bosszhipin-login-page-with-preload-extension/utils.mjs'
|
||||||
|
|
||||||
const runtimeFolderPath = path.join(os.homedir(), '.geekgeekrun')
|
|
||||||
const extensionDir = path.join(runtimeFolderPath, 'chrome-extensions')
|
|
||||||
if (!fs.existsSync(runtimeFolderPath)) {
|
|
||||||
fs.mkdirSync(runtimeFolderPath)
|
|
||||||
}
|
|
||||||
if (!fs.existsSync(extensionDir)) {
|
|
||||||
fs.mkdirSync(extensionDir)
|
|
||||||
}
|
|
||||||
const editThisCookieExtensionPath = path.join(extensionDir, 'EditThisCookie')
|
|
||||||
|
|
||||||
let editThisCookieZipPath
|
|
||||||
async function getEditThisCookieZipPath() {
|
|
||||||
if (editThisCookieZipPath) {
|
|
||||||
return editThisCookieZipPath
|
|
||||||
}
|
|
||||||
if (isRunFromUi) {
|
|
||||||
const { app } = await import('electron')
|
|
||||||
editThisCookieZipPath = path.join(
|
|
||||||
app.getAppPath(),
|
|
||||||
'./node_modules',
|
|
||||||
packageJson.name,
|
|
||||||
'extensions',
|
|
||||||
'EditThisCookie.zip'
|
|
||||||
)
|
|
||||||
} else {
|
|
||||||
editThisCookieZipPath = path.join(__dirname, 'extensions', 'EditThisCookie.zip')
|
|
||||||
}
|
|
||||||
return editThisCookieZipPath
|
|
||||||
}
|
|
||||||
const dbInitPromise = initDb(getPublicDbFilePath())
|
const dbInitPromise = initDb(getPublicDbFilePath())
|
||||||
|
|
||||||
const attachRequestsListener = async (target: Target) => {
|
const attachRequestsListener = async (target: Target) => {
|
||||||
@@ -247,12 +215,7 @@ const attachRequestsListener = async (target: Target) => {
|
|||||||
|
|
||||||
export async function launchBossSite() {
|
export async function launchBossSite() {
|
||||||
app.dock?.hide()
|
app.dock?.hide()
|
||||||
if (!fs.existsSync(path.join(editThisCookieExtensionPath, 'manifest.json'))) {
|
await ensureEditThisCookie()
|
||||||
await extractZip(await getEditThisCookieZipPath(), {
|
|
||||||
dir: extensionDir
|
|
||||||
})
|
|
||||||
}
|
|
||||||
|
|
||||||
const bossCookies = readStorageFile('boss-cookies.json')
|
const bossCookies = readStorageFile('boss-cookies.json')
|
||||||
const bossLocalStorage = readStorageFile('boss-local-storage.json')
|
const bossLocalStorage = readStorageFile('boss-local-storage.json')
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user