From 4eb0fda8ac3a9e46c3750e56fbd4e00682cfd102 Mon Sep 17 00:00:00 2001 From: Muhamad Ramdani Date: Sat, 18 Mar 2023 01:06:08 +0700 Subject: [PATCH 1/2] Feature | More modular code and add auto re-login after session expires (auto login only) --- README.md | 58 +++- config.example.json | 28 +- demos/demo-client-auto-after-login.gif | Bin 0 -> 31439 bytes demos/demo-client-auto-before-login.gif | Bin 0 -> 55522 bytes demos/demo-client-auto-re-login.gif | Bin 0 -> 81372 bytes demos/demo-converstation-cli.gif | Bin 0 -> 82174 bytes dist/cli.js | 3 + dist/client.js | 11 + dist/client_auto.js | 26 ++ dist/client_manual.js | 39 +++ dist/credential.js | 2 +- dist/index.js | 397 +++++++++++++-------- dist/mail.js | 4 +- package-lock.json | 50 ++- package.json | 26 +- src/cli.ts | 4 + src/client_auto.ts | 37 ++ src/client_manual.ts | 53 +++ src/credential.ts | 2 +- src/index.ts | 439 +++++++++++++++--------- src/mail.ts | 4 +- 21 files changed, 858 insertions(+), 325 deletions(-) create mode 100644 demos/demo-client-auto-after-login.gif create mode 100644 demos/demo-client-auto-before-login.gif create mode 100644 demos/demo-client-auto-re-login.gif create mode 100644 demos/demo-converstation-cli.gif create mode 100644 dist/cli.js create mode 100644 dist/client.js create mode 100644 dist/client_auto.js create mode 100644 dist/client_manual.js create mode 100644 src/cli.ts create mode 100644 src/client_auto.ts create mode 100644 src/client_manual.ts diff --git a/README.md b/README.md index a3fe36e..7d3f97e 100644 --- a/README.md +++ b/README.md @@ -1,10 +1,33 @@ # Quora Poe -This is a CLI tool to call the Quora Poe API through GraphQL. It is a work in progress, and currently supports the following: +This is a tool to call the Quora Poe API through GraphQL. It is a work in progress, and currently supports the following: - Auto login using temporary email, so you don't need to use your own email/phone number. -- Semi auto login using your own email/phone number, you need to enter the OTP manually. +- Manual login using your own email/phone number, you need to enter the OTP manually. - Chat with 4 types of bots (Sage, Claude, ChatGPT, and Dragonfly). - Stream responses support from the bot. - Clear the chat history. +- Auto re-login after session expires (only for auto login). +- Module support, now you can use this tool as a module. + +# Demo's +## CLI +

+ CLI demo +

+ +## Client module (after login) +

+ Client Demo after login +

+ +## Client module (before login) +

+ Client Demo before login +

+ +## Client module (auto re-login after session expires) +

+ Client Demo re-login after session expires +

## Requirements - NodeJS 16.0.0 or higher @@ -19,19 +42,36 @@ npm install ``` ## Usage - -To start, run: - +### Module +Please see file [`./src/client_auto.ts`](./src/client_auto.ts) or [`./src/client_manual.ts`](./src/client_manual.ts) for example. +Or you can try to run the following command: ``` -npm start +node ./dist/client_auto.js ``` +### CLI +``` +npm run cli +``` +If you don't want stream responses, you can change the `stream_response` variable in the `config.json` file to `false`. ## TODO List -- [ ] Make it modular, so it can be used as a library -- [ ] Add support for re-login after session expires - [ ] Add support for get chat history - [ ] Add support for delete message +## Notes +- Since I have to work on this project in my free time, I can't guarantee that I will be able to update this project frequently. +- I'm not have much experience with TypeScript, so if you have any suggestions, best practices, or anything, please let me know or create a pull request. +- I'm not publishing this tool to NPM yet. If you want to use this tool as a module, you can clone this repo and build it yourself. +- If you have any questions, please create an issue. + ## Contributing +To contribute to this repo, fork it first, then create a new branch, and create a pull request. + +## Disclaimer +This tool is not affiliated with Quora in any way. I am not responsible for any misuse of this tool. +Don't sue me. + +Also, please don't use auto login feature to spam the bot, like creating a lot of accounts for any purpose. I don't want this temporary email service to be banned. -To contribute to this repo, fork first and create a pull request. +## License +[MIT](https://choosealicense.com/licenses/mit/) \ No newline at end of file diff --git a/config.example.json b/config.example.json index fa7f775..b8ea8e3 100644 --- a/config.example.json +++ b/config.example.json @@ -1 +1,27 @@ -{"quora_formkey":"","quora_cookie":""} \ No newline at end of file +{ + "stream_response": true, + "quora_formkey": "", + "quora_cookie": "", + "channel_name": "", + "app_settings": { + "formkey": "", + "tchannelData": { + "minSeq": "", + "channel": "", + "channelHash": "", + "boxName": "", + "baseHost": "", + "targetUrl": "", + "enableWebsocket": true + } + }, + "chat_ids": { + "a2": 0, + "capybara": 0, + "nutria": 0, + "chinchilla": 0 + }, + "auto_login": true, + "email": "", + "sid_token": "" +} \ No newline at end of file diff --git a/demos/demo-client-auto-after-login.gif b/demos/demo-client-auto-after-login.gif new file mode 100644 index 0000000000000000000000000000000000000000..6d59f1f561d58ea0ff7f4e05f8aa151103b18cf5 GIT binary patch literal 31439 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�!_a82)oG?D;2bfg%hOA8=^pb$Dz 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

Jan-+zZms89se2{3mib% zUD9^D?w@LqWNm|TK;7S)Csv;h>>+cg)xRwn1V<|rHUE!&%ZA0xUSE}|=ML3l{z=cL zIs$^`nQ#`AG}W!g@UTf{ZZF*-7ddL+x7D$9D9B4!=Z(pD?sDEMpLbAS+aEhkvG=J( zb=DUinCzWoj^3~l@j~^FO?1fnJ$5Fz7(;O!H?s5#$!VsN%Nv!T0Oa_*7~XPUD9?Zv zqH?}zSIdix^#vLD-f_bb8K+?A_W-_JL4BdkOMmy5@bB{mI#h|ykmo{XhB{3dtU445 zd6o&hxNJKo3N#Vn@3dbPu(B5eU;SyHN!ET1UG|Q@UV?Rmr1>*wV*{a_tk@T}34SD} zests<+NB0lwO*s@OKh4Y{Gc?9*!b3Xx;vnNqP%dAKG?lAo5IHDaAC{cHIwoOQYgYp zIc2;nFP>&cUPiN=)Q*N{Qx6{Ku+}34`n@WKw1#V)c_Z~|wE8~GH##EQekr`ht43@o z_&igI7fh&`&)8hTfB#2uDcp$>IwC=>>V2W38bFR+h;DcXWsPY>gm|AO+vBZG_okjz zg`2bl}qS1O(Q9#<~1r!pg6MhA*(>Tm_Q#vOGcHRT9{k=b ztMrt=-?-1#r&eXg*@X%d|LYb=`{IB7%j<%AIi|m)QZPAz22eJj#0{?iU4pqy<)U9| zLH)JB$TwjdOZ_Lw+>GZ$_14?}c*4DGZb>)=RAug^PKp@G6Ad~Z4{a}fLNlyatymp+FLY_uVphWT}X5jUdqxDsvZ@_XFN`A zsetTf!QAjL<;`Iz2Vw=nZ3dx+2Ug?HkUdUAE!SbL904n}Q)3vIE1PaISTEp{y8RX8 z;seu-t^GBPdeiAh%3es%Nw6tOaBeqr9&nUwwA#1$GlQLYeIW711t!FJTN9o*)+gY~ zqMNi1+mtXX;@|1ihFtoQz>@m;U4hCKhgCMM~KRABe`KbEl8 z--&-wi&d%?`zQX7#?kXa!H}$ne+QZT?}x<4tFJ8IBK*9~7Y>G~04QlF8q|thr$8hf zV7sE1*A;u2qH5%-$j`g_vvwGrTwVUGG{}-S9|ZMC%ENg=KkK94lT}8G^bbF+irP>e zFE)w)vig2Qjmx(5Y||P(uKu*lp-}(W%2$oaO7b0YdDPeNsVct*JFuw#N)f^Ydj0=P z)51$Y06+kk?dEgLwkWenjYR3B{Y2yUM;`ybEUf&Ou5BnE`9GV_|8rrbLsR9%?f=kx zc4)pgbzezBXYwLJY9{%AF9ZFj6@&jcTa_A#-9h`lJ)6&e-)!rW-bw#Yv;FVq|KEZ= N|EH(&Uw>fwKLBX>$lm|} literal 0 HcmV?d00001 diff --git a/demos/demo-client-auto-before-login.gif b/demos/demo-client-auto-before-login.gif new file mode 100644 index 0000000000000000000000000000000000000000..81d5625c723051f734105e05315840b07d11ba4e GIT binary patch literal 55522 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 literal 0 HcmV?d00001 diff --git a/demos/demo-client-auto-re-login.gif b/demos/demo-client-auto-re-login.gif new file mode 100644 index 0000000000000000000000000000000000000000..2623928539241ca4b15860767647b6be17fd2acc GIT binary patch literal 81372 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 literal 0 HcmV?d00001 diff --git a/demos/demo-converstation-cli.gif b/demos/demo-converstation-cli.gif new file mode 100644 index 0000000000000000000000000000000000000000..9aa3d6565d7f9582d6b8618ffd52254c25aacd14 GIT binary patch literal 82174 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 L8nXXKO85K=o3^vl literal 0 HcmV?d00001 diff --git a/dist/cli.js b/dist/cli.js new file mode 100644 index 0000000..5daf215 --- /dev/null +++ b/dist/cli.js @@ -0,0 +1,3 @@ +import ChatBot from "./index.js"; +const bot = new ChatBot(); +await bot.startCli(); diff --git a/dist/client.js b/dist/client.js new file mode 100644 index 0000000..fb6b744 --- /dev/null +++ b/dist/client.js @@ -0,0 +1,11 @@ +import ChatBot from "./index.js"; +const bot = new ChatBot(); +// Used to check if the formkey and cookie is available +const isFormkeyAvailable = await bot.getCredentials(); +if (!isFormkeyAvailable) { + console.log("Formkey and cookie not available"); + // Set the formkey, cookie and any other data needed and save it into config.json + await bot.setCredentials(); + const chatId = await bot.getChatId("a2"); + console.log(chatId); +} diff --git a/dist/client_auto.js b/dist/client_auto.js new file mode 100644 index 0000000..d7326c0 --- /dev/null +++ b/dist/client_auto.js @@ -0,0 +1,26 @@ +import ChatBot from "./index.js"; +const bot = new ChatBot(); +// Used to check if the formkey and cookie is available +const isFormkeyAvailable = await bot.getCredentials(); +if (!isFormkeyAvailable) { + await bot.setCredentials(); + await bot.subscribe(); // for websocket(stream response) purpose + await bot.login("auto"); +} +const ai = "a2"; // bot list are in config.example.json, key "chat_ids" +// If you want to clear the chat context, you can use this +await bot.clearContext(ai); +// If you want to get the response (with stream), you can use this +// NOTE that you need to call this before you send the message +// await getUpdatedSettings(config.channel_name, config.quora_cookie); +// await bot.subscribe(); +// const ws = await connectWs(); +// If you want to send a message, you can use this +await bot.sendMsg(ai, "Hello, who are you?"); +// If you want to get the response (without stream), you can use this +const response = await bot.getResponse(ai); +console.log(response); +// // If you want to get the response (with stream), you can use this +// process.stdout.write("Response: "); +// await listenWs(ws); +// console.log('\n'); diff --git a/dist/client_manual.js b/dist/client_manual.js new file mode 100644 index 0000000..e741946 --- /dev/null +++ b/dist/client_manual.js @@ -0,0 +1,39 @@ +import ChatBot from "./index.js"; +const bot = new ChatBot(); +// Used to check if the formkey and cookie is available +const isFormkeyAvailable = await bot.getCredentials(); +if (!isFormkeyAvailable) { + console.log("Formkey and cookie not available"); + // Set the formkey, cookie and any other data needed and save it into config.json + await bot.setCredentials(); + const myEmail = "myemail@mail.com"; + const signInStatus = await bot.sendVerifCode(null, myEmail); + // After you get the verification code, you can use this step to log in + // then check signInStatus + let loginStatus = "invalid_verification_code"; + while (loginStatus !== "success") { + if (signInStatus === 'user_with_confirmed_phone_number_not_found') { + loginStatus = await bot.signUpWithVerificationCode(myEmail, null, 123456); // 123456 is the verification code + } + else { + loginStatus = await bot.signInOrUp(myEmail, null, 123456); // 123456 is the verification code + } + } +} +const ai = "a2"; // bot list are in config.example.json, key "chat_ids" +// If you want to clear the chat context, you can use this +await bot.clearContext(ai); +// If you want to get the response (with stream), you can use this +// NOTE that you need to call this before you send the message +// await getUpdatedSettings(config.channel_name, config.quora_cookie); +// await bot.subscribe(); +// const ws = await connectWs(); +// If you want to send a message, you can use this +await bot.sendMsg(ai, "Hello, who are you?"); +// If you want to get the response (without stream), you can use this +const response = await bot.getResponse(ai); +console.log(response); +// // If you want to get the response (with stream), you can use this +// process.stdout.write("Response: "); +// await listenWs(ws); +// console.log('\n'); diff --git a/dist/credential.js b/dist/credential.js index 6c495a6..d5c813f 100644 --- a/dist/credential.js +++ b/dist/credential.js @@ -19,7 +19,7 @@ const getUpdatedSettings = async (channelName, pbCookie) => { const appSettings = await _setting.json(), { tchannelData: { minSeq: minSeq } } = appSettings; const credentials = JSON.parse(readFileSync("config.json", "utf8")); credentials.app_settings.tchannelData.minSeq = minSeq; - writeFile("config.json", JSON.stringify(credentials), function (err) { + writeFile("config.json", JSON.stringify(credentials, null, 4), function (err) { if (err) { console.log(err); } diff --git a/dist/index.js b/dist/index.js index ec401f1..861c527 100644 --- a/dist/index.js +++ b/dist/index.js @@ -3,9 +3,10 @@ import prompts from "prompts"; import ora from "ora"; import * as dotenv from "dotenv"; import { readFileSync, writeFile } from "fs"; -import { scrape, getUpdatedSettings } from "./credential.js"; -import { listenWs, connectWs, disconnectWs } from "./websocket.js"; +import { getUpdatedSettings, scrape } from "./credential.js"; +import { connectWs, disconnectWs, listenWs } from "./websocket.js"; import * as mail from "./mail.js"; +import randomUseragent from 'random-useragent'; dotenv.config(); const spinner = ora({ color: "cyan", @@ -20,53 +21,66 @@ const queries = { signUpWithVerificationCodeMutation: readFileSync(gqlDir + "/SignupWithVerificationCodeMutation.graphql", "utf8"), sendVerificationCodeMutation: readFileSync(gqlDir + "/SendVerificationCodeForLoginMutation.graphql", "utf8"), }; -let [pbCookie, channelName, appSettings, formkey] = ["", "", "", ""]; class ChatBot { constructor() { + this.config = JSON.parse(readFileSync("config.json", "utf8")); this.headers = { 'Content-Type': 'application/json', - 'Accept': '*/*', 'Host': 'poe.com', - 'Accept-Encoding': 'gzip, deflate, br', 'Connection': 'keep-alive', 'Origin': 'https://poe.com', + 'User-Agent': randomUseragent.getRandom(), }; this.chatId = 0; this.bot = ""; + this.reConnectWs = false; } async getCredentials() { - const credentials = JSON.parse(readFileSync("config.json", "utf8")); - const { quora_formkey, quora_cookie } = credentials; + const { quora_formkey, channel_name, quora_cookie } = this.config; if (quora_formkey.length > 0 && quora_cookie.length > 0) { - formkey = quora_formkey; - pbCookie = quora_cookie; - // For websocket later feature - channelName = credentials.channel_name; - appSettings = credentials.app_settings; - this.headers["poe-formkey"] = formkey; - this.headers["poe-tchannel"] = channelName; - this.headers["Cookie"] = pbCookie; + this.headers["poe-formkey"] = quora_formkey; + this.headers["poe-tchannel"] = channel_name; + this.headers["Cookie"] = quora_cookie; } return quora_formkey.length > 0 && quora_cookie.length > 0; } + async setChatIds() { + const [a2, capybara, nutria, chinchilla] = await Promise.all([ + this.getChatId("a2"), + this.getChatId("capybara"), + this.getChatId("nutria"), + this.getChatId("chinchilla"), + ]); + const credentials = JSON.parse(readFileSync("config.json", "utf8")); + credentials.chat_ids = { + a2, + capybara, + nutria, + chinchilla, + }; + this.config.chat_ids = { + a2, + capybara, + nutria, + chinchilla, + }; + writeFile("config.json", JSON.stringify(credentials, null, 4), function (err) { + if (err) { + console.log(err); + } + }); + } async setCredentials() { let result = await scrape(); - const credentials = JSON.parse(readFileSync("config.json", "utf8")); - credentials.quora_formkey = result.appSettings.formkey; - credentials.quora_cookie = result.pbCookie; - // For websocket later feature - credentials.channel_name = result.channelName; - credentials.app_settings = result.appSettings; + this.config.quora_formkey = result.appSettings.formkey; + this.config.quora_cookie = result.pbCookie; + this.config.channel_name = result.channelName; + this.config.app_settings = result.appSettings; // set value - formkey = result.appSettings.formkey; - pbCookie = result.pbCookie; - // For websocket later feature - channelName = result.channelName; - appSettings = result.appSettings; - this.headers["poe-formkey"] = formkey; - this.headers["poe-tchannel"] = channelName; - this.headers["Cookie"] = pbCookie; - writeFile("config.json", JSON.stringify(credentials), function (err) { + this.headers["poe-formkey"] = this.config.quora_formkey; + this.headers["poe-tchannel"] = this.config.channel_name; + this.headers["Cookie"] = this.config.quora_cookie; + writeFile("config.json", JSON.stringify(this.config, null, 4), function (err) { if (err) { console.log(err); } @@ -91,89 +105,7 @@ class ChatBot { }; await this.makeRequest(query); } - async start() { - const isFormkeyAvailable = await this.getCredentials(); - if (!isFormkeyAvailable) { - const { mode } = await prompts({ - type: "select", - name: "mode", - message: "Select", - choices: [ - { title: "Auto [This will use temp email to get Verification Code]", value: "auto" }, - { title: "Semi-Auto [Use you own email/phone number]", value: "semi" }, - { title: "exit", value: "exit" } - ], - }); - if (mode === "exit") { - process.exit(0); - } - await this.setCredentials(); - await this.subscribe(); - await this.login(mode); - } - await getUpdatedSettings(channelName, pbCookie); - await this.subscribe(); - const ws = await connectWs(); - const { bot } = await prompts({ - type: "select", - name: "bot", - message: "Select", - choices: [ - { title: "Claude (Powered by Anthropic)", value: "a2" }, - { title: "Sage (Powered by OpenAI - logical)", value: "capybara" }, - { title: "Dragonfly (Powered by OpenAI - simpler)", value: "nutria" }, - { title: "ChatGPT (Powered by OpenAI - current)", value: "chinchilla" }, - ], - }); - await this.getChatId(bot); - let helpMsg = "Available commands: !help !exit, !clear, !submit" + - "\n!help - show this message" + - "\n!exit - exit the chat" + - "\n!clear - clear chat history" + - "\n!submit - submit prompt"; - await this.clearContext(); - console.log(helpMsg); - let submitedPrompt = ""; - while (true) { - const { prompt } = await prompts({ - type: "text", - name: "prompt", - message: "Ask:", - }); - if (prompt.length > 0) { - if (prompt === "!help") { - console.log(helpMsg); - } - else if (prompt === "!exit") { - await disconnectWs(ws); - process.exit(0); - } - else if (prompt === "!clear") { - spinner.start("Clearing chat history..."); - await this.clearContext(); - submitedPrompt = ""; - spinner.stop(); - console.log("Chat history cleared"); - } - else if (prompt === "!submit") { - if (submitedPrompt.length === 0) { - console.log("No prompt to submit"); - continue; - } - await this.sendMsg(submitedPrompt); - process.stdout.write("Response: "); - await listenWs(ws); - console.log('\n'); - submitedPrompt = ""; - } - else { - submitedPrompt += prompt + "\n"; - } - } - } - } async makeRequest(request) { - this.headers["Content-Length"] = Buffer.byteLength(JSON.stringify(request), 'utf8'); const response = await fetch('https://poe.com/api/gql_POST', { method: 'POST', headers: this.headers, @@ -248,6 +180,7 @@ class ChatBot { } spinner.stop(); } + await this.setChatIds(); } async signInOrUp(phoneNumber, email, verifyCode) { console.log("Signing in/up..."); @@ -305,9 +238,19 @@ class ChatBot { return status; } catch (e) { - throw e; + console.log("Error sending verification code, please try again " + e); + await this.resetConfig(); } } + async resetConfig() { + const defaultConfig = JSON.parse(readFileSync("config.example.json", "utf8")); + console.log("Resetting config..."); + writeFile("config.json", JSON.stringify(defaultConfig, null, 4), function (err) { + if (err) { + console.log(err); + } + }); + } async getChatId(bot) { try { const { data: { chatOfBot: { chatId } } } = await this.makeRequest({ @@ -318,65 +261,235 @@ class ChatBot { }); this.chatId = chatId; this.bot = bot; + return chatId; } catch (e) { + console.log(e); + await this.resetConfig(); throw new Error("Could not get chat id, invalid formkey or cookie! Please remove the quora_formkey value from the config.json file and try again."); } } - async clearContext() { + async clearContext(bot) { try { - await this.makeRequest({ + const data = await this.makeRequest({ query: `${queries.addMessageBreakMutation}`, - variables: { chatId: this.chatId }, + variables: { chatId: this.config.chat_ids[bot] }, }); + if (!data.data) { + this.reConnectWs = true; // for websocket purpose + console.log("ON TRY! Could not clear context! Trying to reLogin.."); + await this.reLogin(); + await this.clearContext(bot); + } + return data; } catch (e) { - throw new Error("Could not clear context"); + this.reConnectWs = true; // for websocket purpose + console.log("ON CATCH! Could not clear context! Trying to reLogin.."); + await this.reLogin(); + await this.clearContext(bot); + return e; } } - async sendMsg(query) { + async sendMsg(bot, query) { try { - await this.makeRequest({ + const data = await this.makeRequest({ query: `${queries.addHumanMessageMutation}`, variables: { - bot: this.bot, - chatId: this.chatId, + bot: bot, + chatId: this.config.chat_ids[bot], query: query, source: null, withChatBreak: false }, }); + if (!data.data) { + this.reConnectWs = true; // for cli websocket purpose + console.log("Could not send message! Trying to reLogin.."); + await this.reLogin(); + await this.sendMsg(bot, query); + } + return data; } catch (e) { - throw new Error("Could not send message"); + this.reConnectWs = true; // for cli websocket purpose + console.log("ON CATCH! Could not send message! Trying to reLogin.."); + await this.reLogin(); + await this.sendMsg(bot, query); + return e; } } - // Responce without stream - async getResponse() { + async getResponse(bot) { let text; let state; let authorNickname; + try { + while (true) { + await new Promise((resolve) => setTimeout(resolve, 2000)); + let response = await this.makeRequest({ + query: `${queries.chatPaginationQuery}`, + variables: { + before: null, + bot: bot, + last: 1, + }, + }); + let base = response.data.chatOfBot.messagesConnection.edges; + let lastEdgeIndex = base.length - 1; + text = base[lastEdgeIndex].node.text; + authorNickname = base[lastEdgeIndex].node.authorNickname; + state = base[lastEdgeIndex].node.state; + if (state === "complete" && authorNickname === bot) { + break; + } + } + } + catch (e) { + console.log("Could not get response!"); + return { + status: false, + message: "failed", + data: null, + }; + } + return { + status: true, + message: "success", + data: text, + }; + } + async reLogin() { + await this.setCredentials(); + if (!this.config.email || !this.config.sid_token) { + console.log("No email or sid_token found, creating new email and sid_token.."); + const { email, sid_token } = await mail.createNewEmail(); + this.config.email = email; + this.config.sid_token = sid_token; + } + const status = await this.sendVerifCode(null, this.config.email); + spinner.start("Waiting for OTP code..."); + const otp_code = await mail.getPoeOTPCode(this.config.sid_token); + spinner.stop(); + if (status === 'user_with_confirmed_email_not_found') { + await this.signUpWithVerificationCode(null, this.config.email, otp_code); + } + else { + await this.signInOrUp(null, this.config.email, otp_code); + } + const newConfig = JSON.parse(readFileSync("config.json", "utf8")); + this.config = newConfig; + this.headers["poe-formkey"] = newConfig.quora_formkey; + this.headers["poe-tchannel"] = newConfig.channel_name; + this.headers["Cookie"] = newConfig.quora_cookie; + await this.setChatIds(); + } + async startCli() { + const isFormkeyAvailable = await this.getCredentials(); + if (!isFormkeyAvailable) { + const { mode } = await prompts({ + type: "select", + name: "mode", + message: "Select", + choices: [ + { title: "Auto [This will use temp email to get Verification Code]", value: "auto" }, + { title: "Semi-Auto [Use you own email/phone number]", value: "semi" }, + { title: "exit", value: "exit" } + ], + }); + if (mode === "exit") { + process.exit(0); + } + await this.setCredentials(); + await this.subscribe(); + await this.login(mode); + } + let ws; + if (this.config.stream_response) { + await getUpdatedSettings(this.config.channel_name, this.config.quora_cookie); + await this.subscribe(); + ws = await connectWs(); + } + const { bot } = await prompts({ + type: "select", + name: "bot", + message: "Select", + choices: [ + { title: "Claude (Powered by Anthropic)", value: "a2" }, + { title: "Sage (Powered by OpenAI - logical)", value: "capybara" }, + { title: "Dragonfly (Powered by OpenAI - simpler)", value: "nutria" }, + { title: "ChatGPT (Powered by OpenAI - current)", value: "chinchilla" }, + ], + }); + this.chatId = this.config.chat_ids[bot]; + this.bot = bot; + let helpMsg = "Available commands: !help !exit, !clear, !submit" + + "\n!help - show this message" + + "\n!exit - exit the chat" + + "\n!clear - clear chat history" + + "\n!submit - submit prompt"; + // await this.clearContext(this.chatId); + console.log(helpMsg); + let submitedPrompt = ""; while (true) { - await new Promise((resolve) => setTimeout(resolve, 2000)); - let response = await this.makeRequest({ - query: `${queries.chatPaginationQuery}`, - variables: { - before: null, - bot: this.bot, - last: 1, - }, + const { prompt } = await prompts({ + type: "text", + name: "prompt", + message: "Ask:", }); - let base = response.data.chatOfBot.messagesConnection.edges; - let lastEdgeIndex = base.length - 1; - text = base[lastEdgeIndex].node.text; - authorNickname = base[lastEdgeIndex].node.authorNickname; - state = base[lastEdgeIndex].node.state; - if (state === "complete" && authorNickname === this.bot) { - break; + if (prompt.length > 0) { + if (prompt === "!help") { + console.log(helpMsg); + } + else if (prompt === "!exit") { + process.exit(0); + } + else if (prompt === "!clear") { + spinner.start("Clearing chat history..."); + await this.clearContext(bot); + if (this.config.stream_response) { + if (this.reConnectWs) { + await disconnectWs(ws); + await getUpdatedSettings(this.config.channel_name, this.config.quora_cookie); + await this.subscribe(); + ws = await connectWs(); + this.reConnectWs = false; + } + } + submitedPrompt = ""; + spinner.stop(); + console.log("Chat history cleared"); + } + else if (prompt === "!submit") { + if (submitedPrompt.length === 0) { + console.log("No prompt to submit"); + continue; + } + await this.sendMsg(this.bot, submitedPrompt); + if (this.config.stream_response) { + if (this.reConnectWs) { + await disconnectWs(ws); + await getUpdatedSettings(this.config.channel_name, this.config.quora_cookie); + await this.subscribe(); + ws = await connectWs(); + this.reConnectWs = false; + } + process.stdout.write("Response: "); + await listenWs(ws); + console.log('\n'); + } + else { + spinner.start("Waiting for response..."); + let response = await this.getResponse(this.bot); + spinner.stop(); + console.log(response.data); + } + submitedPrompt = ""; + } + else { + submitedPrompt += prompt + "\n"; + } } } - return text; } } -const chatBot = new ChatBot(); -await chatBot.start(); +export default ChatBot; diff --git a/dist/mail.js b/dist/mail.js index 1cdac77..5221d8f 100644 --- a/dist/mail.js +++ b/dist/mail.js @@ -7,7 +7,7 @@ const createNewEmail = async () => { const credentials = JSON.parse(readFileSync("config.json", "utf8")); credentials.email = response_json.email_addr; credentials.sid_token = response_json.sid_token; - writeFile("config.json", JSON.stringify(credentials), function (err) { + writeFile("config.json", JSON.stringify(credentials, null, 4), function (err) { if (err) { console.log(err); } @@ -30,7 +30,7 @@ const getLatestEmail = async (sid_token) => { let emailList = await getEmailList(sid_token); let emailListLength = emailList.list.length; while (true) { - await new Promise(r => setTimeout(r, 10000)); + await new Promise(r => setTimeout(r, 15000)); emailList = await getEmailList(sid_token); emailListLength = emailList.list.length; if (emailListLength > 1) { diff --git a/package-lock.json b/package-lock.json index 8464571..998696e 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "poe-node", - "version": "1.3.1", + "version": "1.5.0", "lockfileVersion": 2, "requires": true, "packages": { "": { "name": "poe-node", - "version": "1.3.1", + "version": "1.5.0", "license": "ISC", "dependencies": { "cross-fetch": "^3.1.5", @@ -14,6 +14,7 @@ "dotenv": "^16.0.3", "ora": "^6.1.2", "prompts": "^2.4.2", + "random-useragent": "^0.5.0", "ws": "^8.12.1" }, "devDependencies": { @@ -234,6 +235,11 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/json-stringify-safe": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", + "integrity": "sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA==" + }, "node_modules/kleur": { "version": "3.0.3", "resolved": "https://registry.npmjs.org/kleur/-/kleur-3.0.3.tgz", @@ -313,6 +319,25 @@ "node": ">= 6" } }, + "node_modules/random-seed": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/random-seed/-/random-seed-0.3.0.tgz", + "integrity": "sha512-y13xtn3kcTlLub3HKWXxJNeC2qK4mB59evwZ5EkeRlolx+Bp2ztF7LbcZmyCnOqlHQrLnfuNbi1sVmm9lPDlDA==", + "dependencies": { + "json-stringify-safe": "^5.0.1" + }, + "engines": { + "node": ">= 0.6.0" + } + }, + "node_modules/random-useragent": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/random-useragent/-/random-useragent-0.5.0.tgz", + "integrity": "sha512-FUMkqVdZeoSff5tErNL3FFGYXElDWZ1bEuedhm5u9MdCFwANriJWbHvDRYrLTOzp/fBsBGu5J1cWtDgifa97aQ==", + "dependencies": { + "random-seed": "^0.3.0" + } + }, "node_modules/readable-stream": { "version": "3.6.1", "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.1.tgz", @@ -573,6 +598,11 @@ "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-1.3.0.tgz", "integrity": "sha512-43r2mRvz+8JRIKnWJ+3j8JtjRKZ6GmjzfaE/qiBJnikNnYv/6bagRJ1kUhNk8R5EX/GkobD+r+sfxCPJsiKBLQ==" }, + "json-stringify-safe": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", + "integrity": "sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA==" + }, "kleur": { "version": "3.0.3", "resolved": "https://registry.npmjs.org/kleur/-/kleur-3.0.3.tgz", @@ -625,6 +655,22 @@ "sisteransi": "^1.0.5" } }, + "random-seed": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/random-seed/-/random-seed-0.3.0.tgz", + "integrity": "sha512-y13xtn3kcTlLub3HKWXxJNeC2qK4mB59evwZ5EkeRlolx+Bp2ztF7LbcZmyCnOqlHQrLnfuNbi1sVmm9lPDlDA==", + "requires": { + "json-stringify-safe": "^5.0.1" + } + }, + "random-useragent": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/random-useragent/-/random-useragent-0.5.0.tgz", + "integrity": "sha512-FUMkqVdZeoSff5tErNL3FFGYXElDWZ1bEuedhm5u9MdCFwANriJWbHvDRYrLTOzp/fBsBGu5J1cWtDgifa97aQ==", + "requires": { + "random-seed": "^0.3.0" + } + }, "readable-stream": { "version": "3.6.1", "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.1.tgz", diff --git a/package.json b/package.json index 59b515c..0fd4cab 100644 --- a/package.json +++ b/package.json @@ -1,17 +1,30 @@ { "name": "poe-node", - "version": "1.4.0", - "description": "A CLI tool to call the Quora Poe API through GraphQL", + "version": "1.5.0", + "description": "Work as CLI or module to call the Quora Poe API through GraphQL", "main": "index.js", "type": "module", "scripts": { "compile": "tsc", "dev": "npm run compile && node ./dist/index.js", - "start": "node ./dist/index.js", - "test": "echo \"Error: no test specified\" && exit 1" + "cli": "node ./dist/cli.js" }, - "keywords": [], - "author": "", + "keywords": [ + "poe", + "quora", + "graphql", + "api", + "cli", + "library", + "chatbot", + "bot", + "openai", + "gpt3", + "gpt-3", + "gpt4", + "chatgpt" + ], + "author": "Ramdani", "license": "ISC", "dependencies": { "cross-fetch": "^3.1.5", @@ -19,6 +32,7 @@ "dotenv": "^16.0.3", "ora": "^6.1.2", "prompts": "^2.4.2", + "random-useragent": "^0.5.0", "ws": "^8.12.1" }, "devDependencies": { diff --git a/src/cli.ts b/src/cli.ts new file mode 100644 index 0000000..7ee64da --- /dev/null +++ b/src/cli.ts @@ -0,0 +1,4 @@ +import ChatBot from "./index.js"; + +const bot = new ChatBot(); +await bot.startCli(); \ No newline at end of file diff --git a/src/client_auto.ts b/src/client_auto.ts new file mode 100644 index 0000000..aa3b0ef --- /dev/null +++ b/src/client_auto.ts @@ -0,0 +1,37 @@ +import ChatBot from "./index.js"; +import {getUpdatedSettings} from "./credential.js"; +import {connectWs, listenWs} from "./websocket.js"; + +const bot = new ChatBot(); + +// Used to check if the formkey and cookie is available +const isFormkeyAvailable = await bot.getCredentials(); + +if (!isFormkeyAvailable) { + await bot.setCredentials(); + await bot.subscribe() // for websocket(stream response) purpose + await bot.login("auto"); +} + +const ai = "a2"; // bot list are in config.example.json, key "chat_ids" + +// If you want to clear the chat context, you can use this +await bot.clearContext(ai); + +// If you want to get the response (with stream), you can use this +// NOTE that you need to call this before you send the message +// await getUpdatedSettings(config.channel_name, config.quora_cookie); +// await bot.subscribe(); +// const ws = await connectWs(); + +// If you want to send a message, you can use this +await bot.sendMsg(ai, "Hello, who are you?") + +// If you want to get the response (without stream), you can use this +const response = await bot.getResponse(ai); +console.log(response); + +// // If you want to get the response (with stream), you can use this +// process.stdout.write("Response: "); +// await listenWs(ws); +// console.log('\n'); \ No newline at end of file diff --git a/src/client_manual.ts b/src/client_manual.ts new file mode 100644 index 0000000..df4f6d8 --- /dev/null +++ b/src/client_manual.ts @@ -0,0 +1,53 @@ +import ChatBot from "./index.js"; +import {getUpdatedSettings} from "./credential.js"; +import {connectWs, listenWs} from "./websocket.js"; + +const bot = new ChatBot(); + +// Used to check if the formkey and cookie is available +const isFormkeyAvailable = await bot.getCredentials(); + +if (!isFormkeyAvailable) { + console.log("Formkey and cookie not available"); + + // Set the formkey, cookie and any other data needed and save it into config.json + await bot.setCredentials(); + + const myEmail = "myemail@mail.com" + const signInStatus = await bot.sendVerifCode(null, myEmail); + + // After you get the verification code, you can use this step to log in + // then check signInStatus + let loginStatus = "invalid_verification_code"; + while (loginStatus !== "success") { + if (signInStatus === 'user_with_confirmed_phone_number_not_found') { + loginStatus = await bot.signUpWithVerificationCode(myEmail, null, 123456); // 123456 is the verification code + } else { + loginStatus = await bot.signInOrUp(myEmail, null, 123456); // 123456 is the verification code + } + } +} + + +const ai = "a2"; // bot list are in config.example.json, key "chat_ids" + +// If you want to clear the chat context, you can use this +await bot.clearContext(ai); + +// If you want to get the response (with stream), you can use this +// NOTE that you need to call this before you send the message +// await getUpdatedSettings(config.channel_name, config.quora_cookie); +// await bot.subscribe(); +// const ws = await connectWs(); + +// If you want to send a message, you can use this +await bot.sendMsg(ai, "Hello, who are you?") + +// If you want to get the response (without stream), you can use this +const response = await bot.getResponse(ai); +console.log(response); + +// // If you want to get the response (with stream), you can use this +// process.stdout.write("Response: "); +// await listenWs(ws); +// console.log('\n'); \ No newline at end of file diff --git a/src/credential.ts b/src/credential.ts index 427064f..3e5cccc 100644 --- a/src/credential.ts +++ b/src/credential.ts @@ -28,7 +28,7 @@ const getUpdatedSettings = async (channelName, pbCookie) => { { tchannelData: { minSeq: minSeq } } = appSettings; const credentials = JSON.parse(readFileSync("config.json", "utf8")); credentials.app_settings.tchannelData.minSeq = minSeq - writeFile("config.json", JSON.stringify(credentials), function (err) { + writeFile("config.json", JSON.stringify(credentials, null, 4), function (err) { if (err) { console.log(err); } diff --git a/src/index.ts b/src/index.ts index cdec9ad..e6e0137 100644 --- a/src/index.ts +++ b/src/index.ts @@ -3,9 +3,10 @@ import prompts from "prompts"; import ora from "ora"; import * as dotenv from "dotenv"; import {readFileSync, writeFile} from "fs"; -import {scrape, getUpdatedSettings} from "./credential.js"; -import {listenWs, connectWs, disconnectWs} from "./websocket.js"; +import {getUpdatedSettings, scrape} from "./credential.js"; +import {connectWs, disconnectWs, listenWs} from "./websocket.js"; import * as mail from "./mail.js"; +import randomUseragent from 'random-useragent' dotenv.config(); @@ -25,63 +26,83 @@ const queries = { sendVerificationCodeMutation: readFileSync(gqlDir + "/SendVerificationCodeForLoginMutation.graphql", "utf8"), }; -let [pbCookie, channelName, appSettings, formkey] = ["", "", "", ""]; - class ChatBot { + public config = JSON.parse(readFileSync("config.json", "utf8")); + private headers = { 'Content-Type': 'application/json', - 'Accept': '*/*', 'Host': 'poe.com', - 'Accept-Encoding': 'gzip, deflate, br', 'Connection': 'keep-alive', 'Origin': 'https://poe.com', + 'User-Agent': randomUseragent.getRandom(), } - private chatId: number = 0; - private bot: string = ""; + public chatId: number = 0; + public bot: string = ""; - private async getCredentials() { - const credentials = JSON.parse(readFileSync("config.json", "utf8")); - const {quora_formkey, quora_cookie} = credentials; + public reConnectWs = false; + + public async getCredentials() { + const {quora_formkey, channel_name, quora_cookie} = this.config; if (quora_formkey.length > 0 && quora_cookie.length > 0) { - formkey = quora_formkey; - pbCookie = quora_cookie; - // For websocket later feature - channelName = credentials.channel_name; - appSettings = credentials.app_settings; - this.headers["poe-formkey"] = formkey; - this.headers["poe-tchannel"] = channelName; - this.headers["Cookie"] = pbCookie; + this.headers["poe-formkey"] = quora_formkey; + this.headers["poe-tchannel"] = channel_name; + this.headers["Cookie"] = quora_cookie; } return quora_formkey.length > 0 && quora_cookie.length > 0; } - private async setCredentials() { - let result = await scrape(); + public async setChatIds() { + const [a2, capybara, nutria, chinchilla] = await Promise.all([ + this.getChatId("a2"), + this.getChatId("capybara"), + this.getChatId("nutria"), + this.getChatId("chinchilla"), + ]); + const credentials = JSON.parse(readFileSync("config.json", "utf8")); - credentials.quora_formkey = result.appSettings.formkey; - credentials.quora_cookie = result.pbCookie; - // For websocket later feature - credentials.channel_name = result.channelName; - credentials.app_settings = result.appSettings; + + credentials.chat_ids = { + a2, + capybara, + nutria, + chinchilla, + }; + + this.config.chat_ids = { + a2, + capybara, + nutria, + chinchilla, + } + + writeFile("config.json", JSON.stringify(credentials, null, 4), function (err) { + if (err) { + console.log(err); + } + }); + } + + public async setCredentials() { + let result = await scrape(); + this.config.quora_formkey = result.appSettings.formkey; + this.config.quora_cookie = result.pbCookie; + this.config.channel_name = result.channelName; + this.config.app_settings = result.appSettings; // set value - formkey = result.appSettings.formkey; - pbCookie = result.pbCookie; - // For websocket later feature - channelName = result.channelName; - appSettings = result.appSettings; - this.headers["poe-formkey"] = formkey; - this.headers["poe-tchannel"] = channelName; - this.headers["Cookie"] = pbCookie; - writeFile("config.json", JSON.stringify(credentials), function (err) { + this.headers["poe-formkey"] = this.config.quora_formkey; + this.headers["poe-tchannel"] = this.config.channel_name; + this.headers["Cookie"] = this.config.quora_cookie; + + writeFile("config.json", JSON.stringify(this.config, null, 4), function (err) { if (err) { console.log(err); } }); } - private async subscribe() { + public async subscribe() { const query = { queryName: 'subscriptionsMutation', variables: { @@ -102,94 +123,7 @@ class ChatBot { await this.makeRequest(query); } - public async start() { - const isFormkeyAvailable = await this.getCredentials(); - if (!isFormkeyAvailable) { - const {mode} = await prompts({ - type: "select", - name: "mode", - message: "Select", - choices: [ - {title: "Auto [This will use temp email to get Verification Code]", value: "auto"}, - {title: "Semi-Auto [Use you own email/phone number]", value: "semi"}, - {title: "exit", value: "exit"} - ], - }); - - if (mode === "exit") { - process.exit(0); - } - - await this.setCredentials(); - await this.subscribe(); - await this.login(mode); - } - - await getUpdatedSettings(channelName, pbCookie); - await this.subscribe(); - const ws = await connectWs(); - const {bot} = await prompts({ - type: "select", - name: "bot", - message: "Select", - choices: [ - {title: "Claude (Powered by Anthropic)", value: "a2"}, - {title: "Sage (Powered by OpenAI - logical)", value: "capybara"}, - {title: "Dragonfly (Powered by OpenAI - simpler)", value: "nutria"}, - {title: "ChatGPT (Powered by OpenAI - current)", value: "chinchilla"}, - ], - }); - - await this.getChatId(bot); - - let helpMsg = "Available commands: !help !exit, !clear, !submit" + - "\n!help - show this message" + - "\n!exit - exit the chat" + - "\n!clear - clear chat history" + - "\n!submit - submit prompt"; - - await this.clearContext(); - console.log(helpMsg) - let submitedPrompt = ""; - while (true) { - const {prompt} = await prompts({ - type: "text", - name: "prompt", - message: "Ask:", - }); - - if (prompt.length > 0) { - if (prompt === "!help") { - console.log(helpMsg); - } else if (prompt === "!exit") { - await disconnectWs(ws); - process.exit(0); - } else if (prompt === "!clear") { - spinner.start("Clearing chat history..."); - await this.clearContext(); - submitedPrompt = ""; - spinner.stop(); - console.log("Chat history cleared"); - } else if (prompt === "!submit") { - if (submitedPrompt.length === 0) { - console.log("No prompt to submit"); - continue; - } - await this.sendMsg(submitedPrompt); - process.stdout.write("Response: "); - await listenWs(ws); - console.log('\n'); - submitedPrompt = ""; - } else { - submitedPrompt += prompt + "\n"; - } - } - } - } - - private async makeRequest(request) { - this.headers["Content-Length"] = Buffer.byteLength(JSON.stringify(request), 'utf8'); - + public async makeRequest(request) { const response = await fetch('https://poe.com/api/gql_POST', { method: 'POST', headers: this.headers, @@ -264,9 +198,11 @@ class ChatBot { } spinner.stop(); } + + await this.setChatIds(); } - private async signInOrUp(phoneNumber, email, verifyCode) { + public async signInOrUp(phoneNumber, email, verifyCode) { console.log("Signing in/up...") console.log("Phone number: " + phoneNumber) console.log("Email: " + email) @@ -291,7 +227,7 @@ class ChatBot { } } - private async signUpWithVerificationCode(phoneNumber, email, verifyCode) { + public async signUpWithVerificationCode(phoneNumber, email, verifyCode) { console.log("Signing in/up...") console.log("Phone number: " + phoneNumber) console.log("Email: " + email) @@ -316,7 +252,7 @@ class ChatBot { } } - private async sendVerifCode(phoneNumber, email) { + public async sendVerifCode(phoneNumber, email) { try { // status error case: success, user_with_confirmed_phone_number_not_found, user_with_confirmed_email_not_found const {data: {sendVerificationCode: {status}}} = await this.makeRequest({ @@ -329,11 +265,22 @@ class ChatBot { console.log("Verification code sent. Status: " + status) return status; } catch (e) { - throw e; + console.log("Error sending verification code, please try again " + e) + await this.resetConfig(); } } - private async getChatId(bot: string) { + public async resetConfig() { + const defaultConfig = JSON.parse(readFileSync("config.example.json", "utf8")); + console.log("Resetting config...") + writeFile("config.json", JSON.stringify(defaultConfig, null, 4), function (err) { + if (err) { + console.log(err); + } + }); + } + + public async getChatId(bot: string) { try { const {data: {chatOfBot: {chatId}}} = await this.makeRequest({ query: `${queries.chatViewQuery}`, @@ -343,67 +290,241 @@ class ChatBot { }); this.chatId = chatId; this.bot = bot; + return chatId; } catch (e) { + console.log(e) + await this.resetConfig(); throw new Error("Could not get chat id, invalid formkey or cookie! Please remove the quora_formkey value from the config.json file and try again."); } } - private async clearContext() { + public async clearContext(bot: string) { try { - await this.makeRequest({ + const data = await this.makeRequest({ query: `${queries.addMessageBreakMutation}`, - variables: {chatId: this.chatId}, + variables: {chatId: this.config.chat_ids[bot]}, }); + + if (!data.data) { + this.reConnectWs = true; // for websocket purpose + console.log("ON TRY! Could not clear context! Trying to reLogin.."); + await this.reLogin(); + await this.clearContext(bot); + } + return data } catch (e) { - throw new Error("Could not clear context"); + this.reConnectWs = true; // for websocket purpose + console.log("ON CATCH! Could not clear context! Trying to reLogin.."); + await this.reLogin(); + await this.clearContext(bot); + return e } } - private async sendMsg(query: string) { + public async sendMsg(bot: string, query: string) { try { - await this.makeRequest({ + const data = await this.makeRequest({ query: `${queries.addHumanMessageMutation}`, variables: { - bot: this.bot, - chatId: this.chatId, + bot: bot, + chatId: this.config.chat_ids[bot], query: query, source: null, withChatBreak: false }, }); + + if (!data.data) { + this.reConnectWs = true; // for cli websocket purpose + console.log("Could not send message! Trying to reLogin.."); + await this.reLogin(); + await this.sendMsg(bot, query); + } + return data } catch (e) { - throw new Error("Could not send message"); + this.reConnectWs = true; // for cli websocket purpose + console.log("ON CATCH! Could not send message! Trying to reLogin.."); + await this.reLogin(); + await this.sendMsg(bot, query); + return e } } - // Responce without stream - private async getResponse(): Promise { + public async getResponse(bot: string): Promise { let text: string let state: string let authorNickname: string + try { + while (true) { + await new Promise((resolve) => setTimeout(resolve, 2000)); + let response = await this.makeRequest({ + query: `${queries.chatPaginationQuery}`, + variables: { + before: null, + bot: bot, + last: 1, + }, + }); + let base = response.data.chatOfBot.messagesConnection.edges + let lastEdgeIndex = base.length - 1; + text = base[lastEdgeIndex].node.text; + authorNickname = base[lastEdgeIndex].node.authorNickname; + state = base[lastEdgeIndex].node.state; + if (state === "complete" && authorNickname === bot) { + break; + } + } + } catch (e) { + console.log("Could not get response!"); + return { + status: false, + message: "failed", + data: null, + }; + } + + return { + status: true, + message: "success", + data: text, + }; + } + + public async reLogin() { + await this.setCredentials(); + if (!this.config.email || !this.config.sid_token) { + console.log("No email or sid_token found, creating new email and sid_token..") + const {email, sid_token} = await mail.createNewEmail() + this.config.email = email; + this.config.sid_token = sid_token; + } + const status = await this.sendVerifCode(null, this.config.email); + spinner.start("Waiting for OTP code..."); + const otp_code = await mail.getPoeOTPCode(this.config.sid_token); + spinner.stop(); + if (status === 'user_with_confirmed_email_not_found') { + await this.signUpWithVerificationCode(null, this.config.email, otp_code) + } else { + await this.signInOrUp(null, this.config.email, otp_code) + } + const newConfig = JSON.parse(readFileSync("config.json", "utf8")); + this.config = newConfig; + this.headers["poe-formkey"] = newConfig.quora_formkey; + this.headers["poe-tchannel"] = newConfig.channel_name; + this.headers["Cookie"] = newConfig.quora_cookie; + await this.setChatIds(); + } + + public async startCli() { + const isFormkeyAvailable = await this.getCredentials(); + if (!isFormkeyAvailable) { + const {mode} = await prompts({ + type: "select", + name: "mode", + message: "Select", + choices: [ + {title: "Auto [This will use temp email to get Verification Code]", value: "auto"}, + {title: "Semi-Auto [Use you own email/phone number]", value: "semi"}, + {title: "exit", value: "exit"} + ], + }); + + if (mode === "exit") { + process.exit(0); + } + + await this.setCredentials(); + await this.subscribe(); + await this.login(mode); + } + + let ws :any; + if (this.config.stream_response) { + await getUpdatedSettings(this.config.channel_name, this.config.quora_cookie); + await this.subscribe(); + ws = await connectWs(); + } + const {bot} = await prompts({ + type: "select", + name: "bot", + message: "Select", + choices: [ + {title: "Claude (Powered by Anthropic)", value: "a2"}, + {title: "Sage (Powered by OpenAI - logical)", value: "capybara"}, + {title: "Dragonfly (Powered by OpenAI - simpler)", value: "nutria"}, + {title: "ChatGPT (Powered by OpenAI - current)", value: "chinchilla"}, + ], + }); + + this.chatId = this.config.chat_ids[bot]; + this.bot = bot; + + let helpMsg = "Available commands: !help !exit, !clear, !submit" + + "\n!help - show this message" + + "\n!exit - exit the chat" + + "\n!clear - clear chat history" + + "\n!submit - submit prompt"; + + // await this.clearContext(this.chatId); + console.log(helpMsg) + let submitedPrompt = ""; while (true) { - await new Promise((resolve) => setTimeout(resolve, 2000)); - let response = await this.makeRequest({ - query: `${queries.chatPaginationQuery}`, - variables: { - before: null, - bot: this.bot, - last: 1, - }, + const {prompt} = await prompts({ + type: "text", + name: "prompt", + message: "Ask:", }); - let base = response.data.chatOfBot.messagesConnection.edges - let lastEdgeIndex = base.length - 1; - text = base[lastEdgeIndex].node.text; - authorNickname = base[lastEdgeIndex].node.authorNickname; - state = base[lastEdgeIndex].node.state; - - if (state === "complete" && authorNickname === this.bot) { - break; + + if (prompt.length > 0) { + if (prompt === "!help") { + console.log(helpMsg); + } else if (prompt === "!exit") { + process.exit(0); + } else if (prompt === "!clear") { + spinner.start("Clearing chat history..."); + await this.clearContext(bot); + if (this.config.stream_response) { + if (this.reConnectWs) { + await disconnectWs(ws); + await getUpdatedSettings(this.config.channel_name, this.config.quora_cookie) + await this.subscribe(); + ws = await connectWs(); + this.reConnectWs = false; + } + } + submitedPrompt = ""; + spinner.stop(); + console.log("Chat history cleared"); + } else if (prompt === "!submit") { + if (submitedPrompt.length === 0) { + console.log("No prompt to submit"); + continue; + } + await this.sendMsg(this.bot, submitedPrompt); + if (this.config.stream_response) { + if (this.reConnectWs) { + await disconnectWs(ws); + await getUpdatedSettings(this.config.channel_name, this.config.quora_cookie) + await this.subscribe(); + ws = await connectWs(); + this.reConnectWs = false; + } + process.stdout.write("Response: "); + await listenWs(ws); + console.log('\n'); + } else { + spinner.start("Waiting for response..."); + let response = await this.getResponse(this.bot); + spinner.stop(); + console.log(response.data); + } + submitedPrompt = ""; + } else { + submitedPrompt += prompt + "\n"; + } } } - return text; } } -const chatBot = new ChatBot(); -await chatBot.start(); +export default ChatBot; diff --git a/src/mail.ts b/src/mail.ts index 60cbde5..5666c8c 100644 --- a/src/mail.ts +++ b/src/mail.ts @@ -9,7 +9,7 @@ const createNewEmail = async () => { const credentials = JSON.parse(readFileSync("config.json", "utf8")); credentials.email = response_json.email_addr; credentials.sid_token = response_json.sid_token; - writeFile("config.json", JSON.stringify(credentials), function(err) { + writeFile("config.json", JSON.stringify(credentials, null, 4), function (err) { if (err) { console.log(err); } @@ -34,7 +34,7 @@ const getLatestEmail = async (sid_token) => { let emailList = await getEmailList(sid_token); let emailListLength = emailList.list.length; while (true) { - await new Promise(r => setTimeout(r, 10000)); + await new Promise(r => setTimeout(r, 15000)); emailList = await getEmailList(sid_token); emailListLength = emailList.list.length; if (emailListLength > 1) { From cd179d78fb01ecf49346f83aab506a7c721fc672 Mon Sep 17 00:00:00 2001 From: Muhamad Ramdani Date: Sat, 18 Mar 2023 01:09:29 +0700 Subject: [PATCH 2/2] Wording on comment --- dist/client_auto.js | 2 +- dist/client_manual.js | 2 +- src/client_auto.ts | 2 +- src/client_manual.ts | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/dist/client_auto.js b/dist/client_auto.js index d7326c0..08051f8 100644 --- a/dist/client_auto.js +++ b/dist/client_auto.js @@ -12,7 +12,7 @@ const ai = "a2"; // bot list are in config.example.json, key "chat_ids" await bot.clearContext(ai); // If you want to get the response (with stream), you can use this // NOTE that you need to call this before you send the message -// await getUpdatedSettings(config.channel_name, config.quora_cookie); +// await getUpdatedSettings(bot.config.channel_name, bot.config.quora_cookie); // await bot.subscribe(); // const ws = await connectWs(); // If you want to send a message, you can use this diff --git a/dist/client_manual.js b/dist/client_manual.js index e741946..765ec9a 100644 --- a/dist/client_manual.js +++ b/dist/client_manual.js @@ -25,7 +25,7 @@ const ai = "a2"; // bot list are in config.example.json, key "chat_ids" await bot.clearContext(ai); // If you want to get the response (with stream), you can use this // NOTE that you need to call this before you send the message -// await getUpdatedSettings(config.channel_name, config.quora_cookie); +// await getUpdatedSettings(bot.config.channel_name, bot.config.quora_cookie); // await bot.subscribe(); // const ws = await connectWs(); // If you want to send a message, you can use this diff --git a/src/client_auto.ts b/src/client_auto.ts index aa3b0ef..72fc55e 100644 --- a/src/client_auto.ts +++ b/src/client_auto.ts @@ -20,7 +20,7 @@ await bot.clearContext(ai); // If you want to get the response (with stream), you can use this // NOTE that you need to call this before you send the message -// await getUpdatedSettings(config.channel_name, config.quora_cookie); +// await getUpdatedSettings(bot.config.channel_name, bot.config.quora_cookie); // await bot.subscribe(); // const ws = await connectWs(); diff --git a/src/client_manual.ts b/src/client_manual.ts index df4f6d8..6f2f7ca 100644 --- a/src/client_manual.ts +++ b/src/client_manual.ts @@ -36,7 +36,7 @@ await bot.clearContext(ai); // If you want to get the response (with stream), you can use this // NOTE that you need to call this before you send the message -// await getUpdatedSettings(config.channel_name, config.quora_cookie); +// await getUpdatedSettings(bot.config.channel_name, bot.config.quora_cookie); // await bot.subscribe(); // const ws = await connectWs();