Fixed worker termination and result retrieving

This commit is contained in:
2025-12-02 11:31:34 +01:00
parent ec9f14c9e7
commit fe4c03357a
4 changed files with 67 additions and 22 deletions

View File

@@ -1,25 +1,41 @@
import {NameCardCreator} from "../wwwroot/core/namecards/nameCardCreator.js";
import {launchWorker} from "../wwwroot/core/namecards/workerLauncher.js";
import {data} from "../wwwroot/core/appData.js";
import {launchWorker} from "../wwwroot/core/namecards/workerLauncher.js";
import {AttachmentBuilder} from "discord.js";
import {Logger} from "../wwwroot/core/logging/logger.js";
const templatePath = "./wwwroot/assets/name-card-template.png";
const avatarPath = "./tests/assets/avatar-test.png";
const name = "Aude Vaiselle";
data.client.on('clientReady', async () => {
console.log("Ready!");
const guild = await data.client.guilds.fetch(data.testGuildID);
const member = await guild.members.fetch(data.testUserID);
try{
const result = await launchWorker({
templatePath: data.nameCardTemplate,
avatarURL: avatarPath,
username: name,
});
console.log("Emitting fake guildMemberAdd...");
data.client.emit("guildMemberAdd", member);
});
const buffer = Buffer.from(result.result);
console.log(buffer);
data.client.on('guildMemberAdd', async (member) => {
try {
const avatarUrl = member.user.displayAvatarURL({ extension: 'png', size: 512 });
const username = member.displayName || member.user.username;
console.log("Generation successful ✅")
} catch (error) {
console.log(error);
}
const result = await launchWorker({
templatePath: data.nameCardTemplate,
avatarURL: avatarUrl,
username: username,
});
const attachment = new AttachmentBuilder(Buffer.from(result.result), { name: 'namecard.png' });
/*const attachment = new AttachmentBuilder(
Buffer.isBuffer(result.result) ? result.result : Buffer.from(result.result),
{ name: 'namecard.png' }
);*/
const channel = await member.guild.channels.fetch(data.welcomeChannelID);
await channel.send({ files: [attachment] });
} catch (err) {
await Logger.error('Failed to generate/send name card:', err);
}
});
await data.client.login(process.env.DISCORD_TOKEN);