From db1e091d166baedf32e37faf4dce8ca70e28257b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=A2=AB=E9=81=97=E5=BF=98=E7=9A=84=E8=AE=B0=E5=BF=86?= <32097237+YIWANG-sketch@users.noreply.github.com> Date: Sat, 28 Sep 2024 01:26:24 +0800 Subject: [PATCH] semi adapted team plan --- provider.mjs | 46 +++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 45 insertions(+), 1 deletion(-) diff --git a/provider.mjs b/provider.mjs index fdb594e..6944a82 100644 --- a/provider.mjs +++ b/provider.mjs @@ -5,11 +5,12 @@ import path from "path"; import fs from "fs"; import {fileURLToPath} from "url"; import {createDirectoryIfNotExists, createDocx, extractCookie, getSessionCookie, sleep} from "./utils.mjs"; -import {execSync} from 'child_process'; +import {exec, execSync} from 'child_process'; import os from 'os'; import './proxyAgent.mjs'; import {formatMessages} from './formatMessages.mjs'; import NetworkMonitor from './networkMonitor.mjs'; +import robot from 'robotjs'; const __filename = fileURLToPath(import.meta.url); const __dirname = path.dirname(__filename); @@ -169,6 +170,19 @@ class YouProvider { return teamElement && teamElement.textContent === 'Your Team'; }); + if (this.isTeamAccount) { + console.log('检测到 Team 账号'); + await sleep(3000); + await page.goto("https://you.com/settings/team-details", {timeout: timeout}); + await sleep(3000); + // 获取浏览器窗口标题 + const title = await page.title(); + // 将浏览器窗口切换到前台 + await this.focusBrowserWindow(title); + robot.keyTap('r', 'control'); + await sleep(5000); + } + // 如果遇到盾了就多等一段时间 const pageContent = await page.content(); if (pageContent.indexOf("https://challenges.cloudflare.com") > -1) { @@ -297,6 +311,36 @@ class YouProvider { }; } + async focusBrowserWindow(title) { + return new Promise((resolve, reject) => { + if (process.platform === 'win32') { + // Windows + exec(`powershell.exe -Command "(New-Object -ComObject WScript.Shell).AppActivate('${title}')"`, (error) => { + if (error) { + console.error('无法激活窗口:', error); + reject(error); + } else { + resolve(); + } + }); + } else if (process.platform === 'darwin') { + // macOS + exec(`osascript -e 'tell application "System Events" to set frontmost of every process whose displayed name contains "${title}" to true'`, (error) => { + if (error) { + console.error('无法激活窗口:', error); + reject(error); + } else { + resolve(); + } + }); + } else { + // Linux 或其他系统 + console.warn('当前系统不支持自动切换窗口到前台,请手动切换'); + resolve(); + } + }); + } + async getSubscriptionInfo(page) { try { const response = await page.evaluate(async () => {