From d78b45c5443aa1bbfea41dcd540c0123c883c00d Mon Sep 17 00:00:00 2001 From: Benjamin Kyd Date: Sun, 19 Jul 2020 21:13:32 +0100 Subject: [PATCH] restarting --- ServerMain | 39 ------------ ServerMain.pub | 1 - legacy/src/cmd/events.js | 2 +- src/discordevents.js | 127 +++++++++++++++++++++++++++++++++++++-- 4 files changed, 122 insertions(+), 47 deletions(-) delete mode 100644 ServerMain delete mode 100644 ServerMain.pub diff --git a/ServerMain b/ServerMain deleted file mode 100644 index 5c953aa..0000000 --- a/ServerMain +++ /dev/null @@ -1,39 +0,0 @@ ------BEGIN OPENSSH PRIVATE KEY----- -b3BlbnNzaC1rZXktdjEAAAAACmFlczI1Ni1jdHIAAAAGYmNyeXB0AAAAGAAAABBhlxt6eL -Bs6RwE8O3pyvJ4AAAAEAAAAAEAAAGXAAAAB3NzaC1yc2EAAAADAQABAAABgQCnyKyQ8Oks -NDRTZGp63ow6ZdTWvyMpo53eEeB34gA4Fj10riu4nBN+tnhzLF8JcGc6RDRfEkvNpBNl3W -SSrlYgAEm1U97hbliYu1Gwf8JzK5wyq6P/PQJsMo21we5uwqsqujdrY8zuQlixizSTQaLM -N8Mj0xMngQ9QBOXfiTmI1IPBOM5D5vo6YBxJGB5/RiBzfQ2GP7mqu0818dE/soGxHYlReP -s69GlCTjOlXfZQrcEQiTLrnbkOwj2NjFechCx7/r36unEBBBlGqMZW1McAyr7JrcSdd9GC -b/O2/mKpvv1DzfsWhLlMC30wiz2zcYDmB9BvR+0ZPmdEX+VZNm3hJeNCKCqYxJg3I3CvBl -vvVmdv3xdZzzqi6MtDyx3h6MMFHBTIBpRz2j9DAiGQUSlokNzQ8EEqa2epxLY1FVgOEQUr -6q5sA/ekmh9n2guA6QkfXZQ0D8JTu927SSZsJ5BUa9FzKvgiVqFMTgcd7d9enPuv8uD++x -mtM2bSBiFDzP0AAAWQIgGzhPfQqzsSixZDLwgvEeIXKYaWezQW8mOvXXNyClDq6XVfvNXE -6V5xDvlgd0lXPZtV+zoFCARhVwhUwcFm7DD9mGEuB8o3i/LJd18f6UuhwP7y23jVFcPeOr -xsO6Ush773UedpdP0Mri2pM9o7LTshNB+NLWrryTHmNFlLP78HfBBUUBfeoBDOZt0OPPQD -lKuBYhbDirZHOmErHUwWqCPP+LvSd2l2Y9RthNwThKjQzbHvsA8fhQdiX8gn93slscZJVX -YTGXT9zzlvYYG8zSI3ltHp+CmF9qAN28yJFAjFkDbDpjISEHuNn15dLgrt7/2l8qFgvndo -0LrqnT/9ZkDR5nuec+AkvcOnVcAZ/WhQU/EhBuedHo9wVo+dBk7tYcdcRohIqwqY+dbDab -D020sUpjiWDhLvxUT6PUvJukXABlTMGGe43hbm975dIvGdf4PoasbuktPAUUa5uNJcCbls -ajDdq0np70cfppYTZdZvf8eJ0/S1Faox69RrxPmXHS42DZckXtAdqctWFN/eHNA3I7nHYw -H3MEdYBQVg5UHKmG4tIjDnVB0vFRLWGLY8TLl3NRqDKAT7vOe6BhuRwfN95OBQtoslCWL4 -GtF8wBaKW3BOx906LBMBU9WxXzPHzFpd2LdRiKV/F+Eveu/S7bFXg6TGBy8Qn7VUH/m6EV -tLr+89GaLol047U+lB7G6YRZ5+Ge93oNZUkm4tSsc8keCDXhGHXvC8EaGGuR7+RHpSHJyV -HYy8HVJ5V2dU+sjYZHSYYDsCaU3OHc3ovOIfpBmeXOAcEPlpT/pIN2WrzQoOOrpy7dQFy2 -A8+zrHN9DppzAuIy8qhlp5Zgq9G4GyYcgfOqQl+8YQ0SJlol/bM2UBGhPbSpyf2GzX1ak2 -9W2tBK+k/QrfKw8IL/mrVeO6AaJISwNwTazw4kWDvHrozY8odX+urAAdC7zexrfV+i49HU -j6PWIdKWboaTq4BP/q28EG4rpj7BVpyOd/+nmqNc+b/7w11SZjc/nngk/oBJdNGz02sl5i -E2ztICko0Fdwitw4c4W7BJz/gsW5RP/zEIYRqe6xKqm+Ie33U/GSRybMn2F08YPFOM3MmZ -8ay2LYJtHotIxtaoNmCeW9QgVVmVkAOKxF2aV1xG1PYyyXnGuch8c7joqToTiKp8gJ1l1v -/6bpY61//+ZgXdKWGbiIegthjofQqENz6j8JyeHVSdoJSY8HA42yb8KioHyjAFa8n/4Dev -ccNXXW/vVqWYamol+40k3gtMKNjGukmQjBBxifhl4vEPoaNzMx0fZy3UrDLk0h+k3sx4LZ -Owh5AjAfCdmK+5tP5KRsbvMMR1pzn+fH3PRuVEvYxj98XZH5Q8bro8pOEsRR90zgrLhZSX -HU2Ogd3I+YaD+MYWQ9XSoIpGTfOE6z8dMkajOyXVkQoa9vkdhgE8zaGUTQfFkT4w74mpb2 -L/539OlPf/Wz6o5BHqTSeXcQijKb14jpksoNzPQxW+y1Vx5KXBVp+SGWSl41FE3RZvvHnE -HtbYTfbe+NhTusmmwYHvRwFny/WjQMH/keFDz9a3mSV7vNwp9hkfglVbwZyGHcPnpsNGuq -1Z1XDolPqoRWMi4N2X4PfrXjttWApT1uFZmrZgXXkWVcyGyxGQn/ZHFFt1s7wdDAW1h58t -mG3i33N6bLA/ebyQi25gIPVudGGvCJVtEbLepYAhZ3eAUNFLMfXWCqj26atrdqD/VaPzYV -ClKQpht+AsvTXW25TAHm0y1fMsxA/raGfvh+2RecEaVrByR+HjYrWJ6JKuqjIgYU8Khl3C -CbHBbFuytU8ld/5kVVu5pWqbwes/hWAc7u7sY9u5ttaXHuNBCGMCNQc+WoiHUTDEkF4THr -Ic0Zcijf75QiZGOIFyjLTP6gpes= ------END OPENSSH PRIVATE KEY----- diff --git a/ServerMain.pub b/ServerMain.pub deleted file mode 100644 index 35fe6e9..0000000 --- a/ServerMain.pub +++ /dev/null @@ -1 +0,0 @@ -ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQCnyKyQ8OksNDRTZGp63ow6ZdTWvyMpo53eEeB34gA4Fj10riu4nBN+tnhzLF8JcGc6RDRfEkvNpBNl3WSSrlYgAEm1U97hbliYu1Gwf8JzK5wyq6P/PQJsMo21we5uwqsqujdrY8zuQlixizSTQaLMN8Mj0xMngQ9QBOXfiTmI1IPBOM5D5vo6YBxJGB5/RiBzfQ2GP7mqu0818dE/soGxHYlRePs69GlCTjOlXfZQrcEQiTLrnbkOwj2NjFechCx7/r36unEBBBlGqMZW1McAyr7JrcSdd9GCb/O2/mKpvv1DzfsWhLlMC30wiz2zcYDmB9BvR+0ZPmdEX+VZNm3hJeNCKCqYxJg3I3CvBlvvVmdv3xdZzzqi6MtDyx3h6MMFHBTIBpRz2j9DAiGQUSlokNzQ8EEqa2epxLY1FVgOEQUr6q5sA/ekmh9n2guA6QkfXZQ0D8JTu927SSZsJ5BUa9FzKvgiVqFMTgcd7d9enPuv8uD++xmtM2bSBiFDzP0= ben@ben-MANJARO diff --git a/legacy/src/cmd/events.js b/legacy/src/cmd/events.js index ab4cbf8..60c2ec7 100644 --- a/legacy/src/cmd/events.js +++ b/legacy/src/cmd/events.js @@ -19,7 +19,7 @@ function buildDiffs(after, before) { doneKeys.push(key); }); Object.keys(before).forEach(key => { - if (!doneKeys.inclu`de`s(key)) { + if (!doneKeys.includes(key)) { let one = typeof (before[key]) === 'object' ? JSON.stringify(before[key]) : before[key]; let two = typeof (after[key]) === 'object' ? JSON.stringify(after[key]) : after[key]; str += key + ' | ' + one + ' -> ' + two + '\n'; diff --git a/src/discordevents.js b/src/discordevents.js index f2a664f..0953e91 100644 --- a/src/discordevents.js +++ b/src/discordevents.js @@ -8,7 +8,6 @@ const DiscordEmbed = require('./discordembedbuilder.js'); const Eris = require('eris'); - let GuildsAndLogChannels = []; module.exports.setup = async function() @@ -18,7 +17,7 @@ module.exports.setup = async function() Discord.bot.on('channelCreate', async (channel) => {ChannelCreate(channel)}); Discord.bot.on('channelDelete', async (channel) => {ChannelDelete(channel)}); Discord.bot.on('channelPinUpdate', async (channel, timestamp, oldtimestamp) => {ChannelPinUpdate(channel, timestamp, oldtimestamp)}); - Discord.bot.on('channelUpdate', async (channel, oldchannel) => {}); + Discord.bot.on('channelUpdate', async (channel, oldchannel) => {ChannelUpdate(channel, oldchannel)}); Discord.bot.on('guildBanAdd', async (guild, user) => {}); Discord.bot.on('guildBanRemove', async (guild, user) => {}); Discord.bot.on('guildCreate', async (guild) => {}); @@ -33,7 +32,7 @@ module.exports.setup = async function() Discord.bot.on('guildUpdate', async (guild, oldguild) => {}); Discord.bot.on('inviteCreate', async (guild, invite) => {}); Discord.bot.on('inviteDelete', async (guild, invite) => {}); - Discord.bot.on('messageCreate', async (message) => Commands.newMessage(message)); + Discord.bot.on('messageCreate', async (message) => {Commands.newMessage(message)}); Discord.bot.on('messageDelete', async (message) => {}); Discord.bot.on('messageDeleteBulk', async (messages) => {}); Discord.bot.on('messageReactionAdd', async (message, emoji) => {}); @@ -76,8 +75,27 @@ async function GetLogChannel(guildID) } } +function BuildObjDiff(before, after) { + let ret = []; + let doneKeys = []; + Object.keys(after).forEach(key => { + let one = typeof (before[key]) === 'object' ? JSON.stringify(before[key]) : before[key]; + let two = typeof (after[key]) === 'object' ? JSON.stringify(after[key]) : after[key]; + ret[one] = two; + doneKeys.push(key); + }); + Object.keys(before).forEach(key => { + if (!doneKeys.includes(key)) { + let one = typeof (before[key]) === 'object' ? JSON.stringify(before[key]) : before[key]; + let two = typeof (after[key]) === 'object' ? JSON.stringify(after[key]) : after[key]; + ret[one] = two; + } + }); + return ret; +} + // Richembed defines -// update: blue #328fA8 +// update: blue #328FA8 // delete / leave: red #E0532B // create / join: green #42A832 // everything else: yellow #A84C32 @@ -138,8 +156,105 @@ async function ChannelPinUpdate(channel, timestamp, oldtimestamp) const FallbackChannel = await GetLogChannel(channel.guild.id) if (FallbackChannel == -1) return; - let pins = await channel.getPins(); + const LatestPin = (await channel.getPins())[0] || { author: { mention: "Invalid User" } }; + + // if timestamp is greater than the old timestamp + // then the pin is new, otherwise, the pin is removed + if (timestamp > oldtimestamp) + { + let embed = new DiscordEmbed({ + title: `Pin Created`, + fields: [ + { name: 'Channel', value: channel.mention, inline: true }, + { name: 'Author', value: LatestPin.author.mention, inline: true }, + { name: 'Content', value: LatestPin.content ? LatestPin.content : "Blank Message", inline: false } + ], + timestamp: new Date(timestamp), + footer: { text: `ID: ${LatestPin.id}` } + }) + + embed.colour('#42A832'); + embed.url('https://logori.xyz') + + Discord.bot.createMessage(FallbackChannel, {embed: embed.sendable}); + } else + { + let embed = new DiscordEmbed({ + title: `Pin Removed`, + fields: [ + { name: 'Channel', value: channel.mention, inline: true }, + ], + timestamp: new Date(timestamp), + footer: { text: `ID: ${LatestPin.id}` } + }) + + embed.colour('#E0532B'); + embed.url('https://logori.xyz') + + Discord.bot.createMessage(FallbackChannel, {embed: embed.sendable}); + } +} + +async function ChannelUpdate(channel, oldchannel) +{ + if (!channel.guild) return; + const FallbackChannel = await GetLogChannel(channel.guild.id) + if (FallbackChannel == -1) return; + + // channels can only be updated one section at a time + // that means channel name / topic /nsfw / limiter + // OR orverwrites, never both + + const Type = channel.type == 0 ? 'Text' : 'Voice'; + + if (Type == 'Text') + { + if (channel.name != oldchannel.name + || channel.nsfw != oldchannel.nsfw + || channel.topic != oldchannel.topic) + { + let embed = new DiscordEmbed({ + title: `Channel ${channel.name} Updated`, + timestamp: new Date(), + footer: { text: `ID: ${channel.id}` } + }) + + // these include zws characters + embed.field('Before', '​', true); + embed.field('After', '​', true); + embed.field('​', '​', true); + + if (channel.name != oldchannel.name) + { + embed.field('Name:', oldchannel.name, true); + embed.field('Name:', channel.name, true); + embed.field('​', '​', true); + } + if (channel.nsfw != oldchannel.nsfw) + { + embed.field('nsfw:', oldchannel.nsfw, true); + embed.field('nsfw:', channel.nsfw, true); + embed.field('​', '​', true); + } + if (channel.topic != oldchannel.topic) + { + embed.field('Topic:', oldchannel.topic ? oldchannel.topic : "No topic", true); + embed.field('Topic:', channel.topic ? channel.topic : "No topic", true); + embed.field('​', '​', true); + } + + embed.field('Channel', channel.mention, false); + + embed.colour('#328FA8'); + embed.url('https://logori.xyz') + + Discord.bot.createMessage(FallbackChannel, {embed: embed.sendable}); + } + + } else if (Type == voice) + { + + } - console.log(pins); }