aboutsummaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeLines
* 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.
| * | | Merged `else` and its single `if`, changed style to be more consistentGravatar Shirayuki Nekomata2019-11-06-7/+8
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Following Mark's reviews: - The single `if` inside the `else` can be merged with its `else` - this will reduce the level of complexity and indentation. - Changed from style ```py new = ('hello' 'world') ``` to ```py new = ( 'hello' 'world' ) ``` to be more consistent with the rest of the code
| * | | Changed link used in hyperlinkGravatar Shirayuki Nekomata2019-11-05-2/+2
| | | | | | | | | | | | | | | | - A simple `http://.z` will show properly for PC client, but for android it completely broke -> changed to `http://o.hi` - minimum link to make discord think it's a link.
| * | | remove unneccessary elseGravatar Shirayuki Nekomata2019-11-05-4/+2
| | | |
| * | | un-monstrosify codeGravatar Shirayuki Nekomata2019-11-05-9/+15
| | | | | | | | | | | | | | | | ... I think?
| * | | Merge before & after response, show only differencesGravatar Shirayuki Nekomata2019-11-03-15/+28
| | | | | | | | | | | | | | | | | | | | | | | | - Merged `before_response` and `after_response`. - Only show the differences between `before.clean_content` and `after.clean_content` - Included a `jump to message` link.
| * | | RefactorGravatar Shirayuki Nekomata2019-11-03-64/+32
| | | | | | | | | | | | | | | | Using ternary to avoid if else
| | * | Merge branch 'master' into masterGravatar Leon Sandøy2019-11-30-37/+968
| | |\ \ | |_|/ / |/| | |
* | | | Merge pull request #621 from python-discord/duck_pondGravatar Leon Sandøy2019-11-30-37/+968
|\ \ \ \ | |_|_|/ |/| | | Duck pond!
| * | | Apply review comments to duckpond's unit testsGravatar Sebastiaan Zeeff2019-11-27-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.
| * | | Move duckpond payload emoji check to method to create testable unitGravatar Sebastiaan Zeeff2019-11-27-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.
| * | | Apply suggestions from code reviewGravatar Sebastiaan Zeeff2019-11-16-4/+3
| | | | | | | | | | | | Co-Authored-By: Mark <[email protected]>
| * | | Add unit tests with full coverage for `bot.cogs.duck_pond`Gravatar Sebastiaan Zeeff2019-11-15-159/+490
| | | | | | | | | | | | | | | | | | | | This commit adds unit tests that provide a full branch coverage of the `bot.cogs.duck_pond` file.
| * | | Add MockAsyncWebhook to mock `discord.Webhook` objectsGravatar Sebastiaan Zeeff2019-11-15-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.
| * | | Adjust MockReaction for new AsyncIteratorMock protocolGravatar Sebastiaan Zeeff2019-11-15-3/+1
| | | | | | | | | | | | | | | | | | | | The new AsyncIteratorMock no longer needs an additional method to be used with a Mock object.
| * | | Add MockUser to mock `discord.User` objectsGravatar Sebastiaan Zeeff2019-11-15-0/+19
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | I have added a special mock that follows the specifications of a `discord.User` instance. This is useful, since `Users` have less attributes available than `discord.Members`. Since this difference in availability of information can be important, we should not use a `MockMember` to mock a `discord.user`.
| * | | Add `return_value` support and assertions to AsyncIteratorMockGravatar Sebastiaan Zeeff2019-11-15-4/+54
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The AsyncIteratorMock included in Python 3.8 will work similarly to the mocks of callabes. This means that it allows you to set the items it will yield using the `return_value` attribute. It will also have support for the common Mock-specific assertions. This commit introduces some backports of those features in a slightly simplified way to make the transition to Python 3.8 easier in the future.
| * | | Move payload checks to start of DuckPond.on_raw_reaction_addGravatar Sebastiaan Zeeff2019-11-15-7/+7
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The `DuckPond.on_raw_message_add` event listener makes an API call to fetch the message the reaction was added to. However, we don't need to fetch the message if the reaction that was added is not relevant to the duck pond. To prevent such unnecessary API calls, I have moved the code that checks for the relevance of the reaction event to before the code that fetches the message.
| * | | Refactor DuckPond msg relay to separate methodGravatar Sebastiaan Zeeff2019-11-15-29/+33
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | To allow for separate testing of the code that relays messages to the duck pond, I have moved this part of the code from the event listener to a separate method. The overall logic has remained unchanged. In addition, I've kaizened to things: - Removed unnecessary f-string without interpolation; - Removed double negative (not item not in list)