From 9a4bed608a731611cd0efc030cc063d44e5f74ce Mon Sep 17 00:00:00 2001 From: bertybuttface <110790513+bertybuttface@users.noreply.github.com> Date: Sat, 24 Dec 2022 15:13:56 +0000 Subject: [PATCH 1/5] Fix `isGoogleLogin` ignoring setting and defaulting to true --- src/config.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/config.ts b/src/config.ts index 57a1796..9445530 100644 --- a/src/config.ts +++ b/src/config.ts @@ -16,7 +16,7 @@ export const matrixBotPassword = process.env.MATRIX_BOT_PASSWORD as string; /** ChatGPT specific stuff */ export const openAiEmail = process.env.OPENAI_EMAIL as string; export const openAiPassword = process.env.OPENAI_PASSWORD as string; -export const isGoogleLogin = Boolean(process.env.IS_GOOGLE_LOGIN) as boolean; +export const isGoogleLogin = (process.env.IS_GOOGLE_LOGIN.toLowerCase() === "true") as boolean; if(accessToken === undefined) { console.error("MATRIX_ACCESS_TOKEN env variable is undefined"); From 0b55624710090220cb1e19cf6fcb13f64e3ce0e8 Mon Sep 17 00:00:00 2001 From: bertybuttface <110790513+bertybuttface@users.noreply.github.com> Date: Mon, 26 Dec 2022 00:40:56 +0000 Subject: [PATCH 2/5] Fix for when isGoogleLogin undefined --- src/config.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/config.ts b/src/config.ts index 9445530..9f7a4c5 100644 --- a/src/config.ts +++ b/src/config.ts @@ -16,7 +16,7 @@ export const matrixBotPassword = process.env.MATRIX_BOT_PASSWORD as string; /** ChatGPT specific stuff */ export const openAiEmail = process.env.OPENAI_EMAIL as string; export const openAiPassword = process.env.OPENAI_PASSWORD as string; -export const isGoogleLogin = (process.env.IS_GOOGLE_LOGIN.toLowerCase() === "true") as boolean; +export const isGoogleLogin = process.env.IS_GOOGLE_LOGIN && process.env.IS_GOOGLE_LOGIN.toLowerCase() === "true"; if(accessToken === undefined) { console.error("MATRIX_ACCESS_TOKEN env variable is undefined"); From 1a80e1daf91c899482dadf467b279586f6b678b3 Mon Sep 17 00:00:00 2001 From: bertybuttface <110790513+bertybuttface@users.noreply.github.com> Date: Wed, 28 Dec 2022 02:57:45 +0000 Subject: [PATCH 3/5] Bump chatgpt dependency to 3.3.5 (latest) --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 2216b1a..f98a29b 100644 --- a/package.json +++ b/package.json @@ -15,7 +15,7 @@ "typecheck": "npx tsc" }, "dependencies": { - "chatgpt": "^3.3.1", + "chatgpt": "^3.3.5", "dotenv": "^14.2.0", "matrix-bot-sdk": "^0.6.2", "puppeteer": "^19.4.1", From 5fba831d9453120798285eb2659a26bbaa9c82e9 Mon Sep 17 00:00:00 2001 From: bertybuttface <110790513+bertybuttface@users.noreply.github.com> Date: Wed, 28 Dec 2022 22:48:35 +0000 Subject: [PATCH 4/5] Bump chatgpt to 3.3.6 (latest) --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index f98a29b..4669e63 100644 --- a/package.json +++ b/package.json @@ -15,7 +15,7 @@ "typecheck": "npx tsc" }, "dependencies": { - "chatgpt": "^3.3.5", + "chatgpt": "^3.3.6", "dotenv": "^14.2.0", "matrix-bot-sdk": "^0.6.2", "puppeteer": "^19.4.1", From c5793ec12b555bf8b6cb65742299265309e9908a Mon Sep 17 00:00:00 2001 From: bertybuttface <110790513+bertybuttface@users.noreply.github.com> Date: Thu, 29 Dec 2022 01:14:31 +0000 Subject: [PATCH 5/5] Use matrix access token if we have it, print one if we don't. --- src/config.ts | 20 ++++++++++---------- src/index.ts | 11 ++++++++--- 2 files changed, 18 insertions(+), 13 deletions(-) diff --git a/src/config.ts b/src/config.ts index 57a1796..d047ab6 100644 --- a/src/config.ts +++ b/src/config.ts @@ -18,21 +18,21 @@ export const openAiEmail = process.env.OPENAI_EMAIL as string; export const openAiPassword = process.env.OPENAI_PASSWORD as string; export const isGoogleLogin = Boolean(process.env.IS_GOOGLE_LOGIN) as boolean; -if(accessToken === undefined) { - console.error("MATRIX_ACCESS_TOKEN env variable is undefined"); - process.exit(1); -} if(homeserverUrl === undefined) { console.error("MATRIX_HOMESERVER_URL env variable is undefined"); process.exit(1); } -if(matrixBotUsername === undefined) { - console.error("MATRIX_BOT_USERNAME env variable is undefined"); - process.exit(1); -} -if(matrixBotPassword === undefined) { - console.error("MATRIX_BOT_PASSWORD env variable is undefined"); +if(accessToken === undefined) { + console.error("MATRIX_ACCESS_TOKEN env variable is undefined, set it to empty string to use username and password"); process.exit(1); + if(matrixBotUsername === undefined) { + console.error("MATRIX_BOT_USERNAME env variable is undefined, set it to empty string to use access token"); + process.exit(1); + } + if(matrixBotPassword === undefined) { + console.error("MATRIX_BOT_PASSWORD env variable is undefined, set it to empty string to use access token"); + process.exit(1); + } } if(openAiEmail === undefined) { console.error("OPENAI_EMAIL env variable is undefined"); diff --git a/src/index.ts b/src/index.ts index 386df51..4398a96 100644 --- a/src/index.ts +++ b/src/index.ts @@ -4,7 +4,7 @@ import { RichConsoleLogger, // RustSdkCryptoStorageProvider, } from "matrix-bot-sdk"; -import { openAiEmail, openAiPassword, isGoogleLogin, homeserverUrl, matrixBotPassword, matrixBotUsername } from './config.js' +import { openAiEmail, openAiPassword, isGoogleLogin, homeserverUrl, accessToken, matrixBotPassword, matrixBotUsername } from './config.js' import { parseMatrixUsernamePretty } from './utils.js'; import { handleRoomEvent } from './handlers.js'; import { ChatGPTAPIBrowser } from 'chatgpt' @@ -26,8 +26,13 @@ const storage = new SimpleFsStorageProvider("./storage/bot.json"); async function main() { const botUsernameWithoutDomain = parseMatrixUsernamePretty(matrixBotUsername); - const authedClient = await (new MatrixAuth(homeserverUrl)).passwordLogin(botUsernameWithoutDomain, matrixBotPassword); - const client = new MatrixClient(authedClient.homeserverUrl, authedClient.accessToken, storage); + if (!accessToken){ + const authedClient = await (new MatrixAuth(homeserverUrl)).passwordLogin(botUsernameWithoutDomain, matrixBotPassword); + console.log(authedClient.homeserverUrl + " token: \n" + authedClient.accessToken) + console.log("Set MATRIX_ACCESS_TOKEN to above token, MATRIX_ACCESS_USERNAME and MATRIX_ACCESS_PASSWORD can now be blank") + return; + } + const client = new MatrixClient(homeserverUrl, accessToken, storage); // use puppeteer to bypass cloudflare (headful because of captchas) const chatGPT = new ChatGPTAPIBrowser({