|  | Commit message (Collapse) | Author | Age | Lines | 
|---|
| | |  | 
| | |  | 
| | |  | 
| |\  
| | 
| | | Antimalware: fix paste service URL showing replacement field | 
| | | |  | 
| |\ \  
| |/  
|/|   
| |   
| | | python-discord/enhance-timedelta-for-infraction-expiration
Enhance timedelta for infraction expiration | 
| | | 
| | 
| | 
| | | Changed from `get_duration_from_expiry` -> `format_infraction_with_duration` | 
| | | 
| | 
| | 
| | | `humanize_delta` | 
| | | |  | 
| | | |  | 
| | | 
| | 
| | 
| | | functions to return more than just 2 parts of the duration. | 
| | | |  | 
| | | |  | 
| | | |  | 
| | | |  | 
| | | |  | 
| | | 
| | 
| | 
| | | `bot.utils.time.get_durations()` | 
| | | 
| | 
| | 
| | | to user ) | 
| | | 
| | 
| | 
| | | `date_from` ( for pytest and more control over the behaviour ) | 
| | | |  | 
| | | 
| | 
| | 
| | | datetimes ( removed tzinfo from expiry ) | 
| | | 
| | 
| | 
| | | `expiry` and `datetime.utcnow()` | 
| | | |  | 
| | | |  | 
| |\ \  
| | | 
| | | | Allow snekbox in esoteric-python channel | 
| |/ /  
| |   
| |   
| |   
| | | * Add a hidden_channels parameter to in_channel decorator to hide
  channels from the InChannelCheckFailure error message. | 
| |\ \  
| | | 
| | | | Update antimalware.py to be more consistent with other information messages & improve code a slight bit | 
| | |\ \  
| |/ /  
|/| | |  | 
| |\ \ \  
| | | | 
| | | | 
| | | | 
| | | | | Change `on_message_edit` - only show differences, highlighted in blue with hyperlink
Co-authored-by: Leon Sandøy <[email protected]> | 
| | |\ \ \  
| |/ / /  
|/| | | |  | 
| | | | | |  | 
| | | | | 
| | | | 
| | | | 
| | | | | `content_before` and `content_after` | 
| | | | | |  | 
| | | | | 
| | | | 
| | | | 
| | | | | over each word. | 
| | | | | 
| | | | 
| | | | 
| | | | 
| | | | 
| | | | 
| | | | 
| | | | 
| | | | 
| | | | 
| | | | 
| | | | 
| | | | 
| | | | 
| | | | 
| | | | 
| | | | 
| | | | | 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 | 
| | | | | 
| | | | 
| | | | 
| | | | | - 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. | 
| | | | | |  | 
| | | | | 
| | | | 
| | | | 
| | | | | ... I think? | 
| | | | | 
| | | | 
| | | | 
| | | | 
| | | | 
| | | | | - Merged `before_response` and `after_response`.
- Only show the differences between `before.clean_content` and `after.clean_content`
- Included a `jump to message` link. | 
| | | | | 
| | | | 
| | | | 
| | | | | Using ternary to avoid if else | 
| | | |\ \  
| |_|/ /  
|/| | | |  | 
| |\ \ \ \  
| |_|_|/  
|/| | | | Duck pond! | 
| | | | | 
| | | | 
| | | | 
| | | | 
| | | | 
| | | | 
| | | | 
| | | | | 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. | 
| | | | | 
| | | | 
| | | | 
| | | | 
| | | | 
| | | | 
| | | | 
| | | | 
| | | | 
| | | | | 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. | 
| | | | | 
| | | | 
| | | | | Co-Authored-By: Mark <[email protected]> | 
| | | | | 
| | | | 
| | | | 
| | | | 
| | | | | This commit adds unit tests that provide a full branch coverage of
the `bot.cogs.duck_pond` file. | 
| | | | | 
| | | | 
| | | | 
| | | | 
| | | | 
| | | | 
| | | | | 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. | 
| | | | | 
| | | | 
| | | | 
| | | | 
| | | | | The new AsyncIteratorMock no longer needs an additional method to be
used with a Mock object. | 
| | | | | 
| | | | 
| | | | 
| | | | 
| | | | 
| | | | 
| | | | 
| | | | | 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`. | 
| | | | | 
| | | | 
| | | | 
| | | | 
| | | | 
| | | | 
| | | | 
| | | | 
| | | | 
| | | | 
| | | | | 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. |