Releases: Zacky2613/The-Watcher
Releases · Zacky2613/The-Watcher
Release v1.7
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
argumenttype=
tofilter_type=
to avoid python and syntax highlighters thinking it's the keyword "type".
Full Changelog: v1.6...v1.7
Release v1.6
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
wasinteraction.message.channel.id
and notinteraction.channel.id
Full Changelog: v1.5...v1.6
Release v1.5
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
blatantencoding issue with./Json./words.json
so now emojis can be read in the file and don't have to exist in the actualmain.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
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 dofiltered_item.lower()
- New item in filter_item
- Changed the description for
db_remove()
Full Changelog: v1.4...v1.4.1
v1.4
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
" toword_data
and blacklist data isblacklist_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
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
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 witha🇦
instead ofa
- 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
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
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
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