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 { oraPromise } from 'ora'
import { ChatGPTAPI, getOpenAIAuth } from '../src'
import { ChatGPTAPIBrowser } from '../src'
dotenv.config()
......@@ -16,12 +16,12 @@ async function main() {
const email = process.env.OPENAI_EMAIL
const password = process.env.OPENAI_PASSWORD
const authInfo = await getOpenAIAuth({
const api = new ChatGPTAPIBrowser({
email,
password
password,
debug: false,
minimize: true
})
const api = new ChatGPTAPI({ ...authInfo })
await api.initSession()
const prompt = 'Write a poem about cats.'
......@@ -71,6 +71,7 @@ async function main() {
)
console.log('\n' + res.response + '\n')
// close the browser at the end
await api.closeSession()
}
......
......@@ -49,7 +49,7 @@ An error if it fails.
#### 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.
#### 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.
#### 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.
#### 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.
#### 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.
#### 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`.
#### 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
......@@ -80,7 +80,7 @@ Gets the current Cloudflare clearance token (`cf_clearance` cookie value).
#### 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.
#### 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.
#### 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.
#### 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
......@@ -152,7 +152,7 @@ An error if it fails.
#### 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.
#### 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.
#### 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
#### 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.
#### 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
#### 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 @@ ___
#### 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.
| `opts.isMicrosoftLogin?` | `boolean` | **`Default Value`** `false` * |
| `opts.markdown?` | `boolean` | **`Default Value`** `true` * |
| `opts.minimize?` | `boolean` | **`Default Value`** `true` * |
| `opts.nopechaKey?` | `string` | **`Default Value`** `undefined` * |
| `opts.password` | `string` | - |
| `opts.proxyServer?` | `string` | **`Default Value`** `undefined` * |
......@@ -60,7 +61,7 @@ Creates a new client for automating the ChatGPT webapp.
#### 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
......@@ -74,7 +75,7 @@ Creates a new client for automating the ChatGPT webapp.
#### 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
......@@ -94,7 +95,7 @@ Creates a new client for automating the ChatGPT webapp.
#### 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 @@ ___
#### 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.
#### 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.
#### 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.
#### 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.
#### 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.
#### 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 @@ ___
#### 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.
#### 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
#### 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 @@ ___
#### 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 @@ ___
#### 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 @@ ___
#### 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 @@
#### 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 @@ ___
#### 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 @@ ___
#### 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 @@ ___
#### 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
#### 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 @@ ___
#### 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 @@ ___
#### 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 @@ ___
#### 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 @@ ___
#### 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
#### 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 @@ ___
#### 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 @@ ___
#### 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 @@ ___
#### 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 @@ ___
#### 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 @@ ___
#### 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
#### 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
#### 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
#### 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.
#### 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 @@ ___
#### 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 @@ ___
#### 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 @@ ___
#### 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 @@ ___
#### 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 @@ ___
#### 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
#### 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 @@ ___
#### 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
......@@ -517,7 +517,7 @@ included them in here.
#### 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.
#### 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.
| 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
......@@ -557,7 +557,7 @@ recognizes it and blocks access.
#### 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.
#### 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 @@ ___
| `opts` | `Object` |
| `opts.minimize?` | `boolean` |
| `opts.nopechaKey?` | `string` |
| `opts.timeoutMs?` | `number` |
#### Returns
......@@ -626,7 +627,7 @@ ___
#### 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 @@ ___
#### 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 @@ ___
#### 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 @@ ___
#### 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 @@ ___
#### 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:
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
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:
![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`.
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.
......@@ -315,8 +309,11 @@ All of these awesome projects are built using the `chatgpt` package. 🤯
- [Raycast Extension #2](https://github.com/domnantas/raycast-chatgpt)
- [Telegram Bot #1](https://github.com/realies/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)
- [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)
- [Discord Bot #1](https://github.com/onury5506/Discord-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. 🤯
- [Askai](https://github.com/yudax42/askai)
- [TalkGPT](https://github.com/ShadovvBeast/TalkGPT)
- [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)
- [Kodyfire CLI](https://github.com/nooqta/chatgpt-kodyfire)
- [Twitch Bot](https://github.com/BennyDeeDev/chatgpt-twitch-bot)
- [Continuous Conversation](https://github.com/DanielTerletzkiy/chat-gtp-assistant)
- [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.
......
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
of this software and associated documentation files (the "Software"), to deal
......
{
"name": "chatgpt",
"version": "3.3.8",
"version": "3.3.10",
"description": "Node.js client for the unofficial ChatGPT API.",
"author": "Travis Fischer <travis@transitivebullsh.it>",
"repository": "transitive-bullshit/chatgpt-api",
......
......@@ -203,12 +203,6 @@ A [conversation demo](./demos/demo-conversation.ts) is also included:
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
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:
![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`.
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.
......@@ -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 #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)
- [Go Telegram Bot](https://github.com/m1guelpf/chatgpt-telegram)
- [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. 🤯
- [WhatsApp Bot #1](https://github.com/pascalroget/whatsgpt) (multi-user support)
- [WhatsApp Bot #2](https://github.com/amosayomide05/chatgpt-whatsapp-bot)
- [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)
- [Assistant CLI](https://github.com/diciaup/assistant-cli)
- [Teams Bot](https://github.com/formulahendry/chatgpt-teams-bot)
......@@ -353,6 +348,7 @@ All of these awesome projects are built using the `chatgpt` package. 🤯
- [Twitch Bot](https://github.com/BennyDeeDev/chatgpt-twitch-bot)
- [Continuous Conversation](https://github.com/DanielTerletzkiy/chat-gtp-assistant)
- [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)
......
......@@ -126,14 +126,16 @@ export async function getOpenAIAuth({
await delay(500)
// click login button and wait for navigation to finish
await Promise.all([
page.waitForNavigation({
waitUntil: 'networkidle2',
timeout: timeoutMs
}),
page.click('#__next .btn-primary')
])
do {
await Promise.all([
page.waitForNavigation({
waitUntil: 'networkidle2',
timeout: timeoutMs
}),
page.click('#__next .btn-primary')
])
await delay(500)
} while (page.url().endsWith('/auth/login'))
await checkForChatGPTAtCapacity(page, { timeoutMs })
......@@ -180,11 +182,22 @@ export async function getOpenAIAuth({
await waitForRecaptcha(page, { timeoutMs })
} else if (hasRecaptchaPlugin) {
console.log('solving captchas using 2captcha...')
const res = await page.solveRecaptchas()
if (res.captchas?.length) {
console.log('captchas result', res)
} else {
console.log('no captchas found')
// Add retries in case network is unstable
const retries = 3
for (let i = 0; i < retries; i++) {
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