| Commit message (Collapse) | Author | Lines |
|
|
|
Generic request dispatch method to avoid code duplication with error
handling & bad status logging.
|
|
Suppress errors coming from Discord when changing the confirmation
message in case it gets deleted, or something else goes wrong.
This commit also adds either the ok hand or the warning emoji to
the edited message content, as with the guild syncer confirmation.
Co-authored-by: MarkKoz <[email protected]>
|
|
Co-authored-by: MarkKoz <[email protected]>
|
|
Co-authored-by: MarkKoz <[email protected]>
|
|
Co-authored-by: MarkKoz <[email protected]>
|
|
This just reads better.
Co-authored-by: MarkKoz <[email protected]>
|
|
In an edge case, the `_kick_members` and `_give_role` could act on
a member who has verified *after* being marked by `_check_members`
as unverified.
To address this, we perform one additional check just before sending
the request. Testing seems to indicate that the `discord.Member`
instance get updates as appropriate, so this should at least reduce
the chances of such a race happening to very close to nil.
|
|
|
|
If tasks are stopped manually, they will not automatically restart
on cog reload or bot restart.
Using `maybe_start_tasks` is necessary because we cannot interface
with Redis from a sync context.
We're using 1 and 0 because RedisCache does not currently permit
bool values due to a typestring conversion bug.
|
|
Allow checking whether tasks are running, starting them, and stopping
them.
Currently, the tasks cannot be started or stopped separately. It is not
believed that we would need such a level of granularity.
Calling `cancel` on a task that isn't running is a no-op.
|
|
It was released on PyPI. No longer need to clone via git.
|
|
|
|
It now explains that new users can only see a limited amount of public
channels, and that there will be more once they verify.
Co-authored-by: Sebastiaan Zeeff <[email protected]>
|
|
|
|
|
|
|
|
We will begin pinging users in the verification channel, prompting
them to join. This can cause a surge of activity that may trigger
the filter.
A better solution would involve allowing per-filter channel config,
but after internal discussion this is seen as unnecessary for now.
|
|
|
|
|
|
|
|
This reverts commit 59c62162
|
|
If a RedisCache instance was being accessed before bot has created
the `redis_cache` instance, the `_redis` alias was being set to
None, causing AttributeErrors in lookups.
See: #1090
|
|
|
|
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.
|
|
Using the channel's category isn't reliable since it may take Discord a
while to actually move the channel once it's received a request from the
bot. I suppose using redis technically has the same problem, but it
should be much faster and less susceptible to lag than Discord.
Fixes #1074
|
|
The code is identical to the else block and there's no reason for
help commands to have an explicit check.
|
|
Commands, cogs, etc. created via internal eval won't have a source file
associated with them, making source retrieval impossible.
Fixes #1083
Fixes BOT-7K
|
|
When cogs reload, they used new Scheduler instances, which aren't aware
of previously scheduled tasks. This led to duplicate scheduled tasks
when cogs re-scheduled tasks upon initialisation.
Fixes #1080
Fixes BOT-7H
|
|
|
|
|
|
|
|
|
|
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.
|
|
|
|
This reverts commit be14db91b1c70993773e67cfa663fef0cfa85666.
|
|
This will allow mods to use '!whitelist get guild_invites'
in addition to '!whitelist get guild_invite'
This is just a naive implementation which works if the plural
form is a simple s at the end of the word. It's implemented
into the converter.
|
|
Previously, this would not provide any feedback at all, which is really
terrible UX. Sorry about that.
This also adds error handling in case the API call fails.
|
|
|