Commit 6d95f77c authored by xtremehpx's avatar xtremehpx

Merge remote-tracking branch 'upstream/main'

parents 336a91d3 8c7ab5e9
import dotenv from 'dotenv-safe'
import { oraPromise } from 'ora'
import { ChatGPTAPIBrowser } from '../src'
dotenv.config()
/**
* Demo CLI for testing conversation support.
*
* ```
* npx tsx demos/demo-conversation-browser.ts
* ```
*/
async function main() {
const email = process.env.OPENAI_EMAIL
const password = process.env.OPENAI_PASSWORD
const api = new ChatGPTAPIBrowser({
email,
password,
debug: false,
minimize: true
})
await api.initSession()
const prompt = 'Write a poem about cats.'
let res = await oraPromise(api.sendMessage(prompt), {
text: prompt
})
console.log('\n' + res.response + '\n')
const prompt2 = 'Can you make it cuter and shorter?'
res = await oraPromise(
api.sendMessage(prompt2, {
conversationId: res.conversationId,
parentMessageId: res.messageId
}),
{
text: prompt2
}
)
console.log('\n' + res.response + '\n')
const prompt3 = 'Now write it in French.'
res = await oraPromise(
api.sendMessage(prompt3, {
conversationId: res.conversationId,
parentMessageId: res.messageId
}),
{
text: prompt3
}
)
console.log('\n' + res.response + '\n')
const prompt4 = 'What were we talking about again?'
res = await oraPromise(
api.sendMessage(prompt4, {
conversationId: res.conversationId,
parentMessageId: res.messageId
}),
{
text: prompt4
}
)
console.log('\n' + res.response + '\n')
// close the browser at the end
await api.closeSession()
}
main().catch((err) => {
console.error(err)
process.exit(1)
})
import dotenv from 'dotenv-safe' import dotenv from 'dotenv-safe'
import { oraPromise } from 'ora' import { oraPromise } from 'ora'
import { ChatGPTAPI, getOpenAIAuth } from '../src' import { ChatGPTAPIBrowser } from '../src'
dotenv.config() dotenv.config()
...@@ -16,12 +16,12 @@ async function main() { ...@@ -16,12 +16,12 @@ async function main() {
const email = process.env.OPENAI_EMAIL const email = process.env.OPENAI_EMAIL
const password = process.env.OPENAI_PASSWORD const password = process.env.OPENAI_PASSWORD
const authInfo = await getOpenAIAuth({ const api = new ChatGPTAPIBrowser({
email, email,
password password,
debug: false,
minimize: true
}) })
const api = new ChatGPTAPI({ ...authInfo })
await api.initSession() await api.initSession()
const prompt = 'Write a poem about cats.' const prompt = 'Write a poem about cats.'
...@@ -71,6 +71,7 @@ async function main() { ...@@ -71,6 +71,7 @@ async function main() {
) )
console.log('\n' + res.response + '\n') console.log('\n' + res.response + '\n')
// close the browser at the end
await api.closeSession() await api.closeSession()
} }
......
...@@ -49,7 +49,7 @@ An error if it fails. ...@@ -49,7 +49,7 @@ An error if it fails.
#### Defined in #### Defined in
[src/abstract-chatgpt-api.ts:69](https://github.com/transitive-bullshit/chatgpt-api/blob/d1b74a8/src/abstract-chatgpt-api.ts#L69) [src/abstract-chatgpt-api.ts:69](https://github.com/transitive-bullshit/chatgpt-api/blob/025e7e3/src/abstract-chatgpt-api.ts#L69)
___ ___
...@@ -66,7 +66,7 @@ otherwise. ...@@ -66,7 +66,7 @@ otherwise.
#### Defined in #### Defined in
[src/abstract-chatgpt-api.ts:39](https://github.com/transitive-bullshit/chatgpt-api/blob/d1b74a8/src/abstract-chatgpt-api.ts#L39) [src/abstract-chatgpt-api.ts:39](https://github.com/transitive-bullshit/chatgpt-api/blob/025e7e3/src/abstract-chatgpt-api.ts#L39)
___ ___
...@@ -87,7 +87,7 @@ An error if the session failed to initialize properly. ...@@ -87,7 +87,7 @@ An error if the session failed to initialize properly.
#### Defined in #### Defined in
[src/abstract-chatgpt-api.ts:10](https://github.com/transitive-bullshit/chatgpt-api/blob/d1b74a8/src/abstract-chatgpt-api.ts#L10) [src/abstract-chatgpt-api.ts:10](https://github.com/transitive-bullshit/chatgpt-api/blob/025e7e3/src/abstract-chatgpt-api.ts#L10)
___ ___
...@@ -111,7 +111,7 @@ Access credentials for the new session. ...@@ -111,7 +111,7 @@ Access credentials for the new session.
#### Defined in #### Defined in
[src/abstract-chatgpt-api.ts:49](https://github.com/transitive-bullshit/chatgpt-api/blob/d1b74a8/src/abstract-chatgpt-api.ts#L49) [src/abstract-chatgpt-api.ts:49](https://github.com/transitive-bullshit/chatgpt-api/blob/025e7e3/src/abstract-chatgpt-api.ts#L49)
___ ___
...@@ -135,7 +135,7 @@ Access credentials for the new session. ...@@ -135,7 +135,7 @@ Access credentials for the new session.
#### Defined in #### Defined in
[src/abstract-chatgpt-api.ts:59](https://github.com/transitive-bullshit/chatgpt-api/blob/d1b74a8/src/abstract-chatgpt-api.ts#L59) [src/abstract-chatgpt-api.ts:59](https://github.com/transitive-bullshit/chatgpt-api/blob/025e7e3/src/abstract-chatgpt-api.ts#L59)
___ ___
...@@ -164,4 +164,4 @@ the `response` text. ...@@ -164,4 +164,4 @@ the `response` text.
#### Defined in #### Defined in
[src/abstract-chatgpt-api.ts:30](https://github.com/transitive-bullshit/chatgpt-api/blob/d1b74a8/src/abstract-chatgpt-api.ts#L30) [src/abstract-chatgpt-api.ts:30](https://github.com/transitive-bullshit/chatgpt-api/blob/025e7e3/src/abstract-chatgpt-api.ts#L30)
...@@ -64,7 +64,7 @@ to obtain your `clearanceToken`. ...@@ -64,7 +64,7 @@ to obtain your `clearanceToken`.
#### Defined in #### Defined in
[src/chatgpt-api.ts:45](https://github.com/transitive-bullshit/chatgpt-api/blob/d1b74a8/src/chatgpt-api.ts#L45) [src/chatgpt-api.ts:45](https://github.com/transitive-bullshit/chatgpt-api/blob/025e7e3/src/chatgpt-api.ts#L45)
## Accessors ## Accessors
...@@ -80,7 +80,7 @@ Gets the current Cloudflare clearance token (`cf_clearance` cookie value). ...@@ -80,7 +80,7 @@ Gets the current Cloudflare clearance token (`cf_clearance` cookie value).
#### Defined in #### Defined in
[src/chatgpt-api.ts:143](https://github.com/transitive-bullshit/chatgpt-api/blob/d1b74a8/src/chatgpt-api.ts#L143) [src/chatgpt-api.ts:143](https://github.com/transitive-bullshit/chatgpt-api/blob/025e7e3/src/chatgpt-api.ts#L143)
___ ___
...@@ -96,7 +96,7 @@ Gets the current session token. ...@@ -96,7 +96,7 @@ Gets the current session token.
#### Defined in #### Defined in
[src/chatgpt-api.ts:138](https://github.com/transitive-bullshit/chatgpt-api/blob/d1b74a8/src/chatgpt-api.ts#L138) [src/chatgpt-api.ts:138](https://github.com/transitive-bullshit/chatgpt-api/blob/025e7e3/src/chatgpt-api.ts#L138)
___ ___
...@@ -112,7 +112,7 @@ Gets the currently signed-in user, if authenticated, `null` otherwise. ...@@ -112,7 +112,7 @@ Gets the currently signed-in user, if authenticated, `null` otherwise.
#### Defined in #### Defined in
[src/chatgpt-api.ts:133](https://github.com/transitive-bullshit/chatgpt-api/blob/d1b74a8/src/chatgpt-api.ts#L133) [src/chatgpt-api.ts:133](https://github.com/transitive-bullshit/chatgpt-api/blob/025e7e3/src/chatgpt-api.ts#L133)
___ ___
...@@ -128,7 +128,7 @@ Gets the current user agent. ...@@ -128,7 +128,7 @@ Gets the current user agent.
#### Defined in #### Defined in
[src/chatgpt-api.ts:148](https://github.com/transitive-bullshit/chatgpt-api/blob/d1b74a8/src/chatgpt-api.ts#L148) [src/chatgpt-api.ts:148](https://github.com/transitive-bullshit/chatgpt-api/blob/025e7e3/src/chatgpt-api.ts#L148)
## Methods ## Methods
...@@ -152,7 +152,7 @@ An error if it fails. ...@@ -152,7 +152,7 @@ An error if it fails.
#### Defined in #### Defined in
[src/chatgpt-api.ts:470](https://github.com/transitive-bullshit/chatgpt-api/blob/d1b74a8/src/chatgpt-api.ts#L470) [src/chatgpt-api.ts:470](https://github.com/transitive-bullshit/chatgpt-api/blob/025e7e3/src/chatgpt-api.ts#L470)
___ ___
...@@ -173,7 +173,7 @@ the token fails. ...@@ -173,7 +173,7 @@ the token fails.
#### Defined in #### Defined in
[src/chatgpt-api.ts:367](https://github.com/transitive-bullshit/chatgpt-api/blob/d1b74a8/src/chatgpt-api.ts#L367) [src/chatgpt-api.ts:367](https://github.com/transitive-bullshit/chatgpt-api/blob/025e7e3/src/chatgpt-api.ts#L367)
___ ___
...@@ -194,7 +194,7 @@ is valid. ...@@ -194,7 +194,7 @@ is valid.
#### Defined in #### Defined in
[src/chatgpt-api.ts:156](https://github.com/transitive-bullshit/chatgpt-api/blob/d1b74a8/src/chatgpt-api.ts#L156) [src/chatgpt-api.ts:156](https://github.com/transitive-bullshit/chatgpt-api/blob/025e7e3/src/chatgpt-api.ts#L156)
___ ___
...@@ -224,7 +224,7 @@ A valid access token ...@@ -224,7 +224,7 @@ A valid access token
#### Defined in #### Defined in
[src/chatgpt-api.ts:386](https://github.com/transitive-bullshit/chatgpt-api/blob/d1b74a8/src/chatgpt-api.ts#L386) [src/chatgpt-api.ts:386](https://github.com/transitive-bullshit/chatgpt-api/blob/025e7e3/src/chatgpt-api.ts#L386)
___ ___
...@@ -252,7 +252,7 @@ Access credentials for the new session. ...@@ -252,7 +252,7 @@ Access credentials for the new session.
#### Defined in #### Defined in
[src/abstract-chatgpt-api.ts:59](https://github.com/transitive-bullshit/chatgpt-api/blob/d1b74a8/src/abstract-chatgpt-api.ts#L59) [src/abstract-chatgpt-api.ts:59](https://github.com/transitive-bullshit/chatgpt-api/blob/025e7e3/src/abstract-chatgpt-api.ts#L59)
___ ___
...@@ -287,7 +287,7 @@ The response from ChatGPT ...@@ -287,7 +287,7 @@ The response from ChatGPT
#### Defined in #### Defined in
[src/chatgpt-api.ts:180](https://github.com/transitive-bullshit/chatgpt-api/blob/d1b74a8/src/chatgpt-api.ts#L180) [src/chatgpt-api.ts:180](https://github.com/transitive-bullshit/chatgpt-api/blob/025e7e3/src/chatgpt-api.ts#L180)
___ ___
...@@ -307,4 +307,4 @@ ___ ...@@ -307,4 +307,4 @@ ___
#### Defined in #### Defined in
[src/chatgpt-api.ts:324](https://github.com/transitive-bullshit/chatgpt-api/blob/d1b74a8/src/chatgpt-api.ts#L324) [src/chatgpt-api.ts:324](https://github.com/transitive-bullshit/chatgpt-api/blob/025e7e3/src/chatgpt-api.ts#L324)
...@@ -51,6 +51,7 @@ Creates a new client for automating the ChatGPT webapp. ...@@ -51,6 +51,7 @@ Creates a new client for automating the ChatGPT webapp.
| `opts.isMicrosoftLogin?` | `boolean` | **`Default Value`** `false` * | | `opts.isMicrosoftLogin?` | `boolean` | **`Default Value`** `false` * |
| `opts.markdown?` | `boolean` | **`Default Value`** `true` * | | `opts.markdown?` | `boolean` | **`Default Value`** `true` * |
| `opts.minimize?` | `boolean` | **`Default Value`** `true` * | | `opts.minimize?` | `boolean` | **`Default Value`** `true` * |
| `opts.nopechaKey?` | `string` | **`Default Value`** `undefined` * |
| `opts.password` | `string` | - | | `opts.password` | `string` | - |
| `opts.proxyServer?` | `string` | **`Default Value`** `undefined` * | | `opts.proxyServer?` | `string` | **`Default Value`** `undefined` * |
...@@ -60,7 +61,7 @@ Creates a new client for automating the ChatGPT webapp. ...@@ -60,7 +61,7 @@ Creates a new client for automating the ChatGPT webapp.
#### Defined in #### Defined in
[src/chatgpt-api-browser.ts:38](https://github.com/transitive-bullshit/chatgpt-api/blob/d1b74a8/src/chatgpt-api-browser.ts#L38) [src/chatgpt-api-browser.ts:40](https://github.com/transitive-bullshit/chatgpt-api/blob/025e7e3/src/chatgpt-api-browser.ts#L40)
## Accessors ## Accessors
...@@ -74,7 +75,7 @@ Creates a new client for automating the ChatGPT webapp. ...@@ -74,7 +75,7 @@ Creates a new client for automating the ChatGPT webapp.
#### Defined in #### Defined in
[src/chatgpt-api-browser.ts:599](https://github.com/transitive-bullshit/chatgpt-api/blob/d1b74a8/src/chatgpt-api-browser.ts#L599) [src/chatgpt-api-browser.ts:696](https://github.com/transitive-bullshit/chatgpt-api/blob/025e7e3/src/chatgpt-api-browser.ts#L696)
## Methods ## Methods
...@@ -94,7 +95,7 @@ Creates a new client for automating the ChatGPT webapp. ...@@ -94,7 +95,7 @@ Creates a new client for automating the ChatGPT webapp.
#### Defined in #### Defined in
[src/chatgpt-api-browser.ts:204](https://github.com/transitive-bullshit/chatgpt-api/blob/d1b74a8/src/chatgpt-api-browser.ts#L204) [src/chatgpt-api-browser.ts:218](https://github.com/transitive-bullshit/chatgpt-api/blob/025e7e3/src/chatgpt-api-browser.ts#L218)
___ ___
...@@ -114,7 +115,7 @@ ___ ...@@ -114,7 +115,7 @@ ___
#### Defined in #### Defined in
[src/chatgpt-api-browser.ts:241](https://github.com/transitive-bullshit/chatgpt-api/blob/d1b74a8/src/chatgpt-api-browser.ts#L241) [src/chatgpt-api-browser.ts:255](https://github.com/transitive-bullshit/chatgpt-api/blob/025e7e3/src/chatgpt-api-browser.ts#L255)
___ ___
...@@ -138,7 +139,7 @@ An error if it fails. ...@@ -138,7 +139,7 @@ An error if it fails.
#### Defined in #### Defined in
[src/chatgpt-api-browser.ts:574](https://github.com/transitive-bullshit/chatgpt-api/blob/d1b74a8/src/chatgpt-api-browser.ts#L574) [src/chatgpt-api-browser.ts:642](https://github.com/transitive-bullshit/chatgpt-api/blob/025e7e3/src/chatgpt-api-browser.ts#L642)
___ ___
...@@ -159,7 +160,7 @@ otherwise. ...@@ -159,7 +160,7 @@ otherwise.
#### Defined in #### Defined in
[src/chatgpt-api-browser.ts:335](https://github.com/transitive-bullshit/chatgpt-api/blob/d1b74a8/src/chatgpt-api-browser.ts#L335) [src/chatgpt-api-browser.ts:391](https://github.com/transitive-bullshit/chatgpt-api/blob/025e7e3/src/chatgpt-api-browser.ts#L391)
___ ___
...@@ -184,7 +185,7 @@ An error if the session failed to initialize properly. ...@@ -184,7 +185,7 @@ An error if the session failed to initialize properly.
#### Defined in #### Defined in
[src/chatgpt-api-browser.ts:106](https://github.com/transitive-bullshit/chatgpt-api/blob/d1b74a8/src/chatgpt-api-browser.ts#L106) [src/chatgpt-api-browser.ts:114](https://github.com/transitive-bullshit/chatgpt-api/blob/025e7e3/src/chatgpt-api-browser.ts#L114)
___ ___
...@@ -204,7 +205,7 @@ Attempts to handle 403 errors by refreshing the page. ...@@ -204,7 +205,7 @@ Attempts to handle 403 errors by refreshing the page.
#### Defined in #### Defined in
[src/chatgpt-api-browser.ts:313](https://github.com/transitive-bullshit/chatgpt-api/blob/d1b74a8/src/chatgpt-api-browser.ts#L313) [src/chatgpt-api-browser.ts:333](https://github.com/transitive-bullshit/chatgpt-api/blob/025e7e3/src/chatgpt-api-browser.ts#L333)
___ ___
...@@ -224,7 +225,7 @@ Attempts to handle 401 errors by re-authenticating. ...@@ -224,7 +225,7 @@ Attempts to handle 401 errors by re-authenticating.
#### Defined in #### Defined in
[src/chatgpt-api-browser.ts:294](https://github.com/transitive-bullshit/chatgpt-api/blob/d1b74a8/src/chatgpt-api-browser.ts#L294) [src/chatgpt-api-browser.ts:314](https://github.com/transitive-bullshit/chatgpt-api/blob/025e7e3/src/chatgpt-api-browser.ts#L314)
___ ___
...@@ -238,7 +239,7 @@ ___ ...@@ -238,7 +239,7 @@ ___
#### Defined in #### Defined in
[src/chatgpt-api-browser.ts:566](https://github.com/transitive-bullshit/chatgpt-api/blob/d1b74a8/src/chatgpt-api-browser.ts#L566) [src/chatgpt-api-browser.ts:634](https://github.com/transitive-bullshit/chatgpt-api/blob/025e7e3/src/chatgpt-api-browser.ts#L634)
___ ___
...@@ -271,4 +272,4 @@ the `response` text. ...@@ -271,4 +272,4 @@ the `response` text.
#### Defined in #### Defined in
[src/chatgpt-api-browser.ts:412](https://github.com/transitive-bullshit/chatgpt-api/blob/d1b74a8/src/chatgpt-api-browser.ts#L412) [src/chatgpt-api-browser.ts:468](https://github.com/transitive-bullshit/chatgpt-api/blob/025e7e3/src/chatgpt-api-browser.ts#L468)
...@@ -66,7 +66,7 @@ node_modules/.pnpm/typescript@4.9.3/node_modules/typescript/lib/lib.es2022.error ...@@ -66,7 +66,7 @@ node_modules/.pnpm/typescript@4.9.3/node_modules/typescript/lib/lib.es2022.error
#### Defined in #### Defined in
[src/types.ts:297](https://github.com/transitive-bullshit/chatgpt-api/blob/d1b74a8/src/types.ts#L297) [src/types.ts:297](https://github.com/transitive-bullshit/chatgpt-api/blob/025e7e3/src/types.ts#L297)
___ ___
...@@ -76,7 +76,7 @@ ___ ...@@ -76,7 +76,7 @@ ___
#### Defined in #### Defined in
[src/types.ts:296](https://github.com/transitive-bullshit/chatgpt-api/blob/d1b74a8/src/types.ts#L296) [src/types.ts:296](https://github.com/transitive-bullshit/chatgpt-api/blob/025e7e3/src/types.ts#L296)
___ ___
...@@ -86,7 +86,7 @@ ___ ...@@ -86,7 +86,7 @@ ___
#### Defined in #### Defined in
[src/types.ts:294](https://github.com/transitive-bullshit/chatgpt-api/blob/d1b74a8/src/types.ts#L294) [src/types.ts:294](https://github.com/transitive-bullshit/chatgpt-api/blob/025e7e3/src/types.ts#L294)
___ ___
...@@ -96,4 +96,4 @@ ___ ...@@ -96,4 +96,4 @@ ___
#### Defined in #### Defined in
[src/types.ts:295](https://github.com/transitive-bullshit/chatgpt-api/blob/d1b74a8/src/types.ts#L295) [src/types.ts:295](https://github.com/transitive-bullshit/chatgpt-api/blob/025e7e3/src/types.ts#L295)
...@@ -60,7 +60,7 @@ ...@@ -60,7 +60,7 @@
#### Defined in #### Defined in
[src/types.ts:109](https://github.com/transitive-bullshit/chatgpt-api/blob/d1b74a8/src/types.ts#L109) [src/types.ts:109](https://github.com/transitive-bullshit/chatgpt-api/blob/025e7e3/src/types.ts#L109)
___ ___
...@@ -81,7 +81,7 @@ ___ ...@@ -81,7 +81,7 @@ ___
#### Defined in #### Defined in
[src/types.ts:300](https://github.com/transitive-bullshit/chatgpt-api/blob/d1b74a8/src/types.ts#L300) [src/types.ts:300](https://github.com/transitive-bullshit/chatgpt-api/blob/025e7e3/src/types.ts#L300)
___ ___
...@@ -99,7 +99,7 @@ ___ ...@@ -99,7 +99,7 @@ ___
#### Defined in #### Defined in
[src/types.ts:306](https://github.com/transitive-bullshit/chatgpt-api/blob/d1b74a8/src/types.ts#L306) [src/types.ts:306](https://github.com/transitive-bullshit/chatgpt-api/blob/025e7e3/src/types.ts#L306)
___ ___
...@@ -109,7 +109,7 @@ ___ ...@@ -109,7 +109,7 @@ ___
#### Defined in #### Defined in
[src/types.ts:1](https://github.com/transitive-bullshit/chatgpt-api/blob/d1b74a8/src/types.ts#L1) [src/types.ts:1](https://github.com/transitive-bullshit/chatgpt-api/blob/025e7e3/src/types.ts#L1)
___ ___
...@@ -131,7 +131,7 @@ https://chat.openapi.com/backend-api/conversation ...@@ -131,7 +131,7 @@ https://chat.openapi.com/backend-api/conversation
#### Defined in #### Defined in
[src/types.ts:134](https://github.com/transitive-bullshit/chatgpt-api/blob/d1b74a8/src/types.ts#L134) [src/types.ts:134](https://github.com/transitive-bullshit/chatgpt-api/blob/025e7e3/src/types.ts#L134)
___ ___
...@@ -149,7 +149,7 @@ ___ ...@@ -149,7 +149,7 @@ ___
#### Defined in #### Defined in
[src/types.ts:251](https://github.com/transitive-bullshit/chatgpt-api/blob/d1b74a8/src/types.ts#L251) [src/types.ts:251](https://github.com/transitive-bullshit/chatgpt-api/blob/025e7e3/src/types.ts#L251)
___ ___
...@@ -174,7 +174,7 @@ ___ ...@@ -174,7 +174,7 @@ ___
#### Defined in #### Defined in
[src/types.ts:257](https://github.com/transitive-bullshit/chatgpt-api/blob/d1b74a8/src/types.ts#L257) [src/types.ts:257](https://github.com/transitive-bullshit/chatgpt-api/blob/025e7e3/src/types.ts#L257)
___ ___
...@@ -184,7 +184,7 @@ ___ ...@@ -184,7 +184,7 @@ ___
#### Defined in #### Defined in
[src/types.ts:276](https://github.com/transitive-bullshit/chatgpt-api/blob/d1b74a8/src/types.ts#L276) [src/types.ts:276](https://github.com/transitive-bullshit/chatgpt-api/blob/025e7e3/src/types.ts#L276)
___ ___
...@@ -201,7 +201,7 @@ ___ ...@@ -201,7 +201,7 @@ ___
#### Defined in #### Defined in
[src/types.ts:270](https://github.com/transitive-bullshit/chatgpt-api/blob/d1b74a8/src/types.ts#L270) [src/types.ts:270](https://github.com/transitive-bullshit/chatgpt-api/blob/025e7e3/src/types.ts#L270)
___ ___
...@@ -223,7 +223,7 @@ https://chat.openapi.com/backend-api/conversation/message_feedback ...@@ -223,7 +223,7 @@ https://chat.openapi.com/backend-api/conversation/message_feedback
#### Defined in #### Defined in
[src/types.ts:193](https://github.com/transitive-bullshit/chatgpt-api/blob/d1b74a8/src/types.ts#L193) [src/types.ts:193](https://github.com/transitive-bullshit/chatgpt-api/blob/025e7e3/src/types.ts#L193)
___ ___
...@@ -233,7 +233,7 @@ ___ ...@@ -233,7 +233,7 @@ ___
#### Defined in #### Defined in
[src/types.ts:249](https://github.com/transitive-bullshit/chatgpt-api/blob/d1b74a8/src/types.ts#L249) [src/types.ts:249](https://github.com/transitive-bullshit/chatgpt-api/blob/025e7e3/src/types.ts#L249)
___ ___
...@@ -253,7 +253,7 @@ ___ ...@@ -253,7 +253,7 @@ ___
#### Defined in #### Defined in
[src/types.ts:222](https://github.com/transitive-bullshit/chatgpt-api/blob/d1b74a8/src/types.ts#L222) [src/types.ts:222](https://github.com/transitive-bullshit/chatgpt-api/blob/025e7e3/src/types.ts#L222)
___ ___
...@@ -263,7 +263,7 @@ ___ ...@@ -263,7 +263,7 @@ ___
#### Defined in #### Defined in
[src/types.ts:220](https://github.com/transitive-bullshit/chatgpt-api/blob/d1b74a8/src/types.ts#L220) [src/types.ts:220](https://github.com/transitive-bullshit/chatgpt-api/blob/025e7e3/src/types.ts#L220)
___ ___
...@@ -273,7 +273,7 @@ ___ ...@@ -273,7 +273,7 @@ ___
#### Defined in #### Defined in
[src/types.ts:275](https://github.com/transitive-bullshit/chatgpt-api/blob/d1b74a8/src/types.ts#L275) [src/types.ts:275](https://github.com/transitive-bullshit/chatgpt-api/blob/025e7e3/src/types.ts#L275)
___ ___
...@@ -291,7 +291,7 @@ ___ ...@@ -291,7 +291,7 @@ ___
#### Defined in #### Defined in
[src/types.ts:77](https://github.com/transitive-bullshit/chatgpt-api/blob/d1b74a8/src/types.ts#L77) [src/types.ts:77](https://github.com/transitive-bullshit/chatgpt-api/blob/025e7e3/src/types.ts#L77)
___ ___
...@@ -309,7 +309,7 @@ https://chat.openapi.com/backend-api/models ...@@ -309,7 +309,7 @@ https://chat.openapi.com/backend-api/models
#### Defined in #### Defined in
[src/types.ts:70](https://github.com/transitive-bullshit/chatgpt-api/blob/d1b74a8/src/types.ts#L70) [src/types.ts:70](https://github.com/transitive-bullshit/chatgpt-api/blob/025e7e3/src/types.ts#L70)
___ ___
...@@ -328,7 +328,7 @@ https://chat.openapi.com/backend-api/moderations ...@@ -328,7 +328,7 @@ https://chat.openapi.com/backend-api/moderations
#### Defined in #### Defined in
[src/types.ts:97](https://github.com/transitive-bullshit/chatgpt-api/blob/d1b74a8/src/types.ts#L97) [src/types.ts:97](https://github.com/transitive-bullshit/chatgpt-api/blob/025e7e3/src/types.ts#L97)
___ ___
...@@ -348,7 +348,7 @@ https://chat.openapi.com/backend-api/moderations ...@@ -348,7 +348,7 @@ https://chat.openapi.com/backend-api/moderations
#### Defined in #### Defined in
[src/types.ts:114](https://github.com/transitive-bullshit/chatgpt-api/blob/d1b74a8/src/types.ts#L114) [src/types.ts:114](https://github.com/transitive-bullshit/chatgpt-api/blob/025e7e3/src/types.ts#L114)
___ ___
...@@ -370,7 +370,7 @@ to authenticate with the unofficial ChatGPT API. ...@@ -370,7 +370,7 @@ to authenticate with the unofficial ChatGPT API.
#### Defined in #### Defined in
[src/openai-auth.ts:28](https://github.com/transitive-bullshit/chatgpt-api/blob/d1b74a8/src/openai-auth.ts#L28) [src/openai-auth.ts:29](https://github.com/transitive-bullshit/chatgpt-api/blob/025e7e3/src/openai-auth.ts#L29)
___ ___
...@@ -388,7 +388,7 @@ ___ ...@@ -388,7 +388,7 @@ ___
#### Defined in #### Defined in
[src/types.ts:161](https://github.com/transitive-bullshit/chatgpt-api/blob/d1b74a8/src/types.ts#L161) [src/types.ts:161](https://github.com/transitive-bullshit/chatgpt-api/blob/025e7e3/src/types.ts#L161)
___ ___
...@@ -405,7 +405,7 @@ ___ ...@@ -405,7 +405,7 @@ ___
#### Defined in #### Defined in
[src/types.ts:178](https://github.com/transitive-bullshit/chatgpt-api/blob/d1b74a8/src/types.ts#L178) [src/types.ts:178](https://github.com/transitive-bullshit/chatgpt-api/blob/025e7e3/src/types.ts#L178)
___ ___
...@@ -415,7 +415,7 @@ ___ ...@@ -415,7 +415,7 @@ ___
#### Defined in #### Defined in
[src/types.ts:3](https://github.com/transitive-bullshit/chatgpt-api/blob/d1b74a8/src/types.ts#L3) [src/types.ts:3](https://github.com/transitive-bullshit/chatgpt-api/blob/025e7e3/src/types.ts#L3)
___ ___
...@@ -425,7 +425,7 @@ ___ ...@@ -425,7 +425,7 @@ ___
#### Defined in #### Defined in
[src/types.ts:288](https://github.com/transitive-bullshit/chatgpt-api/blob/d1b74a8/src/types.ts#L288) [src/types.ts:288](https://github.com/transitive-bullshit/chatgpt-api/blob/025e7e3/src/types.ts#L288)
___ ___
...@@ -447,7 +447,7 @@ ___ ...@@ -447,7 +447,7 @@ ___
#### Defined in #### Defined in
[src/types.ts:278](https://github.com/transitive-bullshit/chatgpt-api/blob/d1b74a8/src/types.ts#L278) [src/types.ts:278](https://github.com/transitive-bullshit/chatgpt-api/blob/025e7e3/src/types.ts#L278)
___ ___
...@@ -468,7 +468,7 @@ https://chat.openapi.com/api/auth/session ...@@ -468,7 +468,7 @@ https://chat.openapi.com/api/auth/session
#### Defined in #### Defined in
[src/types.ts:8](https://github.com/transitive-bullshit/chatgpt-api/blob/d1b74a8/src/types.ts#L8) [src/types.ts:8](https://github.com/transitive-bullshit/chatgpt-api/blob/025e7e3/src/types.ts#L8)
___ ___
...@@ -490,7 +490,7 @@ ___ ...@@ -490,7 +490,7 @@ ___
#### Defined in #### Defined in
[src/types.ts:30](https://github.com/transitive-bullshit/chatgpt-api/blob/d1b74a8/src/types.ts#L30) [src/types.ts:30](https://github.com/transitive-bullshit/chatgpt-api/blob/025e7e3/src/types.ts#L30)
## Functions ## Functions
...@@ -517,7 +517,7 @@ included them in here. ...@@ -517,7 +517,7 @@ included them in here.
#### Defined in #### Defined in
[src/utils.ts:73](https://github.com/transitive-bullshit/chatgpt-api/blob/d1b74a8/src/utils.ts#L73) [src/utils.ts:73](https://github.com/transitive-bullshit/chatgpt-api/blob/025e7e3/src/utils.ts#L73)
___ ___
...@@ -533,7 +533,7 @@ Gets the default path to chrome's executable for the current platform. ...@@ -533,7 +533,7 @@ Gets the default path to chrome's executable for the current platform.
#### Defined in #### Defined in
[src/openai-auth.ts:463](https://github.com/transitive-bullshit/chatgpt-api/blob/d1b74a8/src/openai-auth.ts#L463) [src/openai-auth.ts:426](https://github.com/transitive-bullshit/chatgpt-api/blob/025e7e3/src/openai-auth.ts#L426)
___ ___
...@@ -549,7 +549,7 @@ recognizes it and blocks access. ...@@ -549,7 +549,7 @@ recognizes it and blocks access.
| Name | Type | | Name | Type |
| :------ | :------ | | :------ | :------ |
| `opts` | `PuppeteerLaunchOptions` & { `captchaToken?`: `string` ; `minimize?`: `boolean` ; `nopechaKey?`: `string` ; `proxyServer?`: `string` } | | `opts` | `PuppeteerLaunchOptions` & { `captchaToken?`: `string` ; `minimize?`: `boolean` ; `nopechaKey?`: `string` ; `proxyServer?`: `string` ; `timeoutMs?`: `number` } |
#### Returns #### Returns
...@@ -557,7 +557,7 @@ recognizes it and blocks access. ...@@ -557,7 +557,7 @@ recognizes it and blocks access.
#### Defined in #### Defined in
[src/openai-auth.ts:248](https://github.com/transitive-bullshit/chatgpt-api/blob/d1b74a8/src/openai-auth.ts#L248) [src/openai-auth.ts:266](https://github.com/transitive-bullshit/chatgpt-api/blob/025e7e3/src/openai-auth.ts#L266)
___ ___
...@@ -603,7 +603,7 @@ with your updated credentials. ...@@ -603,7 +603,7 @@ with your updated credentials.
#### Defined in #### Defined in
[src/openai-auth.ts:50](https://github.com/transitive-bullshit/chatgpt-api/blob/d1b74a8/src/openai-auth.ts#L50) [src/openai-auth.ts:51](https://github.com/transitive-bullshit/chatgpt-api/blob/025e7e3/src/openai-auth.ts#L51)
___ ___
...@@ -619,6 +619,7 @@ ___ ...@@ -619,6 +619,7 @@ ___
| `opts` | `Object` | | `opts` | `Object` |
| `opts.minimize?` | `boolean` | | `opts.minimize?` | `boolean` |
| `opts.nopechaKey?` | `string` | | `opts.nopechaKey?` | `string` |
| `opts.timeoutMs?` | `number` |
#### Returns #### Returns
...@@ -626,7 +627,7 @@ ___ ...@@ -626,7 +627,7 @@ ___
#### Defined in #### Defined in
[src/openai-auth.ts:373](https://github.com/transitive-bullshit/chatgpt-api/blob/d1b74a8/src/openai-auth.ts#L373) [src/openai-auth.ts:395](https://github.com/transitive-bullshit/chatgpt-api/blob/025e7e3/src/openai-auth.ts#L395)
___ ___
...@@ -646,7 +647,7 @@ ___ ...@@ -646,7 +647,7 @@ ___
#### Defined in #### Defined in
[src/utils.ts:39](https://github.com/transitive-bullshit/chatgpt-api/blob/d1b74a8/src/utils.ts#L39) [src/utils.ts:39](https://github.com/transitive-bullshit/chatgpt-api/blob/025e7e3/src/utils.ts#L39)
___ ___
...@@ -666,7 +667,7 @@ ___ ...@@ -666,7 +667,7 @@ ___
#### Defined in #### Defined in
[src/utils.ts:12](https://github.com/transitive-bullshit/chatgpt-api/blob/d1b74a8/src/utils.ts#L12) [src/utils.ts:12](https://github.com/transitive-bullshit/chatgpt-api/blob/025e7e3/src/utils.ts#L12)
___ ___
...@@ -686,7 +687,7 @@ ___ ...@@ -686,7 +687,7 @@ ___
#### Defined in #### Defined in
[src/utils.ts:29](https://github.com/transitive-bullshit/chatgpt-api/blob/d1b74a8/src/utils.ts#L29) [src/utils.ts:29](https://github.com/transitive-bullshit/chatgpt-api/blob/025e7e3/src/utils.ts#L29)
___ ___
...@@ -706,4 +707,4 @@ ___ ...@@ -706,4 +707,4 @@ ___
#### Defined in #### Defined in
[src/utils.ts:19](https://github.com/transitive-bullshit/chatgpt-api/blob/d1b74a8/src/utils.ts#L19) [src/utils.ts:19](https://github.com/transitive-bullshit/chatgpt-api/blob/025e7e3/src/utils.ts#L19)
...@@ -205,12 +205,6 @@ A [conversation demo](./demos/demo-conversation.ts) is also included: ...@@ -205,12 +205,6 @@ A [conversation demo](./demos/demo-conversation.ts) is also included:
npx tsx demos/demo-conversation.ts npx tsx demos/demo-conversation.ts
``` ```
A [browser-based conversation demo](./demos/demo-conversation-browser.ts) is also included:
```bash
npx tsx demos/demo-conversation-browser.ts
```
### Authentication ### Authentication
The authentication section relates to the REST-based version (using `getOpenAIAuth` + `ChatGPTAPI`). The browser-based solution, `ChatGPTAPIBrowser`, takes care of all the authentication for you. The authentication section relates to the REST-based version (using `getOpenAIAuth` + `ChatGPTAPI`). The browser-based solution, `ChatGPTAPIBrowser`, takes care of all the authentication for you.
...@@ -234,7 +228,7 @@ To get session token manually: ...@@ -234,7 +228,7 @@ To get session token manually:
![ChatGPT cookies](./media/session-token.png) ![ChatGPT cookies](./media/session-token.png)
4. Copy the value for `__Secure-next-auth.session-token` and save it to your environment. This will be your `sessionToken`. 4. Copy the value for `__Secure-next-auth.session-token` and save it to your environment. This will be your `sessionToken`.
5. Copy the value for `cf_clearance` and save it to your environment. This will be your `clearanceToken`. 5. Copy the value for `cf_clearance` and save it to your environment. This will be your `clearanceToken`.
6. Copy the value of the `user-agent` header from any request in your `Network` tab. This will be your `userAgent`. 6. Copy the value of the `user-agent` header from any request in your `Network` tab, or copy the result of `navigator.userAgent` command on `Console` tab. This will be your `userAgent`.
Pass `sessionToken`, `clearanceToken`, and `userAgent` to the `ChatGPTAPI` constructor. Pass `sessionToken`, `clearanceToken`, and `userAgent` to the `ChatGPTAPI` constructor.
...@@ -315,8 +309,11 @@ All of these awesome projects are built using the `chatgpt` package. 🤯 ...@@ -315,8 +309,11 @@ All of these awesome projects are built using the `chatgpt` package. 🤯
- [Raycast Extension #2](https://github.com/domnantas/raycast-chatgpt) - [Raycast Extension #2](https://github.com/domnantas/raycast-chatgpt)
- [Telegram Bot #1](https://github.com/realies/chatgpt-telegram-bot) - [Telegram Bot #1](https://github.com/realies/chatgpt-telegram-bot)
- [Telegram Bot #2](https://github.com/dawangraoming/chatgpt-telegram-bot) - [Telegram Bot #2](https://github.com/dawangraoming/chatgpt-telegram-bot)
- [Telegram Bot #3](https://github.com/RainEggplant/chatgpt-telegram-bot) (group privacy mode, ID-based auth)
- [Telegram Bot #4](https://github.com/ArdaGnsrn/chatgpt-telegram) (queue system, ID-based chat thread)
- [Deno Telegram Bot](https://github.com/Ciyou/chatbot-telegram) - [Deno Telegram Bot](https://github.com/Ciyou/chatbot-telegram)
- [Go Telegram Bot](https://github.com/m1guelpf/chatgpt-telegram) - [Go Telegram Bot](https://github.com/m1guelpf/chatgpt-telegram)
- [Telegram Bot for YouTube Summaries](https://github.com/codextde/youtube-summary)
- [GitHub ProBot](https://github.com/oceanlvr/ChatGPTBot) - [GitHub ProBot](https://github.com/oceanlvr/ChatGPTBot)
- [Discord Bot #1](https://github.com/onury5506/Discord-ChatGPT-Bot) - [Discord Bot #1](https://github.com/onury5506/Discord-ChatGPT-Bot)
- [Discord Bot #2](https://github.com/Nageld/ChatGPT-Bot) - [Discord Bot #2](https://github.com/Nageld/ChatGPT-Bot)
...@@ -346,12 +343,14 @@ All of these awesome projects are built using the `chatgpt` package. 🤯 ...@@ -346,12 +343,14 @@ All of these awesome projects are built using the `chatgpt` package. 🤯
- [Askai](https://github.com/yudax42/askai) - [Askai](https://github.com/yudax42/askai)
- [TalkGPT](https://github.com/ShadovvBeast/TalkGPT) - [TalkGPT](https://github.com/ShadovvBeast/TalkGPT)
- [iOS Shortcut](https://github.com/leecobaby/shortcuts/blob/master/other/ChatGPT_EN.md) - [iOS Shortcut](https://github.com/leecobaby/shortcuts/blob/master/other/ChatGPT_EN.md)
- [Slack Bot](https://github.com/trietphm/chatgpt-slackbot/) - [Slack Bot #1](https://github.com/trietphm/chatgpt-slackbot/)
- [Slack Bot #2](https://github.com/lokwkin/chatgpt-slackbot-node/) (with queueing mechanism)
- [Electron Bot](https://github.com/ShiranAbir/chaty) - [Electron Bot](https://github.com/ShiranAbir/chaty)
- [Kodyfire CLI](https://github.com/nooqta/chatgpt-kodyfire) - [Kodyfire CLI](https://github.com/nooqta/chatgpt-kodyfire)
- [Twitch Bot](https://github.com/BennyDeeDev/chatgpt-twitch-bot) - [Twitch Bot](https://github.com/BennyDeeDev/chatgpt-twitch-bot)
- [Continuous Conversation](https://github.com/DanielTerletzkiy/chat-gtp-assistant) - [Continuous Conversation](https://github.com/DanielTerletzkiy/chat-gtp-assistant)
- [Figma plugin](https://github.com/frederickk/chatgpt-figma-plugin) - [Figma plugin](https://github.com/frederickk/chatgpt-figma-plugin)
- [NestJS server](https://github.com/RusDyn/chatgpt_nestjs_server)
If you create a cool integration, feel free to open a PR and add it to the list. If you create a cool integration, feel free to open a PR and add it to the list.
......
MIT License MIT License
Copyright (c) 2022 Travis Fischer Copyright (c) 2023 Travis Fischer
Permission is hereby granted, free of charge, to any person obtaining a copy Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal of this software and associated documentation files (the "Software"), to deal
......
{ {
"name": "chatgpt", "name": "chatgpt",
"version": "3.3.8", "version": "3.3.10",
"description": "Node.js client for the unofficial ChatGPT API.", "description": "Node.js client for the unofficial ChatGPT API.",
"author": "Travis Fischer <travis@transitivebullsh.it>", "author": "Travis Fischer <travis@transitivebullsh.it>",
"repository": "transitive-bullshit/chatgpt-api", "repository": "transitive-bullshit/chatgpt-api",
......
...@@ -203,12 +203,6 @@ A [conversation demo](./demos/demo-conversation.ts) is also included: ...@@ -203,12 +203,6 @@ A [conversation demo](./demos/demo-conversation.ts) is also included:
npx tsx demos/demo-conversation.ts npx tsx demos/demo-conversation.ts
``` ```
A [browser-based conversation demo](./demos/demo-conversation-browser.ts) is also included:
```bash
npx tsx demos/demo-conversation-browser.ts
```
### Authentication ### Authentication
The authentication section relates to the REST-based version (using `getOpenAIAuth` + `ChatGPTAPI`). The browser-based solution, `ChatGPTAPIBrowser`, takes care of all the authentication for you. The authentication section relates to the REST-based version (using `getOpenAIAuth` + `ChatGPTAPI`). The browser-based solution, `ChatGPTAPIBrowser`, takes care of all the authentication for you.
...@@ -232,7 +226,7 @@ To get session token manually: ...@@ -232,7 +226,7 @@ To get session token manually:
![ChatGPT cookies](./media/session-token.png) ![ChatGPT cookies](./media/session-token.png)
4. Copy the value for `__Secure-next-auth.session-token` and save it to your environment. This will be your `sessionToken`. 4. Copy the value for `__Secure-next-auth.session-token` and save it to your environment. This will be your `sessionToken`.
5. Copy the value for `cf_clearance` and save it to your environment. This will be your `clearanceToken`. 5. Copy the value for `cf_clearance` and save it to your environment. This will be your `clearanceToken`.
6. Copy the value of the `user-agent` header from any request in your `Network` tab. This will be your `userAgent`. 6. Copy the value of the `user-agent` header from any request in your `Network` tab, or copy the result of `navigator.userAgent` command on `Console` tab. This will be your `userAgent`.
Pass `sessionToken`, `clearanceToken`, and `userAgent` to the `ChatGPTAPI` constructor. Pass `sessionToken`, `clearanceToken`, and `userAgent` to the `ChatGPTAPI` constructor.
...@@ -314,6 +308,7 @@ All of these awesome projects are built using the `chatgpt` package. 🤯 ...@@ -314,6 +308,7 @@ All of these awesome projects are built using the `chatgpt` package. 🤯
- [Telegram Bot #1](https://github.com/realies/chatgpt-telegram-bot) - [Telegram Bot #1](https://github.com/realies/chatgpt-telegram-bot)
- [Telegram Bot #2](https://github.com/dawangraoming/chatgpt-telegram-bot) - [Telegram Bot #2](https://github.com/dawangraoming/chatgpt-telegram-bot)
- [Telegram Bot #3](https://github.com/RainEggplant/chatgpt-telegram-bot) (group privacy mode, ID-based auth) - [Telegram Bot #3](https://github.com/RainEggplant/chatgpt-telegram-bot) (group privacy mode, ID-based auth)
- [Telegram Bot #4](https://github.com/ArdaGnsrn/chatgpt-telegram) (queue system, ID-based chat thread)
- [Deno Telegram Bot](https://github.com/Ciyou/chatbot-telegram) - [Deno Telegram Bot](https://github.com/Ciyou/chatbot-telegram)
- [Go Telegram Bot](https://github.com/m1guelpf/chatgpt-telegram) - [Go Telegram Bot](https://github.com/m1guelpf/chatgpt-telegram)
- [Telegram Bot for YouTube Summaries](https://github.com/codextde/youtube-summary) - [Telegram Bot for YouTube Summaries](https://github.com/codextde/youtube-summary)
...@@ -339,7 +334,7 @@ All of these awesome projects are built using the `chatgpt` package. 🤯 ...@@ -339,7 +334,7 @@ All of these awesome projects are built using the `chatgpt` package. 🤯
- [WhatsApp Bot #1](https://github.com/pascalroget/whatsgpt) (multi-user support) - [WhatsApp Bot #1](https://github.com/pascalroget/whatsgpt) (multi-user support)
- [WhatsApp Bot #2](https://github.com/amosayomide05/chatgpt-whatsapp-bot) - [WhatsApp Bot #2](https://github.com/amosayomide05/chatgpt-whatsapp-bot)
- [WhatsApp Bot #3](https://github.com/navopw/whatsapp-chatgpt) - [WhatsApp Bot #3](https://github.com/navopw/whatsapp-chatgpt)
- [Matrix Bot](https://github.com/jakecoppinger/matrix-chatgpt-bot) - [Matrix Bot](https://github.com/matrixgpt/matrix-chatgpt-bot)
- [Rental Cover Letter Generator](https://sharehouse.app/ai) - [Rental Cover Letter Generator](https://sharehouse.app/ai)
- [Assistant CLI](https://github.com/diciaup/assistant-cli) - [Assistant CLI](https://github.com/diciaup/assistant-cli)
- [Teams Bot](https://github.com/formulahendry/chatgpt-teams-bot) - [Teams Bot](https://github.com/formulahendry/chatgpt-teams-bot)
...@@ -353,6 +348,7 @@ All of these awesome projects are built using the `chatgpt` package. 🤯 ...@@ -353,6 +348,7 @@ All of these awesome projects are built using the `chatgpt` package. 🤯
- [Twitch Bot](https://github.com/BennyDeeDev/chatgpt-twitch-bot) - [Twitch Bot](https://github.com/BennyDeeDev/chatgpt-twitch-bot)
- [Continuous Conversation](https://github.com/DanielTerletzkiy/chat-gtp-assistant) - [Continuous Conversation](https://github.com/DanielTerletzkiy/chat-gtp-assistant)
- [Figma plugin](https://github.com/frederickk/chatgpt-figma-plugin) - [Figma plugin](https://github.com/frederickk/chatgpt-figma-plugin)
- [NestJS server](https://github.com/RusDyn/chatgpt_nestjs_server)
- [Wordsmith: Add-in for Microsoft Word](https://github.com/xtremehpx/Wordsmith) - [Wordsmith: Add-in for Microsoft Word](https://github.com/xtremehpx/Wordsmith)
......
...@@ -126,14 +126,16 @@ export async function getOpenAIAuth({ ...@@ -126,14 +126,16 @@ export async function getOpenAIAuth({
await delay(500) await delay(500)
// click login button and wait for navigation to finish // click login button and wait for navigation to finish
await Promise.all([ do {
page.waitForNavigation({ await Promise.all([
waitUntil: 'networkidle2', page.waitForNavigation({
timeout: timeoutMs waitUntil: 'networkidle2',
}), timeout: timeoutMs
}),
page.click('#__next .btn-primary') page.click('#__next .btn-primary')
]) ])
await delay(500)
} while (page.url().endsWith('/auth/login'))
await checkForChatGPTAtCapacity(page, { timeoutMs }) await checkForChatGPTAtCapacity(page, { timeoutMs })
...@@ -180,11 +182,22 @@ export async function getOpenAIAuth({ ...@@ -180,11 +182,22 @@ export async function getOpenAIAuth({
await waitForRecaptcha(page, { timeoutMs }) await waitForRecaptcha(page, { timeoutMs })
} else if (hasRecaptchaPlugin) { } else if (hasRecaptchaPlugin) {
console.log('solving captchas using 2captcha...') console.log('solving captchas using 2captcha...')
const res = await page.solveRecaptchas()
if (res.captchas?.length) { // Add retries in case network is unstable
console.log('captchas result', res) const retries = 3
} else { for (let i = 0; i < retries; i++) {
console.log('no captchas found') try {
const res = await page.solveRecaptchas()
if (res.captchas?.length) {
console.log('captchas result', res)
break
} else {
console.log('no captchas found')
await delay(500)
}
} catch (e) {
console.log('captcha error', e)
}
} }
} }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment