| Commit message (Collapse) | Author | Lines | ||
|---|---|---|---|---|
| 2019-12-09 | Infractions: kick user from voice after muting (#644) | -2/+7 | ||
| 2019-12-09 | Moderation: catch HTTPException when applying an infraction | -3/+7 | ||
| Only a warning is logged if it's a Forbidden error. Otherwise, the whole exception is logged. | ||||
| 2019-12-09 | Moderation: show HTTP status code in the log for deactivation failures | -1/+1 | ||
| 2019-12-08 | Use the AsyncResolver for APIClient and discord.py sessions too | -11/+11 | ||
| Active thread counts are observed to be lower with it in use. | ||||
| 2019-12-09 | Ensure hidden_channels and bypass_roles use a list when not passed. | -0/+3 | ||
| The in_channel decorator raised 'NoneType' is not iterable when it wasn't passed, due to the default value being None but not checked against before iterating over it. This edit ensures the arguments are set to an empty list in cases where they have a value of None instead. | ||||
| 2019-12-08 | Fix test failures for setup log messages | -24/+7 | ||
| 2019-12-08 | Properly create and close aiohttp sessions | -10/+65 | ||
| aiohttp throws a warning when a session is created outside of a running async event loop. In aiohttp 4.0 this actually changes to an error instead of merely a warning. Since discord.py manages the event loop with client.run(), some of the "internal" coroutines of the client were overwritten in the bot subclass to be able to hook into when the bot starts and stops. Sessions of both the bot and the API client can now potentially be None if accessed before the sessions have been created. However, if called, the API client's methods will wait for a session to be ready. It will attempt to create a session as soon as the event loop starts (i.e. the bot is running). | ||||
| 2019-12-08 | Fix name conflict with the Bot cog | -3/+3 | ||
| 2019-12-08 | Override add_cog to log loading of cogs | -80/+34 | ||
| 2019-12-07 | Change all Bot imports to use the subclass | -52/+92 | ||
| 2019-12-07 | Subclass Bot | -24/+32 | ||
| 2019-12-05 | Requested change | -1/+2 | ||
| Include the check about whether or not there is a token in the posted message in `parse_codeblock` boolean. | ||||
| 2019-12-05 | Added optional channel parameter to !echo: | -4/+7 | ||
| - Added the option to specify a channel to have Python repeat what you said to it, as well as keeping the old functionality of having it repeat what you said in the current channel if no channel argument is given. Signed-off-by: Daniel Brown <[email protected]> | ||||
| 2019-12-03 | Antimalware: fix paste service URL showing replacement field | -1/+1 | ||
| 2019-12-04 | Renamed function and improved its docstring to better reflect its purposes. | -16/+9 | ||
| Changed from `get_duration_from_expiry` -> `format_infraction_with_duration` | ||||
| 2019-12-03 | Deleted `get_duration` and switched to using the already, nicely made ↵ | -48/+8 | ||
| `humanize_delta` | ||||
| 2019-12-03 | Removed pytest, getting ready to migrate to unittest in another PR | -44/+0 | ||
| 2019-12-01 | Allow snekbox in esoteric-python channel | -4/+15 | ||
| * Add a hidden_channels parameter to in_channel decorator to hide channels from the InChannelCheckFailure error message. | ||||
| 2019-11-30 | Update bot/cogs/moderation/modlog.py | -1/+1 | ||
| 2019-11-27 | Apply review comments to duckpond's unit tests | -72/+128 | ||
| https://github.com/python-discord/bot/pull/621 I've changed to unit tests according to the comments made on the issue. Most changes are straightforward enough, but, for context, see the PR linked above. | ||||
| 2019-11-27 | Move duckpond payload emoji check to method to create testable unit | -6/+14 | ||
| I moved the check that tests if a payload contains a duck emoji to a separate method. This makes it easier to test this part of the code as a separate unit than when it's contained in the larger event listener. In addition, I kaizened the name `relay_message_to_duckpond` to the less verbose `relay_message`; that's already clear enough. | ||||
| 2019-11-27 | Updated test cases for `parts: Optional[int]` | -23/+32 | ||
| 2019-11-27 | Updated docstrings, allow passing `parts: Optional[int] = 2` to helper ↵ | -6/+14 | ||
| functions to return more than just 2 parts of the duration. | ||||
| 2019-11-27 | Updated test cases for `get_duration_from_expiry()` | -8/+9 | ||
| 2019-11-27 | Refactored `scheduler.py` to use the new `get_duration_from_expiry()` | -10/+4 | ||
| 2019-11-27 | Refactored `management.py` to use the new `get_duration_from_expiry()` | -5/+4 | ||
| 2019-11-27 | Changed `get_duration_from_expiry()` to return the `time (duration)` or a `''` | -2/+11 | ||
| 2019-11-27 | Added duration until expiration for infraction searching. | -2/+5 | ||
| 2019-11-27 | Fixed "14 minutes, 60 seconds" by rounding `.total_seconds()` in ↵ | -0/+1 | ||
| `bot.utils.time.get_durations()` | ||||
| 2019-11-27 | Added expiry duration when applying infraction ( including in the embed sent ↵ | -3/+6 | ||
| to user ) | ||||
| 2019-11-27 | Updated `bot.utils.time.get_duration_from_expiry()` to accept an optional ↵ | -2/+2 | ||
| `date_from` ( for pytest and more control over the behaviour ) | ||||
| 2019-11-27 | Added test for `get_duration_from_expiry()` | -0/+17 | ||
| 2019-11-27 | Fixed TypeError raised by substracting offset-naive and offset-aware ↵ | -1/+1 | ||
| datetimes ( removed tzinfo from expiry ) | ||||
| 2019-11-27 | Implemented `get_duration_from_expiry()` which call `get_duration()` for ↵ | -0/+18 | ||
| `expiry` and `datetime.utcnow()` | ||||
| 2019-11-27 | Added pytest for `get_duration()` | -0/+17 | ||
| 2019-11-27 | Implemented `get_duration()` for `bot.utils.time` | -1/+35 | ||
| 2019-11-25 | Make requested tweaks: Use URL constant from constants.py, re-add try/except ↵ | -15/+17 | ||
| block and implement the changes requested by Ava | ||||
| 2019-11-25 | Update PASTE_URL constant to be pydis instead of pythondiscord | -1/+1 | ||
| 2019-11-25 | Change order of imports | -1/+1 | ||
| 2019-11-25 | Forgot the word 'hey' | -1/+1 | ||
| 2019-11-25 | Update antimalware.py to be more consistent with other information messages ↵ | -24/+20 | ||
| (like the codeblock reminder) & improve code a slight bit | ||||
| 2019-11-19 | Relock to d.py 1.2.5 due to API breaking change for emoji. | -80/+95 | ||
| 2019-11-16 | Apply suggestions from code review | -4/+3 | ||
| Co-Authored-By: Mark <[email protected]> | ||||
| 2019-11-16 | Renamed variables to be more explicit, added type hinting for ↵ | -24/+24 | ||
| `content_before` and `content_after` | ||||
| 2019-11-15 | group and order constants | -3/+5 | ||
| 2019-11-15 | Add variable info after comment was deleted | -1/+1 | ||
| Co-authored-by: scargly <[email protected]> | ||||
| 2019-11-15 | join extra newline | -2/+1 | ||
| 2019-11-15 | Add unit tests with full coverage for `bot.cogs.duck_pond` | -159/+490 | ||
| This commit adds unit tests that provide a full branch coverage of the `bot.cogs.duck_pond` file. | ||||
| 2019-11-15 | Add MockAsyncWebhook to mock `discord.Webhook` objects | -0/+21 | ||
| I have added a mock type to mock `discord.Webhook` instances. Note that the current type is specifically meant to mock webhooks that use an AsyncAdaptor and therefore has AsyncMock/coroutine mocks for the "maybe-coroutine" methods specified in the `discord.py` docs. | ||||
| 2019-11-15 | Adjust MockReaction for new AsyncIteratorMock protocol | -3/+1 | ||
| The new AsyncIteratorMock no longer needs an additional method to be used with a Mock object. | ||||
