From dab85a8777229b92d3d9d950407fce5e41c13b52 Mon Sep 17 00:00:00 2001 From: haegelsperger Date: Thu, 20 Jul 2023 17:32:39 +0200 Subject: [PATCH] fixes #46 Sanitize mattermost username to match openai regex. --- package-lock.json | 4 ++-- package.json | 2 +- src/botservice.ts | 11 ++++++++++- 3 files changed, 13 insertions(+), 4 deletions(-) diff --git a/package-lock.json b/package-lock.json index 0bc7dd7..ba45e26 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "chatgpt-mattermost-bot", - "version": "1.3.4", + "version": "2.0.1", "lockfileVersion": 2, "requires": true, "packages": { "": { "name": "chatgpt-mattermost-bot", - "version": "1.3.4", + "version": "2.0.1", "dependencies": { "@mattermost/client": "^7.10.0", "@mattermost/types": "^7.10.0", diff --git a/package.json b/package.json index b675f9e..7696e38 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "chatgpt-mattermost-bot", - "version": "2.0.0", + "version": "2.0.1", "private": true, "scripts": { "start": "ts-node ./src/botservice.ts", diff --git a/src/botservice.ts b/src/botservice.ts index 5822170..0e0e744 100644 --- a/src/botservice.ts +++ b/src/botservice.ts @@ -18,7 +18,7 @@ if(!global.FormData) { } const name = process.env['MATTERMOST_BOTNAME'] || '@chatgpt' -const contextMsgCount = Number(process.env['BOT_CONTEXT_MSG'] ?? 7) +const contextMsgCount = Number(process.env['BOT_CONTEXT_MSG'] ?? 100) /* List of all registered plugins */ const plugins: PluginBase[] = [ @@ -185,6 +185,15 @@ async function userIdToName(userId: string): Promise { } else { // username not in cache our outdated username = (await mmClient.getUser(userId)).username + + if(!/^[a-zA-Z0-9_-]{1,64}$/.test(username)) { + username = username.replace(/[.@!?]/g,'_').slice(0, 64) + } + + if(!/^[a-zA-Z0-9_-]{1,64}$/.test(username)) { + username = [...username.matchAll(/[a-zA-Z0-9_-]/g)].join('').slice(0, 64) + } + usernameCache[userId] = { username: username, expireTime: Date.now() + 1000 * 60 * 5