aboutsummaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeLines
...
* Cogs.reload now has more readable error info.Gravatar Leon Sandøy2019-09-14-7/+7
| | | | | | | | When you run '!cogs reload *', the load failures will now include the Exception type, and has overall more readable formatting. Similarly, trying to do '!cogs load <some cog>' on a broken cog will show the Exception type as well.
* Oops, forgot to remove DEVOPS role alias, that would crash the bot.Gravatar Leon Sandøy2019-09-14-1/+0
|
* Merge branch 'django' of github.com:python-discord/bot into djangoGravatar Leon Sandøy2019-09-14-24/+50
|\
| * Deal with multiple active infractions in databaseGravatar Sebastiaan Zeeff2019-09-14-24/+50
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | While there are measures to prevent duplicate active infractions at the side of the bot, there's no formal restriction at the sid of the database. This means that it's possible for a user two get two active ban infractions or two active mute infractions at the same time, for instance after a manual table edit in Admin. This leads to an inconsistent state when unmuting/unbanning that user, as the ban or mute role will be removed on Discord, but only one of the entries in the database would be set to inactive, while the other(s) remain active. This means that an unmuted user will be remuted if they leave and rejoin the Guild. To handle this, I've inserted code that sets all the infractions to inactive and cancels all related infraction tasks (in the case of temporary infractions) when issuing an unban or unmute command. A note will be added to the mod_log embed to notify us as well.
* | Nuking Roles.devops and the Deployment cog.Gravatar Leon Sandøy2019-09-14-98/+7
|/ | | | | | | | | | The Deployment cog does not work in our new server environment, nor are we particularly inclined to make it work (for security reasons). For this reason, I've removed it. I've also removed all usages of Roles.devops, replacing them with Roles.core_developer whenever this made sense to do, such as in the Cogs cog.
* Fixes all URLs in the Site cog.Gravatar Leon Sandøy2019-09-14-6/+6
| | | | | This changes URLs for stuff like FAQ, rules, and the Asking Good Questions page to fit the Django format.
* Don't allow tag invocations in #checkpoint.Gravatar Leon Sandøy2019-09-14-6/+7
| | | | | | There was a bug which would permit tag invocations here, because these were triggered by an error handler on CommandNotFound. This commit prevents that from being possible.
* Allow multiple words for !otn aGravatar kosayoda2019-09-14-4/+8
|
* Add more_itertools as a dependencyGravatar kosayoda2019-09-14-21/+31
|
* Merge branch 'django' of github.com:python-discord/bot into djangoGravatar Leon Sandøy2019-09-14-10/+31
|\
| * Merge branch 'django' of github.com:python-discord/bot into djangoGravatar kosayoda2019-09-14-8/+18
| |\
| | * Make ResponseErrorCode handle non-JSON responseGravatar Sebastiaan Zeeff2019-09-14-6/+18
| | | | | | | | | | | | | | | | | | | | | | | | | | | The previous commit assumed the API respone to always be JSON. This leads to issues when that is not the case, such as when the API is completely unreachable (text/html 404 response). Updated the ResponseErrorCode exception to account for that and updated the moderation util `post_infraction` to reflect that.
| * | Remove duplicate members passed into team creation commandGravatar kosayoda2019-09-14-0/+3
| | |
| * | Add more information to team creation messagesGravatar kosayoda2019-09-14-4/+10
| | |
* | | Nuking the Roles.developer role.Gravatar Leon Sandøy2019-09-14-4/+2
| |/ |/| | | | | | | | | | | We're not really using this, we're using Roles.verified. This provides superiour readability, and there's no reason we should use two instead of just one. I also added a comment to clarify that this role represents the Developers role on pydis.
* | We now also detect bot tokens outside quotes.Gravatar Leon Sandøy2019-09-14-2/+0
|/ | | | | | | Previously, the regex to detect tokens would only trigger on messages where the token was inside of single or double quotes. This commit changes this so that we look for bot tokens regardless of context.
* Adds a !nominees alias.Gravatar Leon Sandøy2019-09-14-0/+8
| | | | | This invokes the `!nomination list` command, showing all currently nominated users.
* Improvements to the Wolfram cog.Gravatar Leon Sandøy2019-09-14-7/+27
| | | | | | | | | | | This commit adds clearer error messages for all the errors produced by the Wolfram cog if the API key is missing in the config, or if the key isn't valid anymore. It also humanizes the timedelta returned in the error users get when they run out their cooldown. Instead of telling them they need to wait 84000 seconds, it will now tell them they need to wait 23 hours, 59 minutes ...
* Make 'post_infraction' catch the right exceptionGravatar Sebastiaan Zeeff2019-09-14-11/+17
| | | | | | | | The internal 'api' of our API client has changed: It raises a custom RespondeCodeError instead of an `aiohttp.ClientError` when an API was not successful. I updated this utility function to catch the right exception and added handling for unknown users by notifying the user of that problem directly.
* Add API response dict to ResponseCodeErrorGravatar Sebastiaan Zeeff2019-09-14-8/+14
| | | | | | | | | | | | | | The ReponseCodeError held a reference to `aiohttp.ResonseObject` to make sure the response data was available. However, the response data is not actually included in the Response Object, but needs to be awaited. Unfortunately, the ResponseCodeError is usually inspected after the connection has been closed, triggering a ClientConnectionError when the data was retrieved. I solved this by adding the awaited reponse data directly to our custom exception by awaiting the response.json() before raising the exception.
* Add error handlers for more command exceptionsGravatar MarkKoz2019-09-13-5/+10
| | | | | | | | MissingPermissions, CheckFailure, DisabledCommand, and CommandOnCooldown will now have a simple message logged. * Log BotMissingPermissions and remove sending missing permissions as a message
* Fix one-off error in the !clean commandGravatar Sebastiaan Zeeff2019-09-13-1/+2
| | | | | | | | | | | https://github.com/python-discord/bot/issues/413 The message indexing phase of the `!clean` did not account for the presence of the invocation message, resulting in a one-off error in the amount of messages being indexed. Fixed it by adding one to the amount of messages we index from the message history. Closes #413
* Fix bugs and inconsistencies in moderation cogGravatar Sebastiaan Zeeff2019-09-13-154/+149
| | | | | | | | | | | | | | | | Recent changes and updates to the moderation cog introduced some inconsistencies that were causing bugs or differences in behavior between very similar commands. I've remedied the problems by: - Consistently making sure we stop if a post_infraction API call fails; - Factoring out the check for active infractions to a utility function; - Updating commands that expected a pre-migration API response format. In addition, I've also added function annotations.
* Update bot cog with recent changes.Gravatar Sebastiaan Zeeff2019-09-12-2/+4
| | | | | | | | The bot cog was not updated with recent changes to our community, so I've: - Updated the links in the about embed to GitHub; - Added help-6 and help-7 to the codeblock detection.
* Add help-6 and help-7 to constantsGravatar Sebastiaan Zeeff2019-09-12-0/+4
| | | | | | We never added channel IDs for the new help channels to the constants after adding them, so I'm adding them in.
* Fix AntiSpam incorrectly invoking tempmute.Gravatar Sebastiaan Zeeff2019-09-12-2/+5
| | | | | | | | | | | https://github.com/python-discord/bot/issues/400 The AntiSpam punish method incorrectly invoked the tempmute command, as it provided an unconverted duration argument. Since direct invocation of commands bypasses converters, the conversion of the duration string to a datetime object is now done manually. Closes #400
* Fixed incorrect API request field in superstarifyGravatar Sebastiaan Zeeff2019-09-12-1/+1
| | | | | | | | | | https://github.com/python-discord/bot/issues/409 The superstarify cog specified an incorrect infraction type in the API request in the on_member_join event listener. I've fixed it by giving it the correct infraction type, 'superstar'. closes #409
* Fixed AntiSpam cog reload bugGravatar Sebastiaan Zeeff2019-09-12-6/+3
| | | | | | | | | | | | https://github.com/python-discord/bot/issues/411 The AntiSpam code suffered from a bug where the attribute self.muted_role was not defined after reloading the cog. The bug was caused by the cog setting the attribute in on_ready instead of directly in __init__. Fixed by setting the attribute in the __init__. Closes #411
* Merge pull request #402 from python-discord/update-contribGravatar Chris Goes2019-09-03-155/+157
|\ | | | | Update contrib doc for allowing edits from maintainers
| * Remove pydocstyle pinning now that flake8-docstrings is fixedGravatar sco12019-09-03-145/+146
| |
| * Use pipenv lint script for pre-commit hookGravatar S. Co12019-09-03-10/+8
| |
| * Update contrib doc for allowing edits from maintainersGravatar S. Co12019-09-03-0/+3
|/
* Merge pull request #399 from python-discord/django-updating-bot-logs-urlGravatar Leon Sandøy2019-08-28-1/+2
|\ | | | | Updating the deleted message front-end URL to the staff subdomain
| * Changing deleted messages log to point at staff-subdomainGravatar Sebastiaan Zeeff2019-08-23-1/+2
| |
* | Do not send log messages below DEBUG to the site.Gravatar Johannes Christ2019-08-26-6/+14
|/
* Merge pull request #397 from python-discord/django-role-api-changesGravatar Leon Sandøy2019-08-23-77/+143
|\ | | | | Django role api changes
| * Changing logging interpolation style to f-stringsGravatar Sebastiaan Zeeff2019-08-23-4/+3
| |
| * Incorporating Mark's feedback on return annotationsGravatar Sebastiaan Zeeff2019-08-16-11/+15
| |
| * Kaizen: Change all string concats to f-stringsGravatar Sebastiaan Zeeff2019-08-16-7/+7
| |
| * Adding missing function annotationsGravatar Sebastiaan Zeeff2019-08-16-14/+14
| |
| * Updating role sync tests for position and adding tests for deletion detectionGravatar Sebastiaan Zeeff2019-08-15-21/+60
| |
| * Adding support for storing role positions and deleting rolesGravatar Sebastiaan Zeeff2019-08-15-27/+51
|/
* Merge pull request #395 from kosayoda/no_fun_allowedGravatar Chris Goes2019-08-14-54/+0
|\ | | | | Remove fun cog
| * Remove fun cogGravatar kosayoda2019-08-14-54/+0
| |
* | Merge pull request #396 from python-discord/logging-handlerGravatar Johannes Christ2019-08-14-2/+80
|\ \ | | | | | | Write logs into the site
| * | Add a site logging handler.Gravatar Johannes Christ2019-08-14-2/+80
|/ /
* | Merge pull request #392 from python-discord/django-readd-eventsGravatar Mark2019-08-05-20/+125
|\ \ | | | | | | Re-add command error event handler
| * | Blame Mark.Gravatar Johannes Christ2019-08-05-1/+1
| | |
| * | Be more helpful.Gravatar Johannes Christ2019-08-05-0/+1
| | |
| * | Fix typo in bot/cogs/error_handler.py. Gravatar Johannes Christ2019-08-05-1/+1
| | | | | | | | | | | | | | | Originally authored by @MarkKoz. Co-Authored-By: Mark <[email protected]>