Fixed worker termination and result retrieving
This commit is contained in:
38
bot.js
38
bot.js
@@ -19,22 +19,20 @@ const launch = async () => {
|
|||||||
await data.sender.send(data.socialChannelID, message)
|
await data.sender.send(data.socialChannelID, message)
|
||||||
});
|
});
|
||||||
|
|
||||||
data.client.once('clientReady', async () => {
|
/*data.client.once('clientReady', async () => {
|
||||||
await data.sender.send(data.updateChannelID, "I'm now online ! ✅")
|
await data.sender.send(data.updateChannelID, "I'm now online ! ✅")
|
||||||
console.log(`✅ Logged in as ${data.client.user.tag}`);
|
console.log(`✅ Logged in as ${data.client.user.tag}`);
|
||||||
});
|
});*/
|
||||||
|
|
||||||
data.client.on('messageCreate', async (message) => {
|
data.client.on('messageCreate', async (message) => {
|
||||||
const isGuildOwner = message.guild && message.author.id === message.guild.ownerId;
|
const isGuildOwner = message.guild && message.author.id === message.guild.ownerId;
|
||||||
if (message.content === '/login' && isGuildOwner) {
|
if (message.content === '/login' && isGuildOwner) {
|
||||||
await message.reply(data.instagramTokenManager.getOauthUrl());
|
await message.reply(data.instagramTokenManager.getOauthUrl());
|
||||||
}
|
}
|
||||||
});
|
if (message.content === '/name-card-test' ) {
|
||||||
|
|
||||||
data.client.on('guildMemberAdd', async (member) => {
|
|
||||||
try {
|
try {
|
||||||
const avatarUrl = member.user.displayAvatarURL({ extension: 'png', size: 512 });
|
const avatarUrl = message.author.displayAvatarURL({ extension: 'png', size: 512 });
|
||||||
const username = member.displayName;
|
const username = message.author.displayName;
|
||||||
|
|
||||||
const result = await launchWorker({
|
const result = await launchWorker({
|
||||||
templatePath: data.nameCardTemplate,
|
templatePath: data.nameCardTemplate,
|
||||||
@@ -44,6 +42,32 @@ const launch = async () => {
|
|||||||
|
|
||||||
const attachment = new AttachmentBuilder(Buffer.from(result.result), { name: 'namecard.png' });
|
const attachment = new AttachmentBuilder(Buffer.from(result.result), { name: 'namecard.png' });
|
||||||
|
|
||||||
|
const channel = await message.guild.channels.fetch(data.welcomeChannelID);
|
||||||
|
await channel.send({ files: [attachment] });
|
||||||
|
|
||||||
|
} catch (err) {
|
||||||
|
await Logger.error('Failed to generate/send name card:', err);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
data.client.on('guildMemberAdd', async (member) => {
|
||||||
|
try {
|
||||||
|
const avatarUrl = member.user.displayAvatarURL({ extension: 'png', size: 512 });
|
||||||
|
const username = member.displayName || member.user.username;
|
||||||
|
|
||||||
|
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);
|
const channel = await member.guild.channels.fetch(data.welcomeChannelID);
|
||||||
await channel.send({ files: [attachment] });
|
await channel.send({ files: [attachment] });
|
||||||
|
|
||||||
|
|||||||
@@ -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 {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";
|
data.client.on('clientReady', async () => {
|
||||||
const avatarPath = "./tests/assets/avatar-test.png";
|
console.log("Ready!");
|
||||||
const name = "Aude Vaiselle";
|
|
||||||
|
|
||||||
|
const guild = await data.client.guilds.fetch(data.testGuildID);
|
||||||
|
const member = await guild.members.fetch(data.testUserID);
|
||||||
|
|
||||||
try{
|
console.log("Emitting fake guildMemberAdd...");
|
||||||
const result = await launchWorker({
|
data.client.emit("guildMemberAdd", member);
|
||||||
templatePath: data.nameCardTemplate,
|
|
||||||
avatarURL: avatarPath,
|
|
||||||
username: name,
|
|
||||||
});
|
});
|
||||||
|
|
||||||
const buffer = Buffer.from(result.result);
|
data.client.on('guildMemberAdd', async (member) => {
|
||||||
console.log(buffer);
|
try {
|
||||||
|
const avatarUrl = member.user.displayAvatarURL({ extension: 'png', size: 512 });
|
||||||
|
const username = member.displayName || member.user.username;
|
||||||
|
|
||||||
console.log("Generation successful ✅")
|
const result = await launchWorker({
|
||||||
} catch (error) {
|
templatePath: data.nameCardTemplate,
|
||||||
console.log(error);
|
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);
|
||||||
|
|||||||
@@ -24,6 +24,9 @@ const updateChannelID = process.env.BOT_UPDATE_CHANNEL_ID;
|
|||||||
const socialChannelID = process.env.SOCIAL_CHANNEL_ID
|
const socialChannelID = process.env.SOCIAL_CHANNEL_ID
|
||||||
const welcomeChannelID = process.env.WELCOME_CHANNEL_ID
|
const welcomeChannelID = process.env.WELCOME_CHANNEL_ID
|
||||||
|
|
||||||
|
const testGuildID = process.env.TEST_GUILD_ID;
|
||||||
|
const testUserID = process.env.TEST_USER_ID;
|
||||||
|
|
||||||
const filePath = ".instagram_client_tokens.json";
|
const filePath = ".instagram_client_tokens.json";
|
||||||
|
|
||||||
const usersToken = new UsersToken(filePath)
|
const usersToken = new UsersToken(filePath)
|
||||||
@@ -41,6 +44,8 @@ export const data = {
|
|||||||
updateChannelID,
|
updateChannelID,
|
||||||
socialChannelID,
|
socialChannelID,
|
||||||
welcomeChannelID,
|
welcomeChannelID,
|
||||||
|
testGuildID,
|
||||||
|
testUserID,
|
||||||
instagramTokenManager,
|
instagramTokenManager,
|
||||||
nameCardTemplate
|
nameCardTemplate
|
||||||
//tiktokTokenManager
|
//tiktokTokenManager
|
||||||
|
|||||||
@@ -8,11 +8,11 @@ parentPort.on("message", async (data) => {
|
|||||||
const creator = new NameCardCreator(templatePath);
|
const creator = new NameCardCreator(templatePath);
|
||||||
const buffer = await creator.getWelcomeCard(avatarURL, username);
|
const buffer = await creator.getWelcomeCard(avatarURL, username);
|
||||||
|
|
||||||
console.log(buffer);
|
|
||||||
|
|
||||||
parentPort.postMessage({ result: buffer });
|
parentPort.postMessage({ result: buffer });
|
||||||
|
|
||||||
} catch (err) {
|
} catch (err) {
|
||||||
parentPort.postMessage({ error: err.message });
|
parentPort.postMessage({ error: err.message });
|
||||||
|
} finally {
|
||||||
|
parentPort.close();
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
Reference in New Issue
Block a user