diff --git a/src/chatgpt-api-browser.ts b/src/chatgpt-api-browser.ts index e9135f8..3405b1b 100644 --- a/src/chatgpt-api-browser.ts +++ b/src/chatgpt-api-browser.ts @@ -118,6 +118,22 @@ export class ChatGPTAPIBrowser extends AChatGPTAPI { this._page = (await this._browser.pages())[0] || (await this._browser.newPage()) + if (this._proxyServer && this._proxyServer.includes('@')) { + const proxyUsername = this._proxyServer.split('@')[0].split(':')[0] + const proxyPassword = this._proxyServer.split('@')[0].split(':')[1] + try { + await this._page.authenticate({ + username: proxyUsername, + password: proxyPassword + }) + } catch (err) { + console.error( + `Proxy "${this._proxyServer}" throws an error at authenticating`, + err.toString() + ) + } + } + // bypass annoying popup modals this._page.evaluateOnNewDocument(() => { window.localStorage.setItem('oai/apps/hasSeenOnboarding/chat', 'true') diff --git a/src/openai-auth.ts b/src/openai-auth.ts index 16f36ec..d5bf875 100644 --- a/src/openai-auth.ts +++ b/src/openai-auth.ts @@ -313,7 +313,10 @@ export async function getBrowser( } if (proxyServer) { - puppeteerArgs.push(`--proxy-server=${proxyServer}`) + const ipPort = proxyServer.includes('@') + ? proxyServer.split('@')[1] + : proxyServer + puppeteerArgs.push(`--proxy-server=${ipPort}`) } const browser = await puppeteer.launch({