From a0c7024293c1e797cac7fdf1b314879ad755f383 Mon Sep 17 00:00:00 2001 From: Skyler Grey Date: Mon, 6 Mar 2023 09:56:21 +0000 Subject: [PATCH] Fix transcript encryption and endpoints --- src/commands/nucleus/premium.ts | 2 +- src/utils/database.ts | 15 +++++++++------ 2 files changed, 10 insertions(+), 7 deletions(-) diff --git a/src/commands/nucleus/premium.ts b/src/commands/nucleus/premium.ts index 0b0f553..58b51a9 100644 --- a/src/commands/nucleus/premium.ts +++ b/src/commands/nucleus/premium.ts @@ -193,7 +193,7 @@ const callback = async (interaction: CommandInteraction): Promise => { ); } - let userPremiumServers; + let userPremiumServers = ""; if ((dbMember?.appliesTo.length ?? 0) > 0) userPremiumServers = "\nIf you want to remove premium from a server, run this command in your DMs with me."; interaction.editReply({ diff --git a/src/utils/database.ts b/src/utils/database.ts index 8f37466..c46a39d 100644 --- a/src/utils/database.ts +++ b/src/utils/database.ts @@ -251,7 +251,8 @@ export class Transcript { .replace(/\//g, "_") .replace(/\+/g, "-") .substring(0, 32); - const iv = getIV().toString("base64").replace(/=/g, "").replace(/\//g, "_").replace(/\+/g, "-"); + const iv = getIV().toString("base64").substring(0, 16).replace(/=/g, "").replace(/\//g, "_").replace(/\+/g, "-"); + console.log(iv); for (const message of transcript.messages) { if (message.content) { const encCipher = crypto.createCipheriv("AES-256-CBC", key, iv); @@ -320,9 +321,10 @@ export class Transcript { } async read(code: string, key: string, iv: string) { - // console.log("Transcript read") + console.log("Transcript read") let doc: TranscriptSchema | null = await this.transcripts.findOne({ code: code }); let findDoc: findDocSchema | null = null; + console.log(doc) if (!doc) findDoc = await this.messageToTranscript.findOne({ transcript: code }); if (findDoc) { const message = await ( @@ -348,6 +350,7 @@ export class Transcript { if (!data) return null; doc = JSON.parse(Buffer.from(data).toString()) as TranscriptSchema; } + console.log(doc) if (!doc) return null; for (const message of doc.messages) { if (message.content) { @@ -401,15 +404,15 @@ export class Transcript { discriminator: parseInt(message.author.discriminator), id: message.author.id, topRole: { - color: message.member!.roles.highest.color + color: message.member ? message.member.roles.highest.color : 0x000000 }, - iconURL: message.member!.user.displayAvatarURL({ forceStatic: true }), - bot: message.author.bot + iconURL: (message.member?.user || message.author)?.displayAvatarURL({ forceStatic: true }), + bot: message.author?.bot || false }, createdTimestamp: message.createdTimestamp }; if (message.member?.nickname) msg.author.nickname = message.member.nickname; - if (message.member!.roles.icon) msg.author.topRole.badgeURL = message.member!.roles.icon.iconURL()!; + if (message.member?.roles.icon) msg.author.topRole.badgeURL = message.member!.roles.icon.iconURL()!; if (message.content) msg.content = message.content; if (message.embeds.length > 0) msg.embeds = message.embeds.map((embed) => {