Releases: r-Techsupport/TechSupportBot
v2026.06.15
Core
- A complete rework of the config system was been undertaken, replacing the database config system with a file based config system
- Restructures the file system to remove nesting everything in the "techsupport_bot" folder
- Restructions the extensions storage in the bot to be "modules.category.extension" instead of "commands.extension" or "functions.extension"
- Updates how module names are determined for application commands
- The presence intent is no longer requested
- Add property to make application commands always enabled regardless of guild config
- Adds a docker ignore file to slim down the size of the docker container
- Make the check-format make task run the same CI as is run on GitHub
- Logs app commands as a background task, to hopefully speed up response times
Modules
Administration
Bot info
- Full migration to application commands
Echo
- Full migration to application commands
Fun
Animal
- Full migration to application commands
- Fixes the frog API to properly display images
Burn
- Full migration to application commands
Conch
- Full migration to application commands
Correct
- Full migration to application commands
Duck
- The default speed record is now -1
- Default speed record is now hidden from the UI in all cases
- Allow the .duck stats command to be run on a discord.User
- Changes the display of .duck stats to be a bit nicer
- Bot accounts are no longer able to participate in the duck hunt
- The caller of the .duck spawn command can no longer participate in the hunt
- Adds a new /duck next command to show admins the next duck spawn time
- Fuzzes duck spawn time to make it less predictable
Grab
- Message content is now encrypted in the database
Hangman
- /hangman start is no longer logged in discord
XKCD
- Migrates to application commands
Internal
Data delete
- New module that has a command that allows users to delete some of their own data from the bot
Privacy
- New module that adds a command to display the bots privacy policy to the user
Moderation
Events
- Complete overhaul of events logging system. A huge number of additional events are now tracked, and information is displayed in a more readable way
Logger
- Now mentions roles instead of listing text names
Moderator
- Adds autocomplete for /unwarn command
- Bans from max warnings will now show a ban in the text output
- Removes command use logging, in favor of modlog
Modlog
- Completely rewrites modlog to log all moderation actions
- Reworks the output of the all of the modlog commands
- Adds new command to lookup action by ID
Modmail
- Full migration to application commands
- The way modmail reads the configuration has changed to avoid the use of global variables
- Adds a command to send the text of a rule in a modmail thread
- Modmail was refactored to remove the usage of any privileged intents from the modmail bot itself
- Adds an edit button to messages
Nickname
- Add config option to disable nickname on message
Report
- The paramter name was changed from report_str to reason
Role
- Adds a button to cancel editing roles
Whois
- Now mentions roles in page 1, instead of listing text names
- Roles are now reveresed, to have the top role be listed first
- Will no longer display user status
Operation
Application
- Application will now display discord timestamps instead of plain text for pending application reminder loops
Factoid
- The /factoid call command now has an optional parameter to ping a member in the factoid display
- Factoids called using /factoid call will now have a button to allow the invoker to delete the factoid
- A new /factoid add command has been added, using a modal to create new factoids
- Fix restricted factoids not working in threads
Forum
- This changes the way the first message in a forum channel is obtained for initial post rejection detection
- This fixes initial detection for forums that first message have no content
Relay
- Fixes SASL login issues, so the bot logs in using SASL now
- Properly checks if the channel the relay is configured for is configured for automod now
XP
- A new /xp top command now exists, to display the top 10 XP members in the current guild
Utility
Dictionary
- New module, searches the Merriam-Webster Dictionary API for the passed word, and displays a definition
- This module was removed.
- Youtube was moved to a youtube module
Help
- Reworks the way the help command displays usage info
- Mentions applications commands in the output now
HTD
- Is more clear on what errors were caused and why
- Adds modulo as a valid operation
Search
- Now uses application commands
- Now uses the Tavily API, to replace the deprcating google CSE API
Weather
- Now uses application commands
- Has been rewritten to use the open-meteo API
- The UI has been reworked to be more information rich and better looking
Youtube
- Now uses applications commands
- Is now a seperate file, having been decouping from the google extension
Dependencies
Core
- Python -> 3.13
Prod
- Unpinned aiohttp
- Unpinned pips
- Unpinned pydantic
- Unpinned typing_extensions
- New dependency cryptograghy
Dev
- hypothesis -> 6.155.2
- pylint -> 4.0.6
- pytest -> 9.1.0
Documentation
Add detailed documentation for privileged intents usage
What's Changed
- Add a dictionary extension by @ajax146 in #1523
- This changes the default speed record to -1 and hides it from view by @ajax146 in #1522
- This reworks modmail slightly to remove the 7 global config variables by @ajax146 in #1515
- Replaces the google CSE search with Tavily by @ajax146 in #1514
- Makes a /xp top command to view the top 10 XP members in the guild by @ajax146 in #1517
- Completely overhaul the guild config system by @ajax146 in #1530
- Fix the SASL failure when logging into IRC to fix the IRC link by @ajax146 in #1529
- Make whois have mentioned roles by @ajax146 in #1528
- Add suppress_logs flag to hangman start command by @ajax146 in #1526
- Swaps the duck stats command to discord.User and changes how user is displayed by @ajax146 in #1525
- Moves XKCD to app commands by @ajax146 in #1521
- Has the application reminder use a discord timestamp instead of text by @ajax146 in #1520
- Prevent bots from interacting with ducks by @ajax146 in #1519
- Make logger mention roles to make logs more colorful by @ajax146 in #1518
- Add pinging members functionality to /factoid call by @ajax146 in #1513
- Renames the report param to reason by @ajax146 in #1512
- Bump aiohttp from 3.13.5 to 3.14.0 by @dependabot[bot] in #1508
- Add a rule command to modmail by @ajax146 in #1527
- Improves the way the first message is fetched in new forums by @ajax146 in #1516
- Adds autocomplete prompts to the unwarn command by @ajax146 in #1524
- Fix many bugs in recent changes by @ajax146 in #1531
- Restructure the file system by @ajax146 in #1532
- Categorize Extensions by @ajax146 in #1533
- Bump aiohttp from 3.14.0 to 3.14.1 by @dependabot[bot] in #1534
- Refactor help for app commands, remove extras usage/brief from app commands by @ajax146 in #1536
- Bump hypothesis from 6.155.1 to 6.155.2 by @dependabot[bot] in #1535
- Migrate modmail to app commands by @ajax146 in #1542
- Migrate animal to app commands by @ajax146 in #1541
- Migrate correct to app commands by @ajax146 in #1540
- Migrate botinfo to an app command by @ajax146 in #1539
- Migrate conch to app command by @ajax146 in #1538
- Migrate burn to an app command by @ajax146 in #1537
- Update the names of extenions to the new modules system by @ajax146 in #1543
- Fix default config for new module names by @ajax146 in #1544
- Fix a typo in the autocomplete parameter name in animal by @ajax146 in #1548
- Adds a cancel button to the role select UI by @ajax146 in #1547
- Combine n...
v2026.06.04
Forum
Fixed bug where forum mark didn't work if OP left
Fixed bug where the pre-checks sometimes didn't run on new forums
Fixed bug where users were able to close their own threads outside of the /forum mark command
Fixed bug where the /forum mark command failed to to case sensitive issues
Added new feature to auto-close threads if the initial message was deleted
Added new feature to auto-close threads if the OP has left the server
Added new /forum reopen command to reopen closed threads
Report
Added feature to ping a role on new reports
Voting
Fixed bug where vote reminders didn't work for 40 minutes every hour
Dependencies
black -> 26.5.1
hypothesis -> 6.155.1
pip -> 26.1.2
pydoclint -> 0.8.6
pytest-asyncio -> 1.4.0
What's Changed
- Fix vote remind by @ajax146 in #1495
- Fixes mark thread when OP has left server by @ajax146 in #1496
- Bump black from 26.3.1 to 26.5.1 by @dependabot[bot] in #1499
- Bump hypothesis from 6.152.7 to 6.152.9 by @dependabot[bot] in #1500
- Bump pydoclint from 0.8.3 to 0.8.4 by @dependabot[bot] in #1497
- Bump pytest-asyncio from 1.3.0 to 1.4.0 by @dependabot[bot] in #1502
- Bump hypothesis from 6.152.9 to 6.155.1 by @dependabot[bot] in #1507
- Bump pip from 26.1.1 to 26.1.2 by @dependabot[bot] in #1506
- Bump pydoclint from 0.8.4 to 0.8.6 by @dependabot[bot] in #1509
- Add the ability for report to ping people by @ajax146 in #1511
- Fix bugs and improve forum by @ajax146 in #1510
Full Changelog: v2026.05.13...v2026.06.04
v2026.05.13
Animal
Fixed typo in error message when API key is missing
Forum
Added code to support a forum channel
Moderator
Fixed typo in ban command where the default purge days was incorrect
Voting
Fixed a bug where most interations with the vote would say failed
Added a reminder system
Dependencies
Replaced pipenv/pipfile with UV/pyproject
Removed pipenv as a dependency
Removed PyNaCl as a dependency
Pinned aiohttp to 3.13.5
Pinned setuptools to 80.9.0
Dateparser -> 1.4.0
Gitpython -> 3.1.50
Pip -> 26.1.1
Hypothesis -> 6.152.7
What's Changed
- Defers vote interaction to solve bug by @ajax146 in #1469
- Fix cat API error string by @dkay0670 in #1467
- Change default delete day message for /ban command. by @dkay0670 in #1463
- Add support forum channel management by @ajax146 in #1395
- Add reminder system to voting by @ajax146 in #1486
- Make initial switch to UV by @ajax146 in #1487
- Properly add UV to dependabot by @ajax146 in #1490
- Bump dateparser from 1.2.2 to 1.4.0 by @dependabot[bot] in #1491
- Bump hypothesis from 6.152.5 to 6.152.7 by @dependabot[bot] in #1492
- Removes PyNaCl from pyproject, since we don't use voice by @ajax146 in #1494
Full Changelog: v2026.04.18...v2026.05.13
v2026.04.18
Core
Removes non-working auto push CI/CD rules
Automod
Add new rule to block messages based on hash
Duck
Fix the rate limit issue in duck killers/friends
Honeypot
Add new feature to the bot to create a honeypot channel
Logger
Fixes bug when user had a gif profile picture
Moderation
Fixes warns not working when in a thread
Nickname
Nickname now changes nicknames on message send
Rule
Rules can now have titles in addition to descriptions
Voting
The vote command now requires channel selections
Adds an abstain button to votes
Adds ability to specific an eligible role for voter participation
Allows multiple channels with multiple different role(s) to be selected
Automated pass/fail analysis on vote completion
XP
Fixes a bug with excluded channels not working
Fixes a bug with bot commands not being properly ignored
Depedencies
black -> 26.3.1
hypothesis -> 6.151.13
pip -> 26.0.1
pylint -> 4.0.5
pytest -> 9.0.3
What's Changed
- Add file hash blocking capabilities into automod by @ajax146 in #1452
- Add a honeypot feature to the bot by @ajax146 in #1453
- Bump black from 26.1.0 to 26.3.1 by @dependabot[bot] in #1444
- Bump pytest from 9.0.2 to 9.0.3 by @dependabot[bot] in #1454
- Removes the auto push PRs since they don't work with branch protection by @ajax146 in #1455
- Bump pip from 25.3 to 26.0.1 by @dependabot[bot] in #1437
- Bump pylint from 4.0.4 to 4.0.5 by @dependabot[bot] in #1441
- Bump hypothesis from 6.150.2 to 6.151.10 by @dependabot[bot] in #1447
- Fix stupid get_user_text logic in duck friends/killers by @ajax146 in #1456
- Bump pipenv from 2026.0.3 to 2026.4.0 by @dependabot[bot] in #1448
- Bump aiohttp from 3.13.3 to 3.13.4 by @dependabot[bot] in #1451
- Undo broken update by @ajax146 in #1457
- Fixes warnings being blocked in threads by @ajax146 in #1460
- Add protection to logger for gif pfp by @ajax146 in #1459
- Fixes some bugs in the XP system by @ajax146 in #1458
- Apply nickname changes on message send by @ajax146 in #1462
- Make rules have titles as well as descriptions by @ajax146 in #1461
- Major overhaul to voting by @ajax146 in #1392
Full Changelog: v2026.03.23...v2026.04.18
v2026.03.23
Core
Fix message cog for forwarded messages
Removed old and inaccurate help menu in favor of new one
Allows some slash commands to have errors be default ephemeral
Config
Fixes issue where new configs started as being invalid
Duck
Improves reliability and consistency in the user list output
Adds new config option to allow duck to appear in every channel in the category
Factoid
Improves fallback system
Crops factoid info for long factoids
Adds missing permission check on dealias
Hangman
Fixes the started by in the footer
Logger
Rewrites logger nearly completely to be more robust
Modlog
Fixes bug so that modlog actually works with larger databases
Fixes bug with moderators that have left breaking the output
Report
Adds config option to allow reports to be anonymous
XP
New module, allows XP based role assignment
Dependencies
black -> 26.1.0
dateparser -> 1.2.2
discord.py -> 2.6.4
emoji -> 2.15.0
flake8 -> 7.3.0
flake8-annotations -> 3.2.0
flake8-bugbear -> 25.11.29
gitpython -> 3.1.46
hypothesis -> 6.150.2
isort -> 7.0.0
typing_extensions -> 4.15.0
pip -> 25.3
pipenv -> 2026.0.3
pydantic -> 2.12.5
pydoclint -> 0.8.3
pylint -> 4.0.4
pynacl -> 1.6.2
pytest -> 9.0.2
pytest-asyncio -> 1.3.0
pyyaml -> 6.0.3
What's Changed
- Bump discord.py to version 2.6.4 by @ajax146 in #1387
- Bump pytest-asyncio from 1.0.0 to 1.1.1 by @dependabot[bot] in #1378
- Bump hypothesis from 6.135.13 to 6.142.1 by @dependabot[bot] in #1396
- Bump flake8 from 7.2.0 to 7.3.0 by @dependabot[bot] in #1357
- Bump black from 25.1.0 to 25.9.0 by @dependabot[bot] in #1400
- Bump pipenv from 2025.0.3 to 2025.0.4 by @dependabot[bot] in #1362
- Bump pip from 25.1.1 to 25.3 by @dependabot[bot] in #1402
- Bump flake8-annotations from 3.1.1 to 3.2.0 by @dependabot[bot] in #1399
- Bump pylint from 3.3.7 to 4.0.2 by @dependabot[bot] in #1398
- Fixes multiple bugs in the modlog highscore feature by @ajax146 in #1388
- Bump isort from 6.0.1 to 7.0.0 by @dependabot[bot] in #1403
- Bump flake8-bugbear from 24.12.12 to 25.10.21 by @dependabot[bot] in #1404
- Bump pydoclint from 0.6.6 to 0.7.5 by @dependabot[bot] in #1408
- Fixes the hangman started by footer by @ajax146 in #1389
- Update everything by @ajax146 in #1420
- Fixes bug where new configs are invalid by @ajax146 in #1335
- Override message content in match cog for forwarded messages by @ajax146 in #1319
- Improves the get_user_text function to fetch user and member by @ajax146 in #1324
- Does better factoid fallback management for failed embed by @ajax146 in #1323
- Crops factoid info to prevent long factoids from erroring by @ajax146 in #1390
- Fix missing perm check on dealias command by @ajax146 in #1421
- Adds a new option to make the ducks appear anywhere in the category by @ajax146 in #1385
- De classes logger. Sets up framework to allow bot messages to be passed to logger by @ajax146 in #1304
- Bump hypothesis from 6.148.12 to 6.148.13 by @dependabot[bot] in #1423
- Remove the old help menu by @ajax146 in #1424
- Add support for making errors ephemeral for certain slash commands by @ajax146 in #1317
- Adds a configurable XP/level up system to TS by @ajax146 in #1386
- Make reporting able to be anonymous by @ajax146 in #1425
- Bump virtualenv from 20.35.4 to 20.36.1 by @dependabot[bot] in #1428
- Bump black from 25.12.0 to 26.1.0 by @dependabot[bot] in #1430
- Bump hypothesis from 6.148.13 to 6.150.2 by @dependabot[bot] in #1431
Full Changelog: v2025.06.20...v2026.03.23
v2025.06.20
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
- Fix typo in interaction check by @ajax146 in #1221
- Update discord.py to version 2.5 by @ajax146 in #1222
- Bump hypothesis from 6.122.4 to 6.131.7 by @dependabot in #1265
- Bump pytest-asyncio from 0.25.0 to 0.26.0 by @dependabot in #1250
- Truly kill factoid all prefix command by @ajax146 in #1224
- Bump pytest from 8.3.2 to 8.3.5 by @dependabot in #1235
- Bump flake8-bugbear from 24.8.19 to 24.12.12 by @dependabot in #1269
- Replaces the PC joke config with a better filter by @Lunaberries in #1266
- Improves the output format of factoid search, and speeds it up a little by @ajax146 in #1200
- Makes role self more dynamic by @ajax146 in #1199
- Bump pylint from 3.2.6 to 3.3.6 by @dependabot in #1247
- Make duck random better by @ajax146 in #1189
- Rename factoid json file by @ajax146 in #1270
- Updating hangman to fix all the issues by @TheKrol in #1207
- Bump gitpython from 3.1.43 to 3.1.44 by @dependabot in #1226
- Bump pip from 24.3.1 to 25.0.1 by @dependabot in #1271
- Bump isort from 5.13.2 to 6.0.1 by @dependabot in #1272
- Bump pydantic from 2.8.2 to 2.9.2 by @dependabot in #1149
- Bump emoji from 2.12.1 to 2.14.1 by @dependabot in #1274
- Bump pipenv from 2024.4.1 to 2025.0.1 by @dependabot in #1273
- Bump pydoclint from 0.5.6 to 0.6.6 by @dependabot in #1262
- Bump flake8 from 7.1.1 to 7.2.0 by @dependabot in #1275
- Bump unidecode from 1.3.8 to 1.4.0 by @dependabot in #1276
- Bump hypothesis from 6.131.8 to 6.131.9 by @dependabot in #1278
- Bump pip from 25.0.1 to 25.1 by @dependabot in #1280
- Ducks don't timeout anymore by @Cpt-Dingus in #1141
- Updates the IRC authentication method to no longer need ib3 by @ajax146 in #1282
- Bump inflect from 7.3.1 to 7.5.0 by @dependabot in #1279
- make config.yml path configurable in .env file by @dkay0670 in #1294
- Removes useless print statement in HTD by @ajax146 in #1291
- Make the DEBUG .env option default at 0 by @ajax146 in #1301
- Changed behavior of
.burncommand. by @Koei32 in #1298 - Fix typo in logging warning in logger by @ajax146 in #1292
- Add /factoid call command by @ajax146 in #1290
- Add modmail bans command to list modmail bans by @dkay0670 in #1286
- Bump aiocron from 1.8 to 2.1 by @dependabot in #1268
- Add override owner config and try catch to log DM by @ajax146 in #1220
- Bump dateparser from 1.2.0 to 1.2.1 by @dependabot in #1267
- concatenation of all prior CI and addition of dependabot close steps … by @PipeItToDevNull in #1075
- Make startup time dynamic timestamp by @dkay0670 in #1305
- Fix modmail alias command when no aliases defined by @dkay0670 in #1287
- Add more friendly error when corrected message is too long by @dkay0670 in #886
- Auto reject applications after 30 days by @ajax146 in #1281
- Make CI only run on PRs with the run-ci label by @ajax146 in #1306
- Bump pip from 25.1 to 25.1.1 by @dependabot in #1308
- Bump pipenv from 2025.0.1 to 2025.0.2 by @dependabot in #1307
- Refactors hello, removes worthless unit tests by @ajax146 in #1300
- Merge all formatting and testing CI into one by @ajax146 in #1312
- Refactor all moderation features, auto mod and notes. Add reports and modlog. by @ajax146 in https://github.com/r-Techsupport/TechSup...
v2025.02.18
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
- Bump flake8 from 7.1.0 to 7.1.1 by @dependabot in #1118
- Bump black from 24.4.2 to 24.8.0 by @dependabot in #1119
- Bump hypothesis from 6.108.3 to 6.111.1 by @dependabot in #1131
- Bump flake8-bugbear from 24.4.26 to 24.8.19 by @dependabot in #1134
- Bump pip from 24.1.2 to 24.3.1 by @dependabot in #1166
- Update hug.py by @TheKrol in #1173
- Bump hypothesis from 6.111.1 to 6.122.4 by @dependabot in #1195
- Fixes the .factoid all command so it no longer shows hidden factoids by @ajax146 in #1106
- Bump pytest-asyncio from 0.23.8 to 0.25.0 by @dependabot in #1194
- Bump flake8-docstrings-complete from 1.3.0 to 1.4.1 by @dependabot in #1192
- Update modmail aliases command by @dkay0670 in #1217
- Bump black from 24.8.0 to 25.1.0 by @dependabot in #1214
- Replace Icon Icons by @ajax146 in #1218
- Fix a typo in application by @ajax146 in #1197
- Sunset factoid all by @ajax146 in #1196
- Bump pipenv from 2024.0.1 to 2024.4.1 by @dependabot in #1213
- Bump aiohttp from 3.9.5 to 3.10.11 by @dependabot in #1177
Full Changelog: v2024.08.19...v2025.02.18
v2024.08.19
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
- Bump hypothesis from 6.105.0 to 6.108.3 by @dependabot in #1092
- Makes description optional on github by @ajax146 in #1091
- Adds more details to factoid search by @ajax146 in #1089
- Allows factoid prefix longer than 1 character by @ajax146 in #1087
- Add application changes to the management channel by @ajax146 in #1086
- Adds /extension list_disabled to list all disabled extensions by @ajax146 in #1085
- Add automatic rejections to modmail to block threads from being created by @ajax146 in #1084
- Adds a backup command by @ajax146 in #1088
- Bump pytest from 8.2.2 to 8.3.1 by @dependabot in #1100
- Bump emoji from 2.11.1 to 2.12.1 by @dependabot in #1013
- Bump pip from 24.1.1 to 24.1.2 by @dependabot in #1073
- Bump certifi from 2024.6.2 to 2024.7.4 by @dependabot in #1071
- Bump pydantic from 2.7.0 to 2.8.2 by @dependabot in #1068
- Bump bidict from 0.22.1 to 0.23.1 by @dependabot in #890
- Bump pylint from 3.1.0 to 3.2.6 by @dependabot in #1093
- Bump pydoclint from 0.4.1 to 0.5.6 by @dependabot in #1082
- Bump pytest-asyncio from 0.23.7 to 0.23.8 by @dependabot in #1114
- Bump pytest from 8.3.1 to 8.3.2 by @dependabot in #1113
- Fixes the role menu not timing out properly by @ajax146 in #1130
Full Changelog: v2024.07.06...v2024.08.19
v2024.07.06
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
- Adds proper type hints to every argument in every function, and every return value by @ajax146 in #967
- Bump hypothesis from 6.100.2 to 6.103.0 by @dependabot in #1018
- Bump pytest from 8.2.0 to 8.2.1 by @dependabot in #1010
- Bump pytest-asyncio from 0.23.6 to 0.23.7 by @dependabot in #1011
- Bump pipenv from 2023.12.1 to 2024.0.1 by @dependabot in #1033
- Update every doc string to describe what the function or class does with numpy standards by @ajax146 in #1003
- Add flake8 and some plugins by @ajax146 in #945
- Add old workflows back by @ajax146 in #1044
- Reupload failed is now a warning not an info by @ajax146 in #1042
- Times on misses on ducks now by @ajax146 in #1041
- Removes content was unchanged from modmail by @ajax146 in #1040
- Improve error message by @ajax146 in #1039
- Disable embeds config, fix restricted loops by @ajax146 in #1038
- Add a try/except to application fetch member by @ajax146 in #1037
- Bump hypothesis from 6.103.0 to 6.103.1 by @dependabot in #1029
- Bump pytest from 8.2.1 to 8.2.2 by @dependabot in #1028
- Bump hypothesis from 6.103.1 to 6.103.2 by @dependabot in #1050
- Bump flake8 from 7.0.0 to 7.1.0 by @dependabot in #1049
- Bump flake8-annotations from 3.0.1 to 3.1.1 by @dependabot in #1048
- Bump flake8-bugbear from 24.2.6 to 24.4.26 by @dependabot in #1047
- Bump Discord.py to version 2.4.0 by @ajax146 in #1055
- Bump hypothesis from 6.103.2 to 6.104.0 by @dependabot in #1056
- Bump pip from 24.0 to 24.1 by @dependabot in #1051
- Adds a /voting command with the ability to do blind or anonymous voting by @ajax146 in #1035
- Fix grabs random nsfw check by @ajax146 in #1045
- Bump hypothesis from 6.104.0 to 6.105.0 by @dependabot in #1070
- Bump inflect from 7.2.1 to 7.3.1 by @dependabot in #1066
- Bump pip from 24.1 to 24.1.1 by @dependabot in #1062
- Moves functions around in htd.py, makes unit tests better by @ajax146 in #1058
- Make winerror paginated by @TheKrol in #1015
- Raise ValueError on empty message by @ajax146 in #1046
- Make factoid all into a slash command by @ajax146 in #1036
Full Changelog: v2024.04.30...v2024.07.06
v2024.04.30
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
- Makes modmail fetch channels properly and be able to ping roles by @Cpt-Dingus in #936
- Add return so that role command doesn't error on failed permission check by @ajax146 in #941
- Bump black from 24.3.0 to 24.4.0 by @dependabot in #943
- Condense animal into 1 cog by @ajax146 in #942
- Fix all flake8 ANN202 issues by @ajax146 in #953
- Fix all flake8 DOC405 issues by @ajax146 in #952
- Fix all flake8 ANN205 issues by @ajax146 in #951
- Fix all flake8 B008 issues by @ajax146 in #950
- Fix all flake8 DCO021 issues by @ajax146 in #949
- Fix all flake8 DCO051 issues by @ajax146 in #947
- Fix all flake8 DOC104 issues by @ajax146 in #946
- Creates a universal DM logging function by @ajax146 in #940
- Sorts help menu case insensitive, reworks modmail help by @ajax146 in #939
- Fix all flake8 DCO031 issues by @ajax146 in #948
- Fix all flake8 DOC105 issues by @ajax146 in #957
- Fix all flake8 DCO024 issues by @ajax146 in #956
- Fix all flake8 DOC110 issues by @ajax146 in #955
- Fix all flake8 E713 issues by @ajax146 in #954
- Fix first 100 flake8 ANN201 issues by @ajax146 in #960
- Fix all flake8 DOC102 issues by @ajax146 in #959
- Fix all flake8 ANN003 issues by @ajax146 in #958
- Fix first 49 flake8 DCO020 issues by @ajax146 in #961
- Fix many small warnings in flake8 by @ajax146 in #962
- Bump pytest from 8.1.1 to 8.2.0 by @dependabot in #988
- Bump hypothesis from 6.100.1 to 6.100.2 by @dependabot in #987
- Bump black from 24.4.0 to 24.4.2 by @dependabot in #976
- Make note_readers config by @ajax146 in #981
- Swap get_member to fetch_member in application so no members are missed by @ajax146 in #979
- Bump inflect from 7.2.0 to 7.2.1 by @dependabot in #973
- Move warn to use permissions for to hopefully be more accurate by @TheKrol in #968
- Bump emoji from 2.11.0 to 2.11.1 by @dependabot in #970
- Moves the modmail config check to setup by @ajax146 in #980
- Bump aiohttp from 3.9.2 to 3.9.4 by @dependabot in #966
Full Changelog: v2024.04.13...v2024.04.30