aboutsummaryrefslogtreecommitdiffstats
path: root/bot/help.py (unfollow)
Commit message (Collapse)AuthorLines
2020-03-15Deseasonify: relax type annotationGravatar kwzrd-1/+1
Asyncio's sleep will accept both, and we default to an int, so might as well not break our own promise.
2020-03-15Deseasonify: remove fragile attr dependency in `seasonal_task`Gravatar kwzrd-6/+5
Importing the bot instance will allow us to safely access the `wait_until_ready` method without having to make fragile assumptions about the arguments passed to the decorated method. Although still not perfect, this feels a lot cleaner and safer than the previous approach.
2020-03-15Deseasonify: move the branding module from seasons to bot directoryGravatar kwzrd-0/+0
It makes more sense for it to be positioned alongside other core bot features.
2020-03-15Deseasonify: apply seasonal task mechanism to tasks as appropriateGravatar kwzrd-21/+6
2020-03-15Deseasonify: add convenience decorator for seasonal tasksGravatar kwzrd-0/+39
See docstring for implementation details.
2020-03-15Deseasonify: season-lock listeners where appropriateGravatar kwzrd-1/+8
We want to prevent listeners from performing season-specific behaviour outside of specific months.
2020-03-15Deseasonify: add listener decorator for season lockingGravatar kwzrd-0/+22
A guarded listener will abort if the triggering event happens outside of `allowed_months`. This provides a convenient way of season-locking listeners without having to write guards directly within their bodies.
2020-03-15Deseasonify: improve `in_month` command checkGravatar kwzrd-4/+15
Raise a custom exception if the command fails. This is then handled in the error handler, and the user will be informed of which months allow the invoked command.
2020-03-15Deseasonify: lock branding commands to moderation rolesGravatar kwzrd-1/+3
2020-03-15Deseasonify: use more descriptive name for `Record` namedtupleGravatar kwzrd-15/+15
2020-03-14Deseasonify: improve logic in `set` commandGravatar kwzrd-14/+15
Prevent re-applying branding if the user requests an already active season. This saves us an expensive operation. Only trigger typing if season switch was successful and `apply` will be called, as otherwise the bot will respond immediately.