aboutsummaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeLines
* Merge remote-tracking branch 'origin/master' into token_and_bad_codeGravatar MarkKoz2019-12-12-1169/+2555
|\
| * Subclass Bot (#681)Gravatar scragly2019-12-12-185/+225
| |\ | | | | | | Subclass Bot
| | * Use the AsyncResolver for APIClient and discord.py sessions tooGravatar MarkKoz2019-12-08-11/+11
| | | | | | | | | | | | Active thread counts are observed to be lower with it in use.
| | * Fix test failures for setup log messagesGravatar MarkKoz2019-12-08-24/+7
| | |
| | * Properly create and close aiohttp sessionsGravatar MarkKoz2019-12-08-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).
| | * Fix name conflict with the Bot cogGravatar MarkKoz2019-12-08-3/+3
| | |
| | * Override add_cog to log loading of cogsGravatar MarkKoz2019-12-08-80/+34
| | |
| | * Change all Bot imports to use the subclassGravatar MarkKoz2019-12-07-52/+92
| | |
| | * Subclass BotGravatar MarkKoz2019-12-07-24/+32
| | |
| * | Merge pull request #684 from python-discord/enhancement/644-mute-kicks-voiceGravatar Mark2019-12-12-6/+15
| |\ \ | | | | | | | | Kick users from voice when they get muted
| | * \ Merge branch 'master' into enhancement/644-mute-kicks-voiceGravatar Matteo Bertucci2019-12-12-0/+10
| | |\ \ | | |/ / | |/| |
| * | | Fix tag fallback not respecting checks (#687)Gravatar scragly2019-12-12-0/+10
| |\ \ \ | | | | | | | | | | Fix tag fallback not respecting checks
| | * | | ErrorHandler: fix #650 tag fallback not respecting checksGravatar MarkKoz2019-12-11-0/+10
| |/ / /
| | * | Infractions: kick user from voice after muting (#644)Gravatar MarkKoz2019-12-09-2/+7
| | | |
| | * | Moderation: catch HTTPException when applying an infractionGravatar MarkKoz2019-12-09-3/+7
| | | | | | | | | | | | | | | | | | | | Only a warning is logged if it's a Forbidden error. Otherwise, the whole exception is logged.
| | * | Moderation: show HTTP status code in the log for deactivation failuresGravatar MarkKoz2019-12-09-1/+1
| |/ /
| * | Merge pull request #682 from manusaurio/masterGravatar Shirayuki Nekomata2019-12-09-0/+3
| |\ \ | | |/ | |/| Ensure hidden_channels and bypass_roles use a list when not passed.
| | * Ensure hidden_channels and bypass_roles use a list when not passed.Gravatar Manuel Ignacio Pérez Alcolea2019-12-09-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.
| * Added optional channel parameter to !echo:Gravatar Daniel Brown2019-12-05-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]>
| * Merge pull request #678 from python-discord/antimalware-paste-urlGravatar Mark2019-12-03-1/+1
| |\ | | | | | | Antimalware: fix paste service URL showing replacement field
| | * Antimalware: fix paste service URL showing replacement fieldGravatar MarkKoz2019-12-03-1/+1
| | |
| * | Merge pull request #672 from ↵Gravatar Mark2019-12-03-6/+28
| |\ \ | | |/ | |/| | | | | | | python-discord/enhance-timedelta-for-infraction-expiration Enhance timedelta for infraction expiration
| | * Renamed function and improved its docstring to better reflect its purposes.Gravatar Shirayuki Nekomata2019-12-04-16/+9
| | | | | | | | | | | | Changed from `get_duration_from_expiry` -> `format_infraction_with_duration`
| | * Deleted `get_duration` and switched to using the already, nicely made ↵Gravatar Shirayuki Nekomata2019-12-03-48/+8
| | | | | | | | | | | | `humanize_delta`
| | * Removed pytest, getting ready to migrate to unittest in another PRGravatar Shirayuki Nekomata2019-12-03-44/+0
| | |
| | * Updated test cases for `parts: Optional[int]`Gravatar Shirayuki Nekomata2019-11-27-23/+32
| | |
| | * Updated docstrings, allow passing `parts: Optional[int] = 2` to helper ↵Gravatar Shirayuki Nekomata2019-11-27-6/+14
| | | | | | | | | | | | functions to return more than just 2 parts of the duration.
| | * Updated test cases for `get_duration_from_expiry()`Gravatar Shirayuki Nekomata2019-11-27-8/+9
| | |
| | * Refactored `scheduler.py` to use the new `get_duration_from_expiry()`Gravatar Shirayuki Nekomata2019-11-27-10/+4
| | |
| | * Refactored `management.py` to use the new `get_duration_from_expiry()`Gravatar Shirayuki Nekomata2019-11-27-5/+4
| | |
| | * Changed `get_duration_from_expiry()` to return the `time (duration)` or a `''`Gravatar Shirayuki Nekomata2019-11-27-2/+11
| | |
| | * Added duration until expiration for infraction searching.Gravatar Shirayuki Nekomata2019-11-27-2/+5
| | |
| | * Fixed "14 minutes, 60 seconds" by rounding `.total_seconds()` in ↵Gravatar Shirayuki Nekomata2019-11-27-0/+1
| | | | | | | | | | | | `bot.utils.time.get_durations()`
| | * Added expiry duration when applying infraction ( including in the embed sent ↵Gravatar Shirayuki Nekomata2019-11-27-3/+6
| | | | | | | | | | | | to user )
| | * Updated `bot.utils.time.get_duration_from_expiry()` to accept an optional ↵Gravatar Shirayuki Nekomata2019-11-27-2/+2
| | | | | | | | | | | | `date_from` ( for pytest and more control over the behaviour )
| | * Added test for `get_duration_from_expiry()`Gravatar Shirayuki Nekomata2019-11-27-0/+17
| | |
| | * Fixed TypeError raised by substracting offset-naive and offset-aware ↵Gravatar Shirayuki Nekomata2019-11-27-1/+1
| | | | | | | | | | | | datetimes ( removed tzinfo from expiry )
| | * Implemented `get_duration_from_expiry()` which call `get_duration()` for ↵Gravatar Shirayuki Nekomata2019-11-27-0/+18
| | | | | | | | | | | | `expiry` and `datetime.utcnow()`
| | * Added pytest for `get_duration()`Gravatar Shirayuki Nekomata2019-11-27-0/+17
| | |
| | * Implemented `get_duration()` for `bot.utils.time`Gravatar Shirayuki Nekomata2019-11-27-1/+35
| | |
| * | Allow snekbox in esoteric-python channel (#675)Gravatar scragly2019-12-02-4/+15
| |\ \ | | | | | | | | Allow snekbox in esoteric-python channel
| | * | Allow snekbox in esoteric-python channelGravatar MarkKoz2019-12-01-4/+15
| |/ / | | | | | | | | | | | | * Add a hidden_channels parameter to in_channel decorator to hide channels from the InChannelCheckFailure error message.
| * | Merge pull request #671 from Denayder/masterGravatar Leon Sandøy2019-11-30-23/+21
| |\ \ | | | | | | | | Update antimalware.py to be more consistent with other information messages & improve code a slight bit
| | * \ Merge branch 'master' into masterGravatar Leon Sandøy2019-11-30-82/+69
| | |\ \ | | |/ / | |/| |
| * | | Change `on_message_edit` - only show differences, highlighted in… (#646)Gravatar scragly2019-11-30-82/+69
| |\ \ \ | | | | | | | | | | | | | | | | | | | | Change `on_message_edit` - only show differences, highlighted in blue with hyperlink Co-authored-by: Leon Sandøy <[email protected]>
| | * \ \ Merge branch 'master' into message-edit-hyperlinkGravatar scragly2019-11-30-919/+2770
| | |\ \ \ | | |/ / / | |/| | |
| | * | | Update bot/cogs/moderation/modlog.pyGravatar Leon Sandøy2019-11-30-1/+1
| | | | |
| | * | | Renamed variables to be more explicit, added type hinting for ↵Gravatar Shirayuki Nekomata2019-11-16-24/+24
| | | | | | | | | | | | | | | | | | | | `content_before` and `content_after`
| | * | | Condensed logic, now only check for `add` `remove` `same` diff_type only.Gravatar Shirayuki Nekomata2019-11-14-8/+6
| | | | |
| | * | | Switched to using list instead of `str.replace()` for much better control ↵Gravatar Shirayuki Nekomata2019-11-13-10/+13
| | | | | | | | | | | | | | | | | | | | over each word.