Skip to content

Releases: Zacky2613/The-Watcher

Release v1.7

25 Mar 10:08
Compare
Choose a tag to compare

Release v1.7

Main Features

  • With the new overhaul of the Watcher Bot's new filter system lots of false positives words have been creeping on my radar so I've made a whole new section dedicated to scrapping off false positive words.
  • I've GREATLY improved the order of steps the filter system now takes to be faster, shorter, and more readable.

Other Features/Bugfixes:

  • Added /help command.
  • Fixed a message about missing channel selection referencing !help to update it to the new /help
  • Other general fixes to the README.md to make it cleaner.
  • Issue when there is a permission role order leading to the bot sending 2 messages. (This could pile and up and get tedious so it includes the permission issue notice in the report message)
  • Limited the bot to only show to first 1-100 characters of a report message to stop rate limiting, wasted bandwidth, and also stop people breaking reports and hiding their activity by making the message 2000+ characters and reports not able to send.
  • Changed the slur_filter argument type= to filter_type= to avoid python and syntax highlighters thinking it's the keyword "type".

Full Changelog: v1.6...v1.7

Release v1.6

05 Mar 10:44
Compare
Choose a tag to compare

Release v1.6

Main Features:

  • Massive upgrade with the filter which now removes special characters to separate characters in word recognition, only scan for unique characters in a string (Example: "heeellllooo" would turn into "helo"), using recursion to use different filter techniques for certain symbols/letters, and then another unique character checker at the end
  • Massive file and code restructuring to make it easier to work with as the filter gets more advanced.
  • Added around 20+ new items into the filter and also a new type of item for the filter to use.

Other Features/Bugfixes:

  • Fixed uncommon error within /setchannel where old ctx.message.channel.id was interaction.message.channel.id and not interaction.channel.id

Full Changelog: v1.5...v1.6

Release v1.5

08 Feb 12:55
Compare
Choose a tag to compare

Release v1.5

Main Features:

  • 🎉 Finally added support to slash commands! commands like /setchannel and /blacklist are now slash commands to adapt to discords every pushing slash command support and to avoid confusion with command arguments
  • Removed !clearchat as I feel it's no longer needed.
  • Fixed a blatant encoding issue with ./Json./words.json so now emojis can be read in the file and don't have to exist in the actual main.py file

Other Features/Bugfixes:

  • Made some project structure changes to support large more complex projects when needed
  • Updated the README.md to include some statistics and a big custom image button for adding The Watcher to your discord server
  • Added a LICENSE
  • More comments and I've gone back to make some previous comments more clearer.
  • Fixed some issues with the filter such as a report getting sent 2 messages, one with the message format and then another with just the message in question with a ping.

Notes:

  • The filter is still handled using the old ctx method because I don't think you can change the interaction for @bot.event decorator.

This release was mainly to port over The Watcher to slash commands and fix some pesky bugs and issues that have been lingering around for a bit now. Hoping for v1.5.1 (or whatever the next one is)

Full Changelog: v1.4.1...v1.5

v1.4.1

09 Dec 02:39
Compare
Choose a tag to compare

Release v1.4.1

Fixes/Features:

  • Timeout is now 12 hours instead of 30 minutes
  • Timeout time is said in report message
  • Fixed bug with nickname change report message username appearing as "None"
  • Fixed bugs with the deploy filled with bugs coming from when nick = None then trying to do filtered_item.lower()
  • New item in filter_item
  • Changed the description for db_remove()

Full Changelog: v1.4...v1.4.1

v1.4

21 Nov 12:09
Compare
Choose a tag to compare

Release v1.4

Main Features:

  • Automatic timeout for 30 minutes when someone is caught with the filter. This will help with spamming and slow down people trying to find bypasses.
  • If someone is caught saying the nword you now get a pinged! According the !setchannel command is now !setchannel @mod_ping to run.
  • I've been flipping around with this repo about it being private or public but I have now officially made it public from now on 🎉. Certain parts of the code have also been changed for privacy such as the blacklist and server database now being os.environ() so they cannot be spammed (Also the channels have been deleted and old ones reset so previous commits server database channels don't work anymore).

Other Features/Bugfixes:

  • Blacklist has been moved out of ./Json/words.json as it only gets read and never written into the file and have since made _replace_letters much more cleaner in the process.
  • Changed "data" to word_data and blacklist data is blacklist_data. I will be sticking to these principles from now on for cleaner code.
  • Added lots of comments and is now very much more detail!
  • New db_remove(type: str, data: dict or list, remove_item: any) function which can easily delete any item from the database. Please view the code for a more in-depth detail in it's commenting.
  • Because of an error with reading emojis from json items I have make a emoji list filter present inside the code "emoji_list".
  • Removed the ["servers"] item in the server_data dictionary as it serves no purpose currently.
  • Database formats can now be found at the start of the function !setchannel & blacklist to make it easier to modify universally in the function.
  • Nicknames now work with slur_filter() and the code for the filter has been slightly modified so it will work with nicknames.
  • The README.md file has undergone a huge change recently and this update brings a new How It Works section and a link to add the bot to your server.
  • intents=intent -> intents=discord.Intents.all()
  • Moved on_ready() to be near the top of the code.
  • Optional arguments now present in slur_filter()
  • With the addition of the mod ping with !setchannel 2 more elif statements have had to been added.

Full Changelog: v1.3...v1.4

v1.3

15 Nov 12:40
Compare
Choose a tag to compare

Release v1.3

Main Features:

  • Brand new command !clearchat🎉! This command is used when a previously found bypass is patched and the old and lingering messages still stay so this can be used to flush them out instead of manually deleting them.
  • The !blacklist command can now remove people from blacklist from client side. (Before I had to manually take it out of the database and then restart the bot for the effects to take effect)
  • Moved from Heroku to Railway as Heroku is removing their free tier on the 28th of Nov 2022 because of crypto miners exploiting it.

Other Features/Bugfixes:

  • The command blacklist now shows the username in the backend.
  • New items added to the filter to improve it.
  • Fixed bug with !setchannel & !blacklist not working at release of v1.2
  • Updated the version the of discord (the python module) cloud services use to be up to date
  • Moved from python v3.10.7 -> 3.11!

Notes:

Kind of a small version update, but trust me alot has changed! Next update will have a few new features and quality of life upgrades,

Full Changelog: v1.2...v1.3

v1.2

20 Oct 13:24
Compare
Choose a tag to compare

Release v1.2

Main Features:

  • Changing server nicknames will no longer work as a bypass around the bot, it now detects them.
  • Blacklist command now shows the user's username and is much more clear.
  • Fixed the bot clearing all it's server and blacklist data after a new deployment, it now scans through a discord channel getting every message and using that as a database. 🎉
  • With the new method of getting data ./servers.json has now been deleted because of it no longer being needed (server_data is now manual set at the start of the file).

Other Features/Bugfixes:

  • Removed all print statements for privacy & security.
  • Removed the following modules: datetime & discord.flags (as they are no longer in use)
  • In ./words.json changed _blocked_users -> blacklist (It was originally called this before when I made it and have only recently had time to come back around and change it).
  • Made !help more clear and precise.
  • Have now added intents to the bot.
  • Fixed a bug with the manual replace with emoji's with the 🇦 emoji being replaced with a🇦 instead of a
  • The "You cannot send special characters" message is now a timed one, people exploited this to flood channels.
  • Fixed up some grammatical error's in messages and made some sentence shorter
  • Removed the , 1) in rounding with the !ping command to save character space
  • Fixed some over & under-indentation issues throughout the code
  • General cleanup and better code comments to give more detail for readability

Notes:

  • If there's no more important oversights like nicknames I will start the work on a new feature to give the offender a punishment selected by a server admin, this will include warnings, timeouts, kicks, and bans which are fully selectable by the server. (This might take some time so be patience 👀)

Full Changelog: v1.1.1...v1.2

v1.1.1

17 Oct 08:37
Compare
Choose a tag to compare

Release v1.1.1

Features

  • Command !blacklistuser -> !blacklist
  • More detail to !help

Fixes

  • Fixed an issue with !blacklist not working.
  • Fixed an issue with !setchannel unable to cross-reference channel & guild id's because I forgot to make intergers into strings when being read.
  • Added error message when no channel is selected using !setchannel (It will print the same log report but with a note saying to set a channel)
  • Fixed an issue with !blackuser not checking if the userid already existed in the files.
  • General code cleanup and more in depth documentation with this version.

Full Changelog: v1.1.0...v1.1.1

v1.1.0

13 Oct 11:15
Compare
Choose a tag to compare

Release v1.1.0

Main Features

  • Name change as we transition the bot to a all-server friendly bot instead of single server use bot.
  • New command !setchannel which is send all reports to the channel the command is wrote in (need admin in the server to perform this command).
  • Changed blacklist command to !blacklistuser @discorduser.
  • Changed the report format, it now displays @discorduser-#channel-sent-in: "message_sent_by_user_if_containing_nword"

Other Features

  • Added a !ping & !help command.
  • More comment code documentation.
  • Updated filter to be more advanced as people have found more and more bypasses (your bypasses only make me stronger)

Notes

  • Will add a setting to how to punish users sending words that trigger the bot
  • Will work on a better method of saving blacklisted users and servers in servers.json, current method is pretty clunky.

v1.0.0

22 Sep 09:14
Compare
Choose a tag to compare

Release v1.0.0

Main Features

  • Monke-bot has a nword filter built in and easily modifiable to add, edit, and remove certain filters
  • Contains a user blacklist that forces them to use assci characters to prevent people getting around the filter by using strange characters use command $add_user @user_mention.
  • Monke-bot not only filters messages it also filters messages when edited
  • Easy to make a heroku project with the required files in place

Full Changelog: https://github.com/Zacky2613/The-Watcher/commits/v1.0.0