|  | Commit message (Collapse) | Author | Age | Lines | 
|---|
| ... |  | 
| | | | | | | | | | | | | | | | | | 
| | | | | | | | | | | | | | | | | 
| | | | | | | | | | | | | | | | | 
| | | | | | | | | | | | | | | | | | - self.schedule_task shouldn't be awaited as it isn't a coroutine | 
| | | | | | | | | | | | | | | | | | 
| | | | | | | | | | | | | | | | | 
| | | | | | | | | | | | | | | | | 
| | | | | | | | | | | | | | | | | 
| | | | | | | | | | | | | | | | | | - As suggested, this function is not necessary
- Also fixed no longer valid`stop`in SilencedChannel NamedTuple | 
| | | | | | | | | | | | | | | | | | |  | 
| | | | | | | | | | | | | | | | | | |  | 
| | | | | | | | | | | | | | | | | | 
| | | | | | | | | | | | | | | | | 
| | | | | | | | | | | | | | | | | 
| | | | | | | | | | | | | | | | | 
| | | | | | | | | | | | | | | | | | - There shouldn't be another class only for Scheduler
instead, we can implement it directly into Silence class | 
| | | | | | | | | | | | | | | | | | |  | 
| | | | | | | | | | | | | | | | | | |  | 
| | | |_|/ / / / / / / / / / / / /  
| |/| | | | | | | | | | | | | |   
| | | | | | | | | | | | | | | |   
| | | | | | | | | | | | | | | |   
| | | | | | | | | | | | | | | |   
| | | | | | | | | | | | | | | |   
| | | | | | | | | | | | | | | |   
| | | | | | | | | | | | | | | |   
| | | | | | | | | | | | | | | |   
| | | | | | | | | | | | | | | |   
| | | | | | | | | | | | | | | | | `asyncio.sleep` doesn't provide us with the ability to stop that timer,
while in most of the cases, this is fine, there is a possibility that
channel will be unsilenced manually and silenced again, but this sleep from
the first silence will cancel the second (new) silence.
This will replace this `asyncio.sleep` with Scheduler which provides the
ability to cancel the unsilencing task when aborted manually.
That means we also have the ability to send a response if the channel is
not silenced and someone tries to unsilence it. | 
| |\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \  
| |_|_|_|_|_|/ / / / / / / / / /  
|/| | | | | | | | | | | | | | | | Escape markdown in charinfo embed | 
| |/ / / / / / / / / / / / / / /  
| | | | | | | | | | | | | | |   
| | | | | | | | | | | | | | |   
| | | | | | | | | | | | | | |   
| | | | | | | | | | | | | | |   
| | | | | | | | | | | | | | |   
| | | | | | | | | | | | | | |   
| | | | | | | | | | | | | | | | The embed displays the original character. If it's a markdown char,
it would interfere with the embed's actual markdown. The backtick was
especially troublesome.
Fixes #996 | 
| | | | | | | | | | | | | | | | 
| | | | | | | | | | | | | | | 
| | | | | | | | | | | | | | | 
| | | | | | | | | | | | | | | | The site's description still stated that it was built with Flask, which
is no longer accurate due to the move to Django. | 
| |\ \ \ \ \ \ \ \ \ \ \ \ \ \ \  
| | | | | | | | | | | | | | | | 
| | | | | | | | | | | | | | | | | Filtering: Implement bad words detection in nicknames | 
| | |\ \ \ \ \ \ \ \ \ \ \ \ \ \ \  
| |/ / / / / / / / / / / / / / /  
|/| | | | | | | | | | | | | | | |  | 
| |\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \  
| | | | | | | | | | | | | | | | | 
| | | | | | | | | | | | | | | | | | Add cooldown channel to config-default.yml | 
| | | | | | | | | | | | | | | | | | |  | 
| | | | | | | | | | | | | | | | | | |  | 
| |/ / / / / / / / / / / / / / / / |  | 
| | | | | | | | | | | | | | | | | |  | 
| | | | | | | | | | | | | | | | | |  | 
| | |\ \ \ \ \ \ \ \ \ \ \ \ \ \ \  
| |/ / / / / / / / / / / / / / /  
|/| | | | | | | | | | | | | | | |  | 
| |\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \  
| | | | | | | | | | | | | | | | | 
| | | | | | | | | | | | | | | | | | Converters: handle ValueError when year for duration is out of range | 
| | |\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \  
| |/ / / / / / / / / / / / / / / /  
|/| | | | | | | | | | | | | | | | |  | 
| |\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \  
| | | | | | | | | | | | | | | | | | 
| | | | | | | | | | | | | | | | | | | Add snekbox to the Docker compose file | 
| | |\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \  
| |/ / / / / / / / / / / / / / / / /  
|/| | | | | | | | | | | | | | | | | |  | 
| |\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \  
| | | | | | | | | | | | | | | | | | | 
| | | | | | | | | | | | | | | | | | | | ModLog: ignore DMs in the message delete listener | 
| | |\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \  
| |/ / / / / / / / / / / / / / / / / /  
|/| | | | | | | | | | | | | | | | | | |  | 
| | | | | | | | | | | | | | | | | | | | |  | 
| |\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \  
| |_|_|_|_|_|_|_|_|/ / / / / / / / / /  
|/| | | | | | | | | | | | | | | | | | | Fix AttributeError for category check | 
| | |\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \  
| |/ / / / / / / / / / / / / / / / / /  
|/| | | | | | | | | | | | | | | | | | |  | 
| | |_|_|_|_|_|_|_|/ / / / / / / / / /  
|/| | | | | | | | | | | | | | | | |   
| | | | | | | | | | | | | | | | | |   
| | | | | | | | | | | | | | | | | |   
| | | | | | | | | | | | | | | | | |   
| | | | | | | | | | | | | | | | | |   
| | | | | | | | | | | | | | | | | | | This will provide breadcrumbs for these systems in all our Sentry
events, if applicable.
Closes #989. | 
| | | |_|_|_|_|_|/ / / / / / / / / /  
| |/| | | | | | | | | | | | | | |   
| | | | | | | | | | | | | | | | |   
| | | | | | | | | | | | | | | | |   
| | | | | | | | | | | | | | | | | | Not all channels will have a category attribute. This may be fine in
production, but it does cause periodic errors when testing locally. | 
| | | | | | | | | | | | | | | | | | |  | 
| | |_|/ / / / / / / / / / / / / /  
|/| | | | | | | | | | | | | | | |  | 
| |\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \  
| | | | | | | | | | | | | | | | | 
| | | | | | | | | | | | | | | | | | Stats: Implement rules stats | 
| | |\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \  
| |/ / / / / / / / / / / / / / / /  
|/| | | | | | | | | | | | | | | | |  | 
| |\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \  
| | | | | | | | | | | | | | | | | | 
| | | | | | | | | | | | | | | | | | | Add staff counts to !server | 
| | |\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \  
| |/ / / / / / / / / / / / / / / / /  
|/| | | | | | | | | | | | | | | | | |  | 
| |\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \  
| |_|_|/ / / / / / / / / / / / / / /  
|/| | | | | | | | | | | | | | | | |   
| | | | | | | | | | | | | | | | | |   
| | | | | | | | | | | | | | | | | | | python-discord/sebastiaan/issues/982-infraction-dm-order
Send infraction DM before applying infraction | 
| |/ / / / / / / / / / / / / / / / /  
| | | | | | | | | | | | | | | | |   
| | | | | | | | | | | | | | | | |   
| | | | | | | | | | | | | | | | |   
| | | | | | | | | | | | | | | | |   
| | | | | | | | | | | | | | | | |   
| | | | | | | | | | | | | | | | |   
| | | | | | | | | | | | | | | | |   
| | | | | | | | | | | | | | | | |   
| | | | | | | | | | | | | | | | |   
| | | | | | | | | | | | | | | | |   
| | | | | | | | | | | | | | | | |   
| | | | | | | | | | | | | | | | |   
| | | | | | | | | | | | | | | | |   
| | | | | | | | | | | | | | | | |   
| | | | | | | | | | | | | | | | |   
| | | | | | | | | | | | | | | | |   
| | | | | | | | | | | | | | | | |   
| | | | | | | | | | | | | | | | |   
| | | | | | | | | | | | | | | | | | I've "reverted" the change that reversed the order of DM'ing a user
about their infraction and applying the actual infraction. A recent PR
reversed the order to stop us from sending DMs when applying the
infraction failed.
However, in order to DM a user, the bot has to share a guild with the
recipient and kicking them off of our server first does not help with
that. That's why I reverted the change and reverted some other minor
changes made in relation to this change.
Note: I did not change the code sending the DM itself; I merely moved it
back to where it belongs and added a comment about the necessity of
doing the DM'ing first.
I couldn't cleanly revert a commit to do this, as changes were spread
out over and included in multiple commits that also contained changes
not related to the `DM->apply infraction` order. | 
| | | | | | | | | | | | | | | | | | 
| | | | | | | | | | | | | | | | | 
| | | | | | | | | | | | | | | | | 
| | | | | | | | | | | | | | | | | 
| | | | | | | | | | | | | | | | | | This also changes a few aesthetic problems pointed out in review by
@MarkKoz and @kwzrd. | 
| | |\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \  
| | | |_|_|_|/ / / / / / / / / / /  
| | |/| | | | | | | | | | | | | | |  | 
| | | | | | | | | | | | | | | | | | 
| | | | | | | | | | | | | | | | | 
| | | | | | | | | | | | | | | | | 
| | | | | | | | | | | | | | | | | 
| | | | | | | | | | | | | | | | | | This de-clutters the main `server_info` function and improves its
readability. | 
| | | | | | | | | | | | | | | | | | 
| | | | | | | | | | | | | | | | | 
| | | | | | | | | | | | | | | | | 
| | | | | | | | | | | | | | | | | 
| | | | | | | | | | | | | | | | | 
| | | | | | | | | | | | | | | | | 
| | | | | | | | | | | | | | | | | 
| | | | | | | | | | | | | | | | | 
| | | | | | | | | | | | | | | | | 
| | | | | | | | | | | | | | | | | | Simplification comes from being able to access permissions as attributes
on the overwrite object. This removes the need to iterate all
permissions.
Efficiency comes from checking all roles within a single iteration of
all channels. This also removes the need to flatten and filter the
channels afterwards, which required additional iterations. | 
| | |\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ |  | 
| | | | | | | | | | | | | | | | | | | 
| | | | | | | | | | | | | | | | | | 
| | | | | | | | | | | | | | | | | | 
| | | | | | | | | | | | | | | | | | 
| | | | | | | | | | | | | | | | | | 
| | | | | | | | | | | | | | | | | | 
| | | | | | | | | | | | | | | | | | | We're using the set comprehension to prevent duplicates anyway, so
flipping these back makes more sense.
Also added a missing ctx and tested ok. | 
| | | | | | | | | | | | | | | | | | | 
| | | | | | | | | | | | | | | | | | 
| | | | | | | | | | | | | | | | | | 
| | | | | | | | | | | | | | | | | | 
| | | | | | | | | | | | | | | | | | 
| | | | | | | | | | | | | | | | | | 
| | | | | | | | | | | | | | | | | | 
| | | | | | | | | | | | | | | | | | 
| | | | | | | | | | | | | | | | | | 
| | | | | | | | | | | | | | | | | | | - We're using a set comprehension and flipping the order for counting
  the number of channels that are both staff allow and @everyone deny.
- We're breaking the staff channel count stuff into a separate helper
  function so it doesn't crowd the server_info() scope.
These fixes are both to address the code review from @MarkKoz, thanks
Mark. | 
| | | | | | | | | | | | | | | | | | | 
| | | | | | | | | | | | | | | | | | 
| | | | | | | | | | | | | | | | | | 
| | | | | | | | | | | | | | | | | | | I wish this test didn't exist. | 
| | | | | | | | | | | | | | | | | | | 
| | | | | | | | | | | | | | | | | | 
| | | | | | | | | | | | | | | | | | 
| | | | | | | | | | | | | | | | | | 
| | | | | | | | | | | | | | | | | | 
| | | | | | | | | | | | | | | | | | 
| | | | | | | | | | | | | | | | | | 
| | | | | | | | | | | | | | | | | | 
| | | | | | | | | | | | | | | | | | 
| | | | | | | | | | | | | | | | | | | We now check:
- Does the @everyone role have explicit read deny permissions?
- Do staff roles have explicit read allow permissions?
If the answer to both of these are yes, it's a staff channel.
By 'staff roles', I mean Helpers, Moderators or Admins. | 
| | |\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ |  | 
| | | | | | | | | | | | | | | | | | | | |  |