diff options
| author | ame <[email protected]> | 2023-12-20 17:06:51 -0600 | 
|---|---|---|
| committer | ame <[email protected]> | 2023-12-20 17:06:51 -0600 | 
| commit | bfbbe46b97bad9f21905d53d03eeb09cba52f6ac (patch) | |
| tree | 3467cb2b555125123c01f67aadb9daa201bae741 /events/message.js | |
| parent | efe4a6017895128c3c41fb81fbbb3a7dbf22ad08 (diff) | |
pronoun detecting and fixes
Diffstat (limited to 'events/message.js')
| -rw-r--r-- | events/message.js | 49 | 
1 files changed, 46 insertions, 3 deletions
| diff --git a/events/message.js b/events/message.js index facd708..b93f081 100644 --- a/events/message.js +++ b/events/message.js @@ -5,6 +5,7 @@ const { parse_inp } = require("../src/util")  const { channel } = require('diagnostics_channel');  const { PermissionsBitField } = require('discord.js');  const { EmbedBuilder } = require("discord.js"); +const util = require("../src/util")  let settings = require('../src/settings')  let config_loc = __filename+".json"  module.exports = { @@ -17,13 +18,55 @@ module.exports = {                  return require("./dm").main(client,Discord,message)              if(!settings["allowed-servers"].includes(message.guild.id)||message.author.bot||message.member==null)                  return; + +            //spam messages +            for(let i = 0; i < global.recent_messages.length; i++){ +                let diff = util.diff((new Date(message.createdTimestamp)).getUTCSeconds(),(new Date(global.recent_messages[i].createdTimestamp)).getUTCSeconds()); + +                if(diff>2){ +                    global.recent_messages.splice(i,1); +                    i = -1; +                } +            } + +            let matching_ids = []; +            for(let i = 0; i < global.recent_messages.length; i++){ +                let m = global.recent_messages[i]; +                if((m.content==message.content||util.similarity(m.content,message.content))&&m.author==message.author){ +                    matching_ids.push(m); +                } +            } +            global.recent_messages.push(message) +            if(matching_ids.length > 3){ +                //let temp_msg = global.recent_messages; +                global.recent_messages = global.recent_messages.filter(x => x.author != message.author) +                let could_timeout = true +                try{ +                    await message.member.timeout(60000) +                } catch (e) { +                    could_timeout = false; +                } +                for(let mm of matching_ids){ +                    mm.delete(); +                    //try { await mm.delete(); } catch (e) {} +                } +                 +                let embed = new EmbedBuilder() +                    .setColor(settings.defaultColor) +                    .setTitle("Spam:(") +                    .setDescription("<@"+message.author.id+"> sent "+matching_ids.length+" messages, similar to or matching \n`"+message.content+"`") + +                global.channels["admin-chan"].send({ embeds: [embed]}) +            } +            //done w/ spam +              //track message              let utrack = await db.Track.findAll({where:{user:message.author.id,track:true}})              if(utrack.length!=0){                  utrack = utrack[0];                  let words = JSON.parse(utrack.words);                  for(let w of words){ -                    if(message.content.includes(w.word)) w.count+=message.content.split(w.word).length-1; +                    if(message.content.toLowerCase().includes(w.word)) w.count+=message.content.split(w.word).length-1;                  }                  db.Track.update({words:JSON.stringify(words)},{where:{user:message.author.id,track:true}})              } @@ -66,7 +109,7 @@ module.exports = {              }              //done w/ auto reactions - +                          //deal with commands              let remove = function(msg) {setTimeout(async()=>{try{await msg.delete()}catch(e){}},config["error-timeout"].value)}              let date = new Date() @@ -109,4 +152,4 @@ module.exports = {              //done w/ commands          })      }, -}
\ No newline at end of file +} | 
