| Commit message (Collapse) | Author | Lines |
|
For deleting and listing data, we now get some more feedback when things
fail.
|
|
We want the !help invocations to give you all the information you need
in order to use the command. That also means we need to provide the
valid filterlist types, which are subject to change.
So, we fetch the valid ones from the API and then dynamically insert
them into the docstrings.
|
|
|
|
|
|
|
|
This means we can validate invites that start with https://, whereas
before we could not.
|
|
|
|
This is an optimization designed to eliminate all the list
comprehensions we were doing inside antimalware and filtering. The cache
is now structured so that the content is the key and the metadata is the
value.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
This is necessary to support walrus operators.
|
|
|
|
Addresses reviews from MarkKoz
Co-authored-by: Mark <[email protected]>
|
|
|
|
|
|
|
|
|
|
We now filter guild invites the following way:
- Whitelisted invites are always permitted.
- Blacklisted invites are never permitted.
- If the invite is not blacklisted, it is permitted only if it is a
Verified or a Partnered server, otherwise not.
This strategy was decided on during the June 7th staff meeting, see
https://github.com/python-discord/organisation/issues/261
|
|
We want to support deletion of both IDs and guild invites, so we need a
bit of special handling for that.
|
|
We will now validate and convert any standard discord server invite to a
guild ID, and automatically add the name of the server as a comment.
This will ensure that the list of whitelisted guild IDs will be readable
and nice.
This also makes minor changes to list output aesthetics.
|
|
|
|
This gives easier access to the Guild ID in the place where you're most
likely to want to use the whitelist command.
|
|
|
|
Also updates the tests for this cog.
|
|
Instead of fetching the guild invite IDs from config-default.yml, we
will now be using the AllowDenyList cache to check these.
|
|
|
|
This includes commands to add, remove and show the items in the
whitelists and blacklists for the different list types.
Commands are limited to Moderators+.
|
|
Instead of just dumping the JSON response from the site, we'll build a
data structure that it will be convenient to access from our new cog,
and from the Filtering cog.
|
|
|
|
|
|
Currently, some types of errors are returning plain strings that repeat
the input (which can be exploited to deliver stuff like mentions), and
others are returning generic messages that don't give any exception
information.
This commit unifies our approach around putting as much information as
we can (including the exception message), but always putting it inside
an embed, so that stuff like pings will not fire.
This, combined with the 1.4.0a `allowed_mentions` functionality, seems
like a reasonable compromise between security and usability.
|
|
We'll use this to ensure the input is valid when people try to whitelist
or blacklist stuff. It will fetch its data from an Enum maintained on
the site, so that the types of lists we support will only need to be
maintained in a single place, instead of duplicating that data in the
bot and the site.
|
|
We shouldn't be making an API call for every single message posted, so
what we're gonna do is cache the data in the Bot, and then update the
cache whenever we make changes to it via our new AllowDenyList cog.
Since this cog will be the only way to make changes to this, this level
of lazy caching should be enough to always keep the cache up to date.
|
|
|
|
|
|
https://github.com/python-discord/bot/issues/1041
|
|
Weird.
https://github.com/python-discord/bot/issues/1041
|
|
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
|
|
Fixes a regression where the string to be matched was not processed
beforehand.
|
|
|