| Commit message (Collapse) | Author | Age | Lines |
| ... | |
| | | | |
|
| | | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
We're making good use of d.py's tasks framework. RedisCache is used to
persist the reminder message ids, which can conveniently be converted
into timestamps.
It is therefore trivial to determine the time to sleep before the first
ping. After that, the bot simply pings every n hours.
|
| | | | |
|
| | | | |
|
| | | | |
|
| | | | |
|
| | | |
| | |
| | |
| | | |
Allows referencing the constants within the message bodies.
|
| | | | |
|
| | | |
| | |
| | |
| | |
| | |
| | | |
Turns out that it's necessary to cancel the task manually. Otherwise,
duplicate tasks can be running concurrently should the extension
be reloaded.
|
| | | |
| | |
| | |
| | | |
Cog is getting large so let's allow collapsing related bits.
|
| | | | |
|
| | | |
| | |
| | |
| | |
| | |
| | |
| | | |
Let's only use this function to check on the guild status. It can be
exposed via a command in the future.
Name adjusted to be more accurate w.r.t. Discord terminology.
|
| | | |
| | |
| | |
| | | |
This will be used to guard the call to `_kick_members`.
|
| | | | |
|
| | | | |
|
| | | |
| | |
| | |
| | |
| | | |
See docstring for details. The coroutine will be registered as a task
at a later point.
|
| | | | |
|
| | | |
| | |
| | |
| | |
| | | |
Let's access these via the qualified name. The amount of imported names
was starting to get unwieldy.
|
| | | | |
|
| | | | |
|
| | | |
| | |
| | |
| | |
| | |
| | | |
Let's give it a better name so that it's clear when this message is
sent. The initial words are adjusted to avoid repetition after the
on join message.
|
| |/ /
| |
| |
| |
| | |
This message will be sent via direct message to each user who joins
the guild.
|
| | |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
This adds a little bit of logic to the Help Channel `init_available`
coroutine, which runs when the cog loads. This ensures that if there are
more help channels in available than there should be, we remove the
superfluos ones.
Previously, if the bot started with too many channels, it would maintain
and defend that excessive amount. This is because we never actually
count the number of channels before adding in new available channels
whenever one disappears.
If we ever get too many available channels in the future, this can be
solved by simply reloading this cog.
|
| |\ \
| | |
| | | |
Change regex so it catches new discord URL
|
| | | |
| | |
| | |
| | | |
requested by lemon
|
| | | | |
|
| | | | |
|
| |/ / |
|
| |\ \
| | |
| | | |
Fix channel moving incase `message.pin` fails
|
| |/ / |
|
| |\ \
| | |
| | | |
Don't ping everyone in #mod-alerts when tripping filter via DMs.
|
| |/ /
| |
| |
| |
| |
| |
| |
| |
| | |
We don't need a ping in #mod-alerts whenever someone is tripping a
filter (like invites or bad language) in a DM to the bot. We can still
send an embed, so that we can action it, but there is no urgent need to
respond if it's just a direct message to the bot.
This is particularly true now that we have #dm-log.
|
| |\ \
| | |
| | | |
Help System: Implement question message pinning
|
| | |\ \
| |/ /
|/| | |
|
| |\ \ \ |
|
| | | | | |
|
| |/ / / |
|
| | | | |
|
| | | |
| | |
| | |
| | | |
I've updated the IDs of the two Code Jam Roles to the
newly create roles we have.
|
| | | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Python joins two string adjacent string literals implicitly, which may
cause unintended side effects when used with certain string methods.
>>> 'A' ' '.join(['1', '2', '3'])
'1A 2A 3'
|
| |\ \ \
| | | |
| | | | |
Check that embed desc is not Empty before stripping.
|
| | |\ \ \
| |/ / /
|/| | | |
|
| | | | | |
|
| |\ \ \ \
| | | | |
| | | | | |
Truncate charinfo results
|
| | |\ \ \ \
| |/ / / /
|/| | | | |
|
| |\ \ \ \ \
| | | | | |
| | | | | | |
Support multiple categories for code jam team creation
|
| | | | | | |
| | | | | |
| | | | | |
| | | | | | |
It's clearer to write MAX_CHANNELS - 2 than a literal 48.
|
| | | | | | | |
|
| | | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
The test has to account for not only the name not matching, but also
a lack of available spaces for new channels.
|
| | | | | | | |
|