Skip to content

Releases: r-Techsupport/TechSupportBot

v2025.06.20

20 Jun 18:29
007835f
Compare
Choose a tag to compare

Core
Fixed a typo in the docstring for interaction check
The config.yml path is now set in the .env file
The default.env file now defaults debug to 0
A config item was added to change the owner of the bot
The CI was refactored to be in one file
New CI was added to auto close certain dependabot PRs
A new central file to do moderation actions was added, to improve consistency
Slash command logging was improved greatly
TS will now DM people warnings who message the bot, clearly stating that all messages are logged

Application
New config item to auto reject apps after inactivity for X days was add

Automod
Replaces several functions from protect and who
Automod was rewritten to be more powerful
You can now mute with Automod
You can now do a silent punishment with Automod
Regex filters were fixed

Bot
The startup time is now a dynamic timestamp instead of text

Burn
Command now works on reply

Correct
Now has a clean error when the corrected message will exceed length limits

Debug
New debug commands have been added

Duck
Improve the random chance function
Ducks doing a timeout is now a config option

Extension
Adds a command to enable all disabled extensions in the current guild

Factoid
No more prefix command for factoid all
Factoid search output was improved and sped up a bit
Make the factoid json file be named the invoking factoid name
Adds a new /factoid call command to call factoids via slash command
Improves the messaging on factoid forget to clearly show what aliases will be deleted
Fixes a bug where factoid all didn't work if there are no factoids in a guild

Hangman
Hangman start is now a slash command
Hangman no longer breaks on caps
The person who starts hangman cannot play
The owner of the game can add more guesses
The game now shows what letters have been guessed
The help command on the hangman game was updated

Hello
Was turned into a slash command

HTD
A rouge print statement was removed from the code

IRC
IRC now uses SSL to login
IRC messages are now processed by automod

Joke
The joke category filter has been improved

Logger
Fixes a typo in the log for missing file reuploads

Moderator
Replaces several functions from protect and who
Ban, unban, kick, mute, unmute, warn, and warning clear were all made into slash commands
An individual unwarn command was added

Modlog
Logs all ban and unban actions in a given channel
Stores ban time, reason, moderator, etc into the database

Modmail
A new command to list users banned from modmail was added
The alias command shows a clear message if no aliases are defined
Self/contact success commands now link to the new thread
Fixes sending files to the user

News
Is now a slash command
Filters out undesirables news.google.com links

Notes
Replaces several functions from protect and who
This is now the source of all commands to read and edit notes
Notes all was dramatically rewritten
Permission issues with notes were fixed

Paste
The UI of paste was slightly rewritten
Paste has less of a chance of deleting the original message if the pasting action failed

Purge
Replaces several functions from protect and who
Purge amount and duration were combined into one command
Purge is now a slash command
Better information output and erroring from purge

Report
Allows users to report information, which will be sent into a given channel

Role
Allow a dynamic list for /role self

Whois
Replaces several functions from protect and who
This is now paginated, with better info about notes and warnings
A small redesign to the existing information was done
New flags were added to the whois output to see extra information

Dependencies
aiocron -> 2.1
dateparser -> 1.2.1
discord.py -> 2.5.2
emoji -> 2.14.1
flake8 -> 7.2.0
flake8-bugbear -> 24.12.12
gitpython -> 3.1.44
hypothesis -> 6.135.10
inflect -> 7.5.0
irc -> 20.5.0
isort -> 6.0.1
pip -> 25.1.1
pipenv -> 2025.0.3
pydantic -> 2.9.2
pydoclint -> 0.6.6
pylint -> 3.3.7
pytest -> 8.4.0
pytest-asyncio -> 1.0.0
unidecode -> 1.4.0
Removed ib3

What's Changed

Read more

v2025.02.18

18 Feb 23:47
6e48bf9
Compare
Choose a tag to compare

Core
Icon icons URLs have all been replaced with another source

Application
Minor typo was fixed

Factoid
.factoid all is now retired in favor of /factoid all

Hug
More hug statements

Modmail
Modmail aliases command now shows all the aliases

Dependencies
aiohttp -> 3.10.11
black -> 25.1.0
flake8 -> 7.1.1
flake8-bugbear -> 24.8.19
flake8-docstrings-complete -> 1.4.1
hypothesis -> 6.122.4
pip -> 24.3.1
pipenv -> 2024.4.1
pytest-asyncio -> 0.25.0

What's Changed

Full Changelog: v2024.08.19...v2025.02.18

v2024.08.19

19 Aug 22:18
5b3a792
Compare
Choose a tag to compare

Application
Add manual changes to the application management channel

Backup
Adds a data backup command

Extension
Adds ability to list disabled extensions

Factoid
Make factoid search way more useful, showing what and where your term was found
Allows factoid prefix to be longer than one character

Github
Make description optional

Modmail
Adds ability to auto-reject threads based on regex

Role
Fixes bug where role menu strips all roles on timeout

Dependencies
bidict -> 0.23.1
certtifi -> 2024.7.4
emoji -> 2.12.1
hypothesis -> 6.108.3
pip -> 24.1.2
pydantic -> 2.8.2
pydoclint -> 0.5.6
pylint -> 3.2.6
pytest -> 8.3.2
pytest-asyncio -> 0.23.8

What's Changed

Full Changelog: v2024.07.06...v2024.08.19

v2024.07.06

06 Jul 17:51
c1f173f
Compare
Choose a tag to compare

Application
Will now properly reject appliactions from people who have left the server

Duck
Will now show the could have been time if you miss

Factoids
Adds a config to force disable all embeds, relying only on text
Fixes looping restricted factoids
Deprecates .factoid all
Makes /factoid all, a much more powerful factoid all command

htd
Restructured the file, no functionality change

Logger
Will now log a WARN if reuploading files failed

Modmail
If a message was edited without changing content, nothing is sent to the mods
The error message for a user not being in the guild was made more clear

Protect
Will now log a WARN if reuploading files failed

Winerror
Winerror is now paginated per category, with a maximum of 10 errors per page

Voting
New extension. Allows for blind and anonymous mod votes

Other
Type hints and doc strings have been standardized and added to every function

Workflows
Add a flake8 workflow

Unit tests
Improved the htd unit tests

Dependencies
discord.py -> 2.4.0
inflect -> 7.3.1
hypothesis -> 6.105.0
pip -> 24.1.1
pipenv -> 2024.0.1
pytest -> 8.2.2
pytest-asyncio -> 0.23.7

New Dependencies
flake8 = "==7.1.0"
flake8-annotations = "==3.1.1"
flake8-bugbear = "==24.4.26"
flake8-docstrings-complete = "==1.3.0"
flake8-modern-annotations = "==1.6.0"
flake8-variables-names = "==0.0.6"
pydoclint = "==0.4.1"

What's Changed

Full Changelog: v2024.04.30...v2024.07.06

v2024.04.30

30 Apr 17:58
0eb63f1
Compare
Choose a tag to compare

Core features
A universal DM logging function is created, better logging DMs from all 3 bots
A ton of styling and formatting changes occured, improving type hints, variable names, and doc strings

Animal
Restructure the cog to be a bit more readable

Application
Fixes bugs where people were falsely assumed to have left the server

Help
Sorting is now case insensitive
Custom modmail commands are now searchable in the standard help menu

Modmail
Fixed a bug where the forum channel wouldn't be properly found
Fixed a bug where new modmails pinged nobody
Moved the disabled check to the setup function, so modmail won't try and load if it's disabled

Protect
Fixes a bug where people were falsely assumed to not be in the channel when warning them

Role
Added a missing return to ensure that the role commands permission check actually works

Who
Note writers is now a set config entry instead of being based on kick members

Dependencies
aiohttp -> 3.9.4
black -> 24.4.2
emoji -> 2.11.1
hypothesis -> 6.100.2
inflect -> 7.2.1
pytest -> 8.2.0

What's Changed

Full Changelog: v2024.04.13...v2024.04.30

v2024.04.13

13 Apr 17:57
4b69502
Compare
Choose a tag to compare

Core features
Slash command logs now include user ID

Animal
.fox now exists

Application
Application reminders will now show both user and display name
Application reminders use code blocks to avoid markdown issues

Factoids
Replacing an embed but not message now works properly again
Responses are now way clearer at what factoid is being targetted, always matching what you sent
Info has been reworked to now show aliases as all possible calls

Google
.g I and .g S will now work, in addition to lowercase versions

HTD
Some comment and help menu typos were fixed

Hug
Hug now works on reply

Modmail
Adds a brand new modmail extension

Nickname fix
Adds a reason to the audit log entry containing who ran the command

Dependencies
black->24.3.0
emoji->2.11.0
gitpython->3.1.43
hypothesis->6.100.1
idna->3.7
inflect->7.2.0
pydantic->2.7.0
pylint->3.1.0
pytest->8.1.1
pytest-asyncio->0.23.6

What's Changed

New Contributors

Full Changelog: v2024.02.13...v2024.04.13

v2024.02.13

13 Feb 14:35
3e906fe
Compare
Choose a tag to compare

Changelog

Core features
The generate embed function is now more flexible

Animal
Now incorporates cat and dog
Now has a frog command

Application
Applications are now always sorted by recieve time in the perodic reminder
Applications with a changed name now show old name
Applications auto approved now show what role caused it
User ID is now shown at the bottom of applications
Fixed typo in name of application status column in postgres

Cat
Was replaced by animal

Dog
Was replaced by animal

Duck
The missed embed now clearly says you missed

Extension
Extension loading and unloading has now been fixed

Factoid
Factoid text fallback in certain malformed embed config cases now works properly
Add disabled, protected, and restricted factoid properties
New config entry for factoid admins
Hidden status can now only be changed by factoid admins
The info embed now shows if a factoid is hidden, protected, disabled, and/or restricted

Help
Help now properly indexes all aliases
Calling just .help will now explicitly say all commands

Nicknamefix
Manual way to fix a users nickname if they didn't get fixed automatically.

Protect
Purge now doesn't count it's own invocation message

Rule
Calling multiple rules now only sends a single message

Who
Status now shows the correct status instead of always offline
Whois for mods now shows if pending application and if banned from making applications
Changed the way that warnings are shown in whois
Fixed a minor typo in note_bypass config description

Dependencies
black -> 24.2.0
emoji -> 2.10.1
gitpython -> 3.1.41
hypothesis -> 6.98.4
pip -> 24.0
pipenv -> 2023.12.1
pydantic -> 2.6.1
pytest -> 7.4.4
pytest-asyncio -> 0.23.5
unidecode -> 1.3.8

Unit tests
Unit tests have been re organized to be more clear and readable

Commit list

Full Changelog: v2023.12.26...v2024.02.13

v2023.12.26

26 Dec 13:18
645b817
Compare
Choose a tag to compare

Core features
Config is now stored in postgres
MongoDB is no more
Extensions were completely restructured
The entire core of the bot was completely refactored

Dog
New extension, similar to cat but now .dog prints a picture of a dog

Duck
Add a duck spawn command for debugging
Ducks are now spawned upon a release
Release is now on a hard cooldown

Listener
Now stored in postgres

Github
Will not load without an API key

Help
Is now searchable instead of only by extension name
Now includes slash commands and aliases

Nickname
Is now stored in a dedicated file

Rules
Now stored in postgres

Winerror
Fixed a minor error in hresult output

Dependencies
black -> 23.12.1
dateparser -> 1.2.0
emoji -> 2.9.0
hypothesis -> 6.92.1
isort -> 5.13.2
pip -> 23.3.2
pipenv -> 2023.11.15
pydantic -> 2.5.3
pylint -> 3.0.3
pytest-asyncio -> 0.23.2

Documentation
A huge documentation refactor occurred; most files were moved or renamed
The start of a development guide has been created, detailing how to develop and interact with the core of the bot.

Other
http functions got moved to a dedicated file

v2023.11.07...v2023.12.26

v2023.11.07

07 Nov 19:52
12e87f8
Compare
Choose a tag to compare

Core features
Fixed error when logging DMs
Improve error handling
Adjusted ratelimiting to be faster and less sensitive

Application
New applications will no longer say pending
The regular notification now says all pending applications

HTD
Fix minor typo in documentation

Logger
Now shows thread ID and channel ID
Hardcodes the avatar ID so users changing avatar doesn't break it

Slowmode
Add a slowmode command to modify slowmode of a given channel by the number of seconds

Winerror
New extension!
Searches the winerror database based on given input

Dependencies
black -> 23.10.1
gitpython -> 3.1.40
hypothesis -> 6.88.3
pip -> 23.3.1
pipenv -> 2023.10.24
pylint -> 3.0.2
pytest -> 7.4.3

Other
Code formatting changes

v2023.10.17...v2023.11.07

v2023.10.17

18 Oct 00:03
92f9d6c
Compare
Choose a tag to compare

Core features
HTTP caching has been fixed
A global command rate limiter has been added
A few logging typos were fixed

Duck
Replaces cooldown with a config to disable manipulation

Factoids
Factoids no longer mention the invoker if someone was mentioned in the call

News
An invalid topic in news now defaults to generic

Protect
Alert cache now works again

Role
Adds error handling to the role extension
Removes the drop-down box after a selection has been made
Adds a lock to prevent more than 1 person from modifying roles at the same time on the same person
Adds timeout handling to prevent a timeout from removing all roles
Makes confirmation or rejection messages use the confirm/deny embeds
Adds proper type hints to the entire file
Makes final response show what roles were added and removed
Will ensure that a success message isn't shown if it isn't successful

Dependencies
gitpython -> 3.1.38
hypothesis -> 6.88.1
typing_extensions -> 4.8.0
pip -> 23.3
pipenv -> 2023.10.3
pydantic -> 2.4.2
pylint -> 3.0.1

Other
Minor code formatting changes

v2023.10.03...v2023.10.17