| Commit message (Collapse) | Author | Age | Lines | 
| |\  
| | 
| |  | 
Reduce log level of tag cooldown notice.
 | 
| |/   | 
 | 
| |\  
| | 
| |  | 
Refactor information.py with lots of changes that makes the overall code cleaner and faster
 | 
| | |\  
| |/  
|/|    | 
 | 
| |\ \  
| | | 
| | |  | 
Fix paginator erroring on clearing reactions from non-existing messages.
 | 
| | |\ \  
| |/ /  
|/| |    | 
 | 
| |\ \ \  
| | | | 
| | | | 
| | | | 
| | | |  | 
python-discord/optimize/pagination/emoji_collection_structure
Pagination migrations - Emoji Data Structure Modified
 | 
| | |\ \ \  
| |/ / /  
|/| | |    | 
 | 
| |\ \ \ \  
| | | | | 
| | | | |  | 
Don't log exception traceback on Forbidden for welcomes.
 | 
| |/ / / /   | 
 | 
| | | | |  | 
 | 
| | | | | 
| | | | 
| | | | 
| | | | 
| | | | 
| | | |  | 
Changed the pagination emoji collection from list to tuple
This change was suggested since this collection is constant
 | 
| | | | |  | 
 | 
| | |/ /  
|/| |    | 
 | 
| | | |  | 
 | 
| | | |  | 
 | 
| |\ \ \  
| | | | 
| | | |  | 
Add test cases for antispam rules, fix bug in attachments rule & test
 | 
| | |\ \ \  
| |/ / /  
|/| | |    | 
 | 
| |\ \ \ \  
| | | | | 
| | | | |  | 
Sentry SDK setup
 | 
| | | | | |  | 
 | 
| | | | | |  | 
 | 
| | | | | |  | 
 | 
| | | | | |  | 
 | 
| | | | | |  | 
 | 
| | | | | | 
| | | | | 
| | | | | 
| | | | |  | 
command context.
 | 
| | | | | |  | 
 | 
| | | | | |  | 
 | 
| |/ / / /   | 
 | 
| |\ \ \ \  
| | | | | 
| | | | |  | 
Refactor logging setup to be more explicit and cleaner.
 | 
| | | | | |  | 
 | 
| |/ / / /   | 
 | 
| |\ \ \ \  
| |_|/ /  
|/| | |    | 
Show created date and duration in expired infraction log
 | 
| | |\ \ \  
| |/ / /  
|/| | |    | 
 | 
| | | | | 
| | | | 
| | | | 
| | | | 
| | | | 
| | | | 
| | | | 
| | | |  | 
NGINX has been dockerised, and proxy passes now reference internal container domains rather than referencing host or external domains.
This will have a few extra benefits:
 - Less external factors involved for resolving the service address
 - Can work with the same address on development envs
 - Snekbox can be closed down entirely so it's inaccessible from external networks.
 | 
| | | | |  | 
 | 
| | | | |  | 
 | 
| | | | | 
| | | | 
| | | | 
| | | | 
| | | |  | 
The bot user was always being used instead of using the actor field
of the infraction.
 | 
| | | | | 
| | | | 
| | | | 
| | | |  | 
Closes #685
 | 
| |/ / /  
| | |   
| | |   
| | |   
| | |   
| | |   
| | |   
| | |   
| | |    | 
The absolute value is useful for preventing negative values in the case
that date_to is in the past relative to date_from.
* Add an absolute parameter to take the absolute value of the duration
* Rename expiry to date_to
* Rewrite the docstring
 | 
| |\ \ \  
| | | | 
| | | |  | 
Stop scheduling expiration of permanent infractions on edit
 | 
| |/ / /  
| | |   
| | |   
| | |   
| | |   
| | |   
| | |   
| | |   
| | |   
| | |   
| | |   
| | |   
| | |   
| | |   
| | |   
| | |   
| | |   
| | |   
| | |   
| | |   
| | |   
| | |   
| | |   
| | |   
| | |    | 
https://github.com/python-discord/bot/issues/751
The infraction edit command defined in `bot.cogs.moderation.management` contained a bug causing it to attempt to schedule an expiration task when turning a temporary infraction into a permanent infraction. Since the "expires_at" field of a permanent infractions is `None`, this caused an exception to occur in the scheduler:
Traceback (most recent call last):
  File "/bot/bot/cogs/moderation/scheduler.py", line 415, in _scheduled_task
    expiry = dateutil.parser.isoparse(infraction["expires_at"]).replace(tzinfo=None)
  File "/usr/local/lib/python3.7/site-packages/dateutil/parser/isoparser.py", line 37, in func
    return f(self, str_in, *args, **kwargs)
  File "/usr/local/lib/python3.7/site-packages/dateutil/parser/isoparser.py", line 134, in isoparse
    components, pos = self._parse_isodate(dt_str)
  File "/usr/local/lib/python3.7/site-packages/dateutil/parser/isoparser.py", line 208, in _parse_isodate
    return self._parse_isodate_common(dt_str)
  File "/usr/local/lib/python3.7/site-packages/dateutil/parser/isoparser.py", line 213, in _parse_isodate_common
    len_str = len(dt_str)
TypeError: object of type 'NoneType' has no len()
I have solved this by adding a check that makes sure we only schedule an expiration task when the `"expires_at"` field has a truthy value (which all valid datetime strings are) using `if request_data['expires_at']`.
IMPORTANT NOTE: While it's tempting to just skip the entire scheduling block for permanent infractions, it's essential to unschedule existing expiration tasks for this infraction as we're changing a temporary infraction to a permanent infraction.
This commit closes #751
 | 
| |\ \ \  
| | | | 
| | | |  | 
Fix pagniation module for "last page" reaction
 | 
| |/ / /  
| | |   
| | |   
| | |    | 
Fixes #746.
 | 
| |\ \ \  
| | | | 
| | | |  | 
Separate message/embed deletion and reaction deletion emojis
 | 
| | | | | 
| | | | 
| | | | 
| | | | 
| | | |  | 
It could be confused with the delete reaction. Clearing reactions
manually is rarely a useful feature anyway.
 | 
| | |\ \ \  
| |/ / /  
|/| | |    | 
 | 
| |\ \ \ \  
| | | | | 
| | | | |  | 
Update discord.py to 1.3.1
 | 
| | | | | |  | 
 | 
| |/ / / /   | 
 | 
| |\ \ \ \  
| | | | | 
| | | | |  | 
Make it easier for user to search for tags
 |