// SupportBot, Created by Emerald Services
// Announce
const Discord = require("discord.js");
const fs = require("fs");
const yaml = require('js-yaml');
const { execute } = require("./help");
const supportbot = yaml.load(fs.readFileSync('./supportbot-config.yml', 'utf8'));
module.exports = {
name: supportbot.ChatLog,
description: supportbot.ChatLogDesc,
execute(message, args) {
if (supportbot.DeleteMessages) message.delete();
let name = message.channel.name;
message.channel.messages.fetch({ limit: 100 }).then( msgs => {
let html = '';
msgs = msgs.sort( ( a, b ) => a.createdTimestamp - b.createdTimestamp );
html += `--- Channel Transcript ---
`;
html += `Server Name: ${message.guild.name}
`;
html += `Channel: ${name}
`;
html += `Message: ${msgs.size} Messages
`;
msgs.forEach( msg => {
if ( msg.content ) {
html += `User: ${msg.author.tag}
`;
html += `Message: ${msg.content}
`;
html += `-----
`;
}
});
const TranscriptSavedEmbed = new Discord.MessageEmbed()
.setDescription(supportbot.ChatLogSavedMessage)
.setColor(supportbot.SuccessColour)
message.channel.send({embed: TranscriptSavedEmbed})
const errornochannel = new Discord.MessageEmbed()
.setTitle("SupportBot Error!")
.setDescription(`:x: **Error!** Channel not Found, This command cannot be executed proberbly as their is no channel within this server.\nThis is configurable via **supportbot-config.yml**\n\nChannel Required: \`${supportbot.ChatLogChannel}\`\n\nError Code: \`SB-03\``)
.setColor(supportbot.ErrorColour);
const ChatLogs = new Discord.MessageEmbed()
.setTitle(supportbot.ChatLog_Title)
.setThumbnail(supportbot.ChatLog_Thumbnail)
.addFields(
{ name: 'Channel', value: `<#${message.channel.id}>` },
{ name: 'User', value: `<@${message.author.id}>` },
)
.setColor(supportbot.EmbedColour)
.setFooter(supportbot.EmbedFooter)
let locateChannel = message.guild.channels.cache.find(LocateChannel => LocateChannel.name === supportbot.ChatLogChannel) || message.guild.channels.cache.find(LocateChannel => LocateChannel.id === supportbot.ChatLogChannel)
if(!locateChannel) return message.channel.send({ embed: errornochannel });
locateChannel.send( new Discord.MessageAttachment( Buffer.from( html ), `${name}.html` ) );
locateChannel.send({ embed: ChatLogs });
})
}
}