mirror of
https://github.com/Hessenuk/DiscordTickets.git
synced 2025-09-07 10:31:26 +03:00
perf: threads everywhere! (for encryption & decryption)
This commit is contained in:
11
src/lib/workers/crypto.js
Normal file
11
src/lib/workers/crypto.js
Normal file
@@ -0,0 +1,11 @@
|
||||
const { expose } = require('threads/worker');
|
||||
const Cryptr = require('cryptr');
|
||||
const {
|
||||
encrypt,
|
||||
decrypt,
|
||||
} = new Cryptr(process.env.ENCRYPTION_KEY);
|
||||
|
||||
expose({
|
||||
decrypt,
|
||||
encrypt,
|
||||
});
|
36
src/lib/workers/transcript.js
Normal file
36
src/lib/workers/transcript.js
Normal file
@@ -0,0 +1,36 @@
|
||||
const { expose } = require('threads/worker');
|
||||
const Cryptr = require('cryptr');
|
||||
const { decrypt } = new Cryptr(process.env.ENCRYPTION_KEY);
|
||||
|
||||
function getTranscript(ticket) {
|
||||
ticket.claimedBy = ticket.archivedUsers.find(u => u.userId === ticket.claimedById);
|
||||
ticket.closedBy = ticket.archivedUsers.find(u => u.userId === ticket.closedById);
|
||||
ticket.createdBy = ticket.archivedUsers.find(u => u.userId === ticket.createdById);
|
||||
|
||||
if (ticket.closedReason) ticket.closedReason = decrypt(ticket.closedReason);
|
||||
if (ticket.feedback?.comment) ticket.feedback.comment = decrypt(ticket.feedback.comment);
|
||||
if (ticket.topic) ticket.topic = decrypt(ticket.topic).replace(/\n/g, '\n\t');
|
||||
|
||||
ticket.archivedUsers.forEach((user, i) => {
|
||||
if (user.displayName) user.displayName = decrypt(user.displayName);
|
||||
user.username = decrypt(user.username);
|
||||
ticket.archivedUsers[i] = user;
|
||||
});
|
||||
|
||||
ticket.archivedMessages.forEach((message, i) => {
|
||||
message.author = ticket.archivedUsers.find(u => u.userId === message.authorId);
|
||||
message.content = JSON.parse(decrypt(message.content));
|
||||
message.text = message.content.content?.replace(/\n/g, '\n\t') ?? '';
|
||||
message.content.attachments?.forEach(a => (message.text += '\n\t' + a.url));
|
||||
message.content.embeds?.forEach(() => (message.text += '\n\t[embedded content]'));
|
||||
message.number = 'M' + String(i + 1).padStart(ticket.archivedMessages.length.toString().length, '0');
|
||||
ticket.archivedMessages[i] = message;
|
||||
});
|
||||
|
||||
ticket.pinnedMessageIds = ticket.pinnedMessageIds.map(id => ticket.archivedMessages.find(message => message.id === id)?.number);
|
||||
return ticket;
|
||||
}
|
||||
|
||||
expose(getTranscript);
|
||||
|
||||
|
Reference in New Issue
Block a user