| Commit message (Collapse) | Author | Lines |
|
https://github.com/python-discord/bot/issues/446
The current ExpirationDate converter does not convert duration strings
to `datetime.datetime` objects correctly. To remedy the problem, I've
written a new Duration converter that uses regex matching to extract
the relevant duration units and `dateutil.relativedelta.relativedelta`
to compute a `datetime.datetime` that's the given duration in the
future.
I've left the old `ExpirationDate` converter in place for now, since
the new Duration converter may not be the most optimal method. However,
given the importance of being able to convert durations for moderation
tasks, I think it's better to implement Duration now and rethink the
approach later.
This commit closes #446
|
|
Co-Authored-By: Mark <[email protected]>
|
|
Co-Authored-By: Mark <[email protected]>
|
|
Co-Authored-By: Leon Sandøy <[email protected]>
|
|
|
|
Co-Authored-By: Sebastiaan Zeeff <[email protected]>
|
|
Co-Authored-By: Sebastiaan Zeeff <[email protected]>
|
|
|
|
Co-Authored-By: Sebastiaan Zeeff <[email protected]>
|
|
|
|
|
|
Co-Authored-By: Sebastiaan Zeeff <[email protected]>
|
|
Fix decorator return hints
Co-Authored-By: Sebastiaan Zeeff <[email protected]>
|
|
The infraction search feature did not work because of a small bug with
the date formatting: `datetime.fromisoformat` does not like the Z at
the end of the datestring the database sends back, so we need to chop
it off. I've applied the same method for doing that as already in use
in other parts of the bot codebase.
|
|
This also fixes an issue with the `attachments` rule not respecting the most recent message sent by a user.
|
|
- Corrected an error that would have made the code bug out. Moved a closing parentheses to the correct spot.
Signed-off-by: Daniel Brown <[email protected]>
|
|
- Changed the if statement to use `is None` for code clarity.
Signed-off-by: Daniel Brown <[email protected]>
|
|
|
|
- Changed to use the format `"%Y-%m-%d %H:%M"`, which will turn out looking like `2019-09-18 13:59`
Signed-off-by: Daniel Brown <[email protected]>
|
|
- Changed the date returned on infraction searches to use the `"%c"` strftime format instead of the standard ISO format.
Signed-off-by: Daniel Brown <[email protected]>
|
|
https://github.com/python-discord/bot/issues/434
If the content we prepare for the codeblock suggestion embed defined
in the `bot` cog contains markdown characters (e.g., `__`, `**`), this
will cause Discord to apply markdown, since both the codeblock syntax
example as well as the codeblock result example will contain the
characters, making it a matched formatting pair.
This will hide those characters, which often have a function in the
code, and break the example of a formatted codeblock.
To deal with that, I've added a regex substitution that substitutes
markdown characters by an escaped version of that markdown character.
Example:
`'__hello__'` will become `'\_\_hello\_\_'`
I've added this substitution to both paths in the `on_message` event
listener, since we can't substitute at an earlier place due to it
generating `SyntaxErrors` with the `ast.parse` check.
This closes #434
|
|
https://github.com/python-discord/bot/issues/435
This commit is meant to enhance the search feature in three separate,
but related ways:
1. By changing the type annotation of the query to OffTopicName, we
will use the same character translation table for the query as we
did when storing the off-topic name, leading to better matches.
2. By adding a membership test, `query in name`, we are better able to
search for off-topic names using a substring.
3. Given point 1 and point 2, we can increase the cut-off value we use
for `difflib.get_close_matches` so we reduce the number of matches
that bear little resemblance to the query in our human eyes.
This commit closes #435
|
|
|
|
|
|
|
|
|
|
|
|
|
|
I missed a `get_user_info` in InfractionSearchQuery in bot.converts.
This method is now `fetch_user` in Discord.py 1.2.3.
|
|
|
|
I have updated the discord.py version to 1.2.3. This includes changes
throughout the entire code base, including:
- All cogs now inherit from `discord.ext.commands.Cog`;
- All of our ABCs now have `bot.utils.CogABCMeta` as a metaclass;
- All event handlers in cogs are now decorated with `Cog.listener()`;
- Some method names have changes, including:
- get_message => fetch_message
- get_webhook_info => fetch_webhook
- A few occurences of `get_channel` have been replaced by the new
coroutine `fetch_channel`;
- I've had to patch a few lines of code to account for small
differences between the versions, like `on_member_update` attribute
names in ModLog and the fact the way we used `Context.invoke` a couple
of times has stopped working.
In addition, I've added a patch for a bug in discord.py (with the help
of @Scragly). This discord.py version has a bug which causes the edited
timestamp not to be processed for edited messages. It's already fixed
on GitHub, but a bug fix release has not been released to PyPI. In the
meantime, I've added a patch in `bot.patches.message_edited_at` and
included conditional loading in `__main__`.
Finally, I noticed a small bug in `bot.cogs.filtering` that I fixed; I
replaces `return` with `continue` to make sure filtering for edited
messages doesn't stop after the `rich_embed_filter`.
|
|
There were some GitLab references in various
parts of the code, which were causing a problem with
displaying icons in the bot connection embeds and
other minor aesthetic issues.
This commit replaces all links to GitLab with their
GitHub equivalent, resolving these bugs.
|
|
We retired the old #dev-logs channel (for
security reasons) and have made a new one for
public consumption.
This commit changes the ID to match the new
channel.
|