| Commit message (Collapse) | Author | Lines |
|
|
|
Co-Authored-By: Sebastiaan Zeeff <[email protected]>
|
|
|
|
|
|
|
|
Co-Authored-By: Mark <[email protected]>
|
|
|
|
As we have decided that the converter should return naive datetime
objects, we should explicitly test that datetime strings with a
timezone offset are still converted to a naive datetime object. I
have done this by adding a `tzinfo is None` assertion.
|
|
|
|
|
|
|
|
Fix some liting error
Correct error
Fix linting (maybe)
|
|
The parser we use, `dateutil.parsers.isoparse` returns a timezone-
aware or timezone-unaware `datetime` object depending on whether or
not the datetime string included a timezone offset specification.
Since we can't compare tz-aware objects to tz-unaware objects it's
better to make sure our converter is consistent in the type it will
return.
For now, I've chosen to return tz-unaware datetime objects, since
`discord.py` also returns tz-unaware datetime objects when accessing
datetime-related attributes of objects. Since we're likely to compare
"our" datetime objects to discord.py-provided datetime objects, I
think that's the most parsimonious option for now.
Note: It's probably a good idea to open a larger discussion about
using timezone-aware datetime objects throughout the library to
avoid a UTC-time being interpreted as localtime. This will require
a broader discussion than this commit/PR allows, though.
|
|
This commit removes the angle brackets from the url in the docstring
of `ISODateTime.convert`. The reason: it's ugly.
|
|
Co-Authored-By: Mark <[email protected]>
|
|
https://github.com/python-discord/bot/issues/482
There was small bug in the `cog_unload` method of the WatchChannel
ABC in `bot.cogs.watchchannels.watchchannel`. The problem was that it
tries to check if the Task assigned to `self._consume_task` is done
by accessing its `done` method. However, if a watch channel has not
yet relayed messages after the bot has started, it will not have a
consumption task yet, meaning this `_consume_task` attribute will be
assigned to `None`.
The solution is to change the `if` condition to:
`if self._consume_task and not self._consume_task.done():`
This commit closes #482
|
|
|
|
This splits the former !site resources into two separate commands,
one for !site resources and one for !site tools. This makes sense
now that we've split up the lists into two pages.
It also adds a new alias, !tools, to call this command.
This addresses #478.
https://github.com/python-discord/bot/issues/478
|
|
|
|
|
|
|
|
Co-Authored-By: S. Co1 <[email protected]>
|
|
|
|
|
|
Co-Authored-By: S. Co1 <[email protected]>
|
|
It looks silly
|
|
https://github.com/python-discord/bot/issues/474
This commit makes sure we're using the PATCH method to update tags,
instead of the POST method. The problem was that the `!tags edit`
command was an alias of `!tags set`, which uses the POST method to
post new tags to the API.
However, when a tag with a given name already exists, the API will
refuse a POST request in an attempt to update it; we need to use the
PATCH method to the `bot/tags/{tag_name}` endpoint instead.
I fixed this by creating a separate subcommand, `!tags edit`, that
uses the correct PATCH method to update an existing tag.
This commit closes #474
|
|
Related to https://github.com/python-discord/bot/issues/458
This commit adds a converter that automatically parses ISO-formatted
datetime strings and returns a `datetime.datetime` object. It uses
`dateutil.parser.isoparse` to do the heavy lifting, so it supports
the same formats as this method.
In addition, I have added tests that ensure that it accepts certain
formats and added a description of these 'guaranteed' formats to the
`ISODate.convert` docstring.
This commit should make it easy to implement #485
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Co-Authored-By: Mark <[email protected]>
|
|
|
|
Anyone who is not a Rockstar, a Partner, or a member of staff
will still be redirected to #bot-commands.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
The watchchannel ABC defined its own private utility function to
format ISO datetime strings to something more human-readable. I have
removed this private utility function and replaced the calls to it
with calls to the new `format_infraction` utility function defined in
bot.utils.time.
In addition, I've changed the utility function to use `dateutil` to
parse the datetime string, since `dateutil.parser.isoparse` supports
the strings our API generates out of the box. With the built-in
`datetime.datetime.fromisoformat`, we needed to prepare the string by
slicing of the `Z` timezone indicator.
|
|
The format used is %Y-%m-%d %H:%M.
|
|
|
|
|