From 48a576ab5605ec3ec9272809668b8d7ce91c477e Mon Sep 17 00:00:00 2001 From: Andrew Lee Date: Sat, 8 Mar 2025 17:23:34 -0500 Subject: Put LLM output on text file; Some fixes in logging; New command --- bot/src/events/GuildMemberAdd.js | 10 +++++++++- bot/src/events/GuildMemberRemove.js | 2 +- bot/src/events/InteractionCreate.js | 2 +- bot/src/events/MessageBulkDelete.js | 9 +++++---- bot/src/events/MessageCreate.js | 15 ++++++--------- bot/src/events/MessageDelete.js | 2 +- bot/src/events/MessageUpdate.js | 2 ++ 7 files changed, 25 insertions(+), 17 deletions(-) (limited to 'bot/src/events') diff --git a/bot/src/events/GuildMemberAdd.js b/bot/src/events/GuildMemberAdd.js index 783b29e..1e3cd54 100644 --- a/bot/src/events/GuildMemberAdd.js +++ b/bot/src/events/GuildMemberAdd.js @@ -1,5 +1,6 @@ import { EmbedBuilder, Events } from 'discord.js'; import { guildSettings } from '../models/guild-settings.js'; +import { autoRole, serverWhitelist, roleWhitelist } from '../storage/consts.js'; export default { name: Events.GuildMemberAdd, @@ -9,7 +10,7 @@ export default { const logEmbed = new EmbedBuilder() .setAuthor({ name: 'AleeBot Logging', iconURL: member.client.user.avatarURL() }) - .setDescription('A user has joined this server!') + .setDescription('A user has joined this server.') .addFields( { name: 'Username: ', value: `${member.user}`, inline: true }, { name: 'User ID: ', value: `${member.id}`, inline: true }, @@ -22,5 +23,12 @@ export default { if (!guildMember) return; await guildMember.send({ embeds: [logEmbed] }); + + if (autoRole) { + if (member.guild.id !== serverWhitelist) return; + const role = member.guild.roles.cache.get(roleWhitelist); + member.roles.add(role); + console.log(`[i] ${member.user.username} joined Andrew Lee Projects, automatically giving them role.`.green); + } } }; diff --git a/bot/src/events/GuildMemberRemove.js b/bot/src/events/GuildMemberRemove.js index c031211..aa44366 100644 --- a/bot/src/events/GuildMemberRemove.js +++ b/bot/src/events/GuildMemberRemove.js @@ -9,7 +9,7 @@ export default { const logEmbed = new EmbedBuilder() .setAuthor({ name: 'AleeBot Logging', iconURL: member.client.user.avatarURL() }) - .setDescription('A user has left this server!') + .setDescription('A user has left this server.') .addFields( { name: 'Username: ', value: `${member.user.username}`, inline: true }, { name: 'User ID: ', value: `${member.id}`, inline: true }, diff --git a/bot/src/events/InteractionCreate.js b/bot/src/events/InteractionCreate.js index 8f1e998..ac979d2 100644 --- a/bot/src/events/InteractionCreate.js +++ b/bot/src/events/InteractionCreate.js @@ -1,7 +1,7 @@ import { Events, MessageFlags } from 'discord.js'; function error(e) { - return `Something went wrong. [Submit an issue at the AleeBot repository.]()\nMessage:\n\`\`\`${e.stack}\`\`\``; + return `Something went wrong. [Submit an issue at the AleeBot repository.]()\nMessage:\n\`\`\`js\n${e.stack}\`\`\``; } export default { diff --git a/bot/src/events/MessageBulkDelete.js b/bot/src/events/MessageBulkDelete.js index 1595012..92db987 100644 --- a/bot/src/events/MessageBulkDelete.js +++ b/bot/src/events/MessageBulkDelete.js @@ -9,16 +9,17 @@ export default { const logEmbed = new EmbedBuilder() .setAuthor({ name: 'AleeBot Logging', iconURL: channel.client.user.avatarURL() }) - .setDescription(`A bulk of ${msg.size} messages was deleted in ${channel}`) + .setDescription(`A bulk of ${msg.size} messages were deleted in ${channel}`) .setColor('#ff021b') .setTimestamp(); let messages = []; msg.forEach(message => { - messages.push(message.createdAt.toUTCString()); - messages.push(`${message.author.username} - ${message.author.id}`); - messages.push(message.content); + messages.push(`[${message.createdAt.toUTCString()}]`); + messages.push(`${message.author.username} (${message.author.id})`); + messages.push(`Message (${message.id}): ${message.content}`); + messages.push('-----------------------------------'); }); const messageContent = messages.join('\n'); diff --git a/bot/src/events/MessageCreate.js b/bot/src/events/MessageCreate.js index e7af3a8..8753587 100644 --- a/bot/src/events/MessageCreate.js +++ b/bot/src/events/MessageCreate.js @@ -1,4 +1,4 @@ -import { Events } from 'discord.js'; +import {AttachmentBuilder, Events} from 'discord.js'; import { ollama } from '../utils/ollama.js'; import { ollamaGlobal, ollamaModel } from '../storage/consts.js'; import { guildSettings } from '../models/guild-settings.js'; @@ -12,11 +12,11 @@ export default { const guildSetting = await guildSettings.findOne({ where: { guildID: msg.guild.id } }); - const args = msg.content.slice(`<@${msg.client.user.id}>`.length).trim(); + const args = msg.content.slice(`${msg.client.user}`.length).trim(); if (msg.mentions.has(msg.client.user)) { if (!guildSetting.ollamaEnabled) return; - if (!ollamaGlobal) return msg.reply('Sorry, this feature has been turned off.'); + if (!ollamaGlobal) return msg.reply('Sorry, the LLM chatbot feature has been turned off.'); if (!args) return msg.reply('Sorry? What was that?'); try { @@ -26,15 +26,12 @@ export default { }); let content = response.message.content; - content = content.replace(/.*?<\/think>/g, ''); if (content.length > 2000) { - const chunks = content.match(/[\s\S]{1,2000}/g) || []; - for (const chunk of chunks) { - await msg.reply({ content: chunk }); - } + const attachment = new AttachmentBuilder(Buffer.from(content, 'utf-8'), { name: 'output.txt' }); + return await msg.reply({ files: [attachment] }); } else { - await msg.reply({ content }); + return await msg.reply({ content }); } } catch (err) { diff --git a/bot/src/events/MessageDelete.js b/bot/src/events/MessageDelete.js index 62f8536..154940b 100644 --- a/bot/src/events/MessageDelete.js +++ b/bot/src/events/MessageDelete.js @@ -15,7 +15,7 @@ export default { .addFields({ name: 'Deleted Message: ', value: `\`\`\`${msg.content}\`\`\`` }) .setColor('#ff021b') .setTimestamp() - .setFooter(`Author ID: ${msg.author.id}`); + .setFooter({ text: `Author ID: ${msg.author.id}` }); let deleteMessage = msg.client.channels.cache.get(guildSetting.logChannelID); if (!deleteMessage) return; diff --git a/bot/src/events/MessageUpdate.js b/bot/src/events/MessageUpdate.js index f4cb769..7fc5e1b 100644 --- a/bot/src/events/MessageUpdate.js +++ b/bot/src/events/MessageUpdate.js @@ -1,6 +1,8 @@ import { EmbedBuilder, Events } from 'discord.js'; import { guildSettings } from '../models/guild-settings.js'; +// bug: whenever a long message is edited, the bot crashes; also make sure that the log has newline + export default { name: Events.MessageUpdate, async execute(msg, newmsg) { -- cgit v1.2.3