diff options
author | 2019-12-04 14:59:18 +0100 | |
---|---|---|
committer | 2019-12-04 14:59:18 +0100 | |
commit | 00a421f193041b8fda30d2123cefb24219ec6b67 (patch) | |
tree | 7d5441e882463cabcab7601d787c22751afdce9e /bot/constants.py | |
parent | Merge pull request #305 from python-discord/exclude-draft-prs (diff) |
Add context manager to safely unlock role mentionability
Currently, our regualar roles are not mentionable by default. This
means that features that rely on roles to keep track of users that
want to receive announcements, like the AoC Day Countdown, don't
actually ping the users subscribed to it. The solution is obviously
that the bot should unlock prior to making the announcement.
However, this is complicated by the fact that there needs to be a
sufficient delay. both between unlocking and sending the message
and between sending the message and locking the role again. If not,
Discord's not done synchronizing across all servers and some users
won't receive a ping.
To make this easier, I have implemented a context manager that takes
an instance of `discord.Role` and an optional `delay` (default: 5s)
that yields a context in which the role is unlocked. This context
manager also makes sure that the role is locked even if an exception
occured within the unlocked context.
Diffstat (limited to 'bot/constants.py')
0 files changed, 0 insertions, 0 deletions