| Commit message (Collapse) | Author | Age | Lines |
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* Move to timezone aware datetimes
With the shift of the discord.py library to timezone aware datetimes, this commit changes datetimes throughout the bot to be in the UTC timezone accordingly.
This has several advantages:
- There's no need to discard the TZ every time the datetime of a Discord object is fetched.
- Using TZ aware datetimes reduces the likelihood of silently adding bugs into the codebase (can't compare an aware datetime with a naive one).
- Our DB already stores datetimes in UTC, but we've been discarding the TZ so far whenever we read from it.
Specific places in the codebase continue using naive datetimes, mainly for UI purposes (for examples embed footers use naive datetimes to display local time).
* Improve ISODateTime converter documentation
Co-authored-by: Kieran Siek <[email protected]>
|
| |\ |
|
| | |\ |
|
| | | |\ |
|
| | | | | |
|
| | |\ \ \
| | | |/
| | |/| |
|
| | | | |
| | | |
| | | |
| | | | |
There's now always one blank line (no more, no less) after an import
|
| | | |/ |
|
| | |\| |
|
| | | |\ |
|
| | | | | |
|
| | | | |
| | | |
| | | |
| | | |
| | | | |
The util attaches an error logging callback instead of relying on python's
exception logging which only occurs when the task is destroyed
|
| | | |/ |
|
| | | | |
|
| | | |
| | |
| | |
| | | |
avatar can apparently be none, which means traceback and a very sad akarys
|
| | | | |
|
| | |/
| |
| |
| |
| |
| |
| |
| | |
Since the Discord.py repository has been archived, we can switch to the latest commit of 2.0a0, knowing no breaking change will occur (still pinned to the commit just in case).
This commits fixes any problem related to the migration:
- New avatar interface
- TZ aware datetimes
- Various inernal API changes
|
| |/ |
|
| |\ |
|
| | | |
|
| | |\ |
|
| | | | |
|
| | | | |
|
| | |/
|/| |
|
| |\ \ |
|
| | |\| |
|
| | | | |
|
| | | | |
|
| | | | |
|
| | | | |
|
| | |/
|/|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
The anti-spam cog now uses a cache instead of reading channel history.
The cache is for all channels in the guild, and does not remove deleted messages.
That means that the anti-spam logic now works cross-channel and counts deleted messages.
The size of the cache is determined via a new field in the config YAML file.
The cache was implemented as a separate class, MessageCache, which uses circular buffer logic.
This allows for constant time addition and removal form either side, and lookup. The cache does not support removal from the middle of the cache.
The cache additionally stores a mapping from message ID's to the index of the message in the cache, to allow constant time lookup by message ID.
The commit additionally adds accompanying tests, and renames `cache.py` to `caching.py` to better distinguish it from the new `message_cache.py` and convey that it's for general caching utilities.
|
| |\ \ |
|
| | |\| |
|
| | | |\ |
|
| | | | |\ |
|
| | | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
Fixes a bug that stopped the duration `forever` from getting used as a
valid duration for silence.
Signed-off-by: Hassan Abouelela <[email protected]>
|
| | | | |\ \ |
|
| | | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
Updates the shh and unshh commands from the error handler to accept
channel and kick arguments, to give them the same interface as the
silence and unsilence command.
Signed-off-by: Hassan Abouelela <[email protected]>
|
| | | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
Updates the silence command to accept the silence duration or channel as
the first argument to the command. Updates tests.
Signed-off-by: Hassan Abouelela <[email protected]>
|
| | | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
Uses `.format` to create silence and unsilence messages instead of
`.replace`.
Signed-off-by: Hassan Abouelela <[email protected]>
|
| | | | |\ \ \ |
|
| | | | | |\ \ \ |
|
| | | | |/ / / /
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | | |
Uses itertools.product to eliminate some nested for loops in tests.
Signed-off-by: Hassan Abouelela <[email protected]>
|
| | | | | | | |
| | | | | | |
| | | | | | |
| | | | | | | |
Signed-off-by: Hassan Abouelela <[email protected]>
|
| | | | | | | |
| | | | | | |
| | | | | | |
| | | | | | | |
Signed-off-by: Hassan Abouelela <[email protected]>
|
| | | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | | |
Duplicates existing silence and unsilence cache tests for voice
channels.
Signed-off-by: Hassan Abouelela <[email protected]>
|
| | | | | | | |
| | | | | | |
| | | | | | |
| | | | | | | |
Signed-off-by: Hassan Abouelela <[email protected]>
|
| | | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | | |
Reduces the number of members created for each test to the bare minimum
required.
Signed-off-by: Hassan Abouelela <[email protected]>
|
| | | | |\ \ \ \ |
|
| | | | |\ \ \ \ \ |
|