| Commit message (Collapse) | Author | Age | Lines |
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
When we're using the !reply command, using a regular UserConverter is
somewhat problematic. For example, if I wanted to send the message
"lemon loves you", then I'd try to write `!reply lemon loves you` -
however, the optional User converter would then try to convert `lemon`
into a User, which it would successfully do since there's like 60 lemons
on our server.
As a result, the message "loves you" would be sent to a user called
lemon.. god knows which one.
To solve this bit of ambiguity, I introduce a new converter which only
converts user mentions or user IDs into User, not strings that may be
intended as part of the message you are sending.
https://github.com/python-discord/bot/issues/1041
|
| |
|
| |
Co-authored-by: Sebastiaan Zeeff <[email protected]>
|
| |
|
|
| |
https://github.com/python-discord/bot/issues/1041
|
| |
|
|
|
|
|
| |
Without this, it is difficult to know precisely who the user that is
DMing us is, which might be useful to us.
https://github.com/python-discord/bot/issues/1041
|
| |
|
|
| |
This reverts commit 042f472a
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
If you're typing up a reply and the bot gets another DM while you're
typing, you might accidentally send your reply to the wrong person.
This could happen even if you're very attentive, because it might be a
matter of milliseconds. The complexity to prevent this isn't worth the
convenience of the feature, and it's nice to get rid of the caching as
well, so I've decided to just make .reply require a user for every
reply.
https://github.com/python-discord/bot/issues/1041
|
| |\ |
|
| | |\
| | |
| | |
| | |
| | | |
python-discord/1038_allow_role_mentions_in_specific_areas
Allow role mentions in specific areas
|
| | | |\
| | |/
| |/| |
|
| | | |
| | |
| | |
| | |
| | |
| | |
| | | |
It was attempting to schedule a dictionary instead of a coroutine.
Fixes #1043
Fixes BOT-6Y
|
| | |\ \
| | | |
| | | | |
Scheduler Redesign
|
| | | |\ \
| | |/ /
| |/| | |
|
| | | | | |
|
| | | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
It'd fail to schedule the coroutine otherwise anyway. There is also the
potential to close the coroutine, which may be unexpected to see for a
coroutine that was already running (despite being documented).
|
| | | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
Showing the task ID in the logs makes them distinguishable from logs for
other tasks.
The coroutine state is logged because it may come in handy while
debugging; the coroutine inspection check hasn't been proven yet in
production.
|
| | | | | |
|
| | | | | |
|
| | | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
The coroutine may cancel the scheduled task, which would also trigger
the finally block. The coroutine isn't necessarily finished when it
cancels the task, so it shouldn't be closed in this case.
|
| | | | |
| | | |
| | | |
| | | |
| | | | |
The task is already popped from the dict, so there is no need to delete
it afterwards.
|
| | | | |
| | | |
| | | |
| | | | |
This prevents unawaited coroutine warnings.
|
| | | | | |
|
| | | | | |
|
| | | | | |
|
| | | | | |
|
| | | | | |
|
| | | | | |
|
| | | | | |
|
| | | | |
| | | |
| | | |
| | | |
| | | | |
Naming it "task" is inaccurate because `create_task` accepts a coroutine
rather than a Task. What it does is wrap the coroutine in a Task.
|
| | | | |
| | | |
| | | |
| | | | |
It's redundant. After all, this scheduler cannot schedule anything else.
|
| | | | |
| | | |
| | | |
| | | |
| | | | |
The ability to use the `in` operator makes this obsolete. Callers can
check themselves if a task exists before they try to cancel it.
|
| | | | | |
|
| | | | | |
|
| | | | |
| | | |
| | | |
| | | | |
Makes them easier to identify when debugging.
|
| | | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
This is a major change which simplifies the interface. It removes the
need to implement an abstract method, which means the class can now
be instantiated rather than subclassed.
|
| | | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
Each instance now requires a name to be specified, which will be used
as the suffix of the logger's name. This removes the need to manually
prepend every log message with the name.
|
| | | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
Let's continue to use "@everyone" for now, and add an explicit allow for
it so that it successfully pings people.
There's a full justification for this in the pull request.
https://github.com/python-discord/bot/issues/1038
|
| | | | |
| | | |
| | | |
| | | |
| | | | |
This comment violates the DRY principle.
Co-authored-by: Sebastiaan Zeeff <[email protected]>
|
| | | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
Now that we're running Discord 1.4.0a, we need to explicitely allow all
the role mentions for sends that don't use ping one of the globally
whitelisted role pings, which are Moderators, Admins and Owners.
We were pinging roles other than Mods+ in exactly two cases:
- Inside the Syncers, whenever we ask for sync confirmation (if the
number of roles or users to sync is unusually high)
- In the help_channels.py system, whenever we max out help channels and
are unable to create more.
This commit addresses both of these.
GitHub #1038
https://github.com/python-discord/bot/issues/1038
|
| | | |/
| |/|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Instead of pinging @everyone, let's just ping the people who actually
need to see the mod alerts or the modlogs, which would be the mods.
`@everyone` is currently not permitted by our allowed_mentions setting,
so this also restores pings to those channels.
GitHub #1038
https://github.com/python-discord/bot/issues/1038
|
| | | |
| | |
| | |
| | |
| | |
| | |
| | | |
Also now catches the exception if a user has disabled DMs, and adds a
red cross reaction.
https://github.com/python-discord/bot/issues/667
|
| | | |
| | |
| | |
| | | |
https://github.com/python-discord/bot/issues/667
|
| | | |
| | |
| | |
| | | |
https://github.com/python-discord/bot/issues/667
|
| | | |
| | |
| | |
| | | |
https://github.com/python-discord/bot/issues/667
|
| | | |
| | |
| | |
| | | |
https://github.com/python-discord/bot/issues/667
|
| | | |
| | |
| | |
| | | |
https://github.com/python-discord/bot/issues/667
|
| | | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
This shouldn't be used as a replacement for ModMail, but I think it
makes sense to have the feature just in case #dm-log provides an
interesting use-case where responding as the bot makes sense.
It's a bit of a curiosity, and Ves hates it, but I included it anyway.
https://github.com/python-discord/bot/issues/667
|
| | | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Some of the tests were failing because they were expecting send_webhook
to be a method of the DuckPond cog, other tests simply were no longer
applicable, and have been removed.
https://github.com/python-discord/bot/issues/667
|
| | | |
| | |
| | |
| | | |
https://github.com/python-discord/bot/issues/667
|
| | | |
| | |
| | |
| | | |
https://github.com/python-discord/bot/issues/667
|
| | | |
| | |
| | |
| | | |
https://github.com/python-discord/bot/issues/667
|