| Commit message (Collapse) | Author | Age | Lines | 
| ...                                        |  | 
| |/ / / / / / / / / / / / / / / / / / / /  
| | | | | | | | | | | | | | | | | | | |   
| | | | | | | | | | | | | | | | | | | |   
| | | | | | | | | | | | | | | | | | | |   
| | | | | | | | | | | | | | | | | | | |    | 
RotatingFileHandler appends .# to log names when rolling over to a new
file.
 | 
| |\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \  
| | | | | | | | | | | | | | | | | | | | | 
| | | | | | | | | | | | | | | | | | | | |  | 
Improvements for the rules command
 | 
| | | | | | | | | | | | | | | | | | | | | | 
| | | | | | | | | | | | | | | | | | | | | 
| | | | | | | | | | | | | | | | | | | | | 
| | | | | | | | | | | | | | | | | | | | | 
| | | | | | | | | | | | | | | | | | | | |  | 
This is to avoid sorting twice - once for invalid indices and again
for send the rules.
 | 
| | | | | | | | | | | | | | | | | | | | | |  | 
 | 
| | | | | | | | | | | | | | | | | | | | | |  | 
 | 
| | | | | | | | | | | | | | | | | | | | | |  | 
 | 
| | | |_|_|_|_|_|_|_|_|_|_|_|/ / / / / / /  
| |/| | | | | | | | | | | | | | | | | |    | 
 | 
| | | | | |\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \  
| |_|_|_|/ / / / / / / / / / / / / / / /  
|/| | | | | | | | | | | | | | | | | | |    | 
 | 
| | | | | | | | | | | | | | | | | | | | |  | 
 | 
| | | | | | | | | | | | | | | | | | | | |  | 
 | 
| | | | |\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \  
| |_|_|/ / / / / / / / / / / / / / / / /  
|/| | | / / / / / / / / / / / / / / / /   
| | | |/ / / / / / / / / / / / / / / /     | 
 | 
| |\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \  
| |/ / / / / / / / / / / / / / / / / /  
|/| | | | | | | | | | | | | | | | | |    | 
 | 
| | | | | | | | | | | | | | | | | | | |  | 
 | 
| | | | | | | | | | | | | | | | | | | |  | 
 | 
| | |\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \   | 
 | 
| | | | | | | | | | | | | | | | | | | | |  | 
 | 
| | | | | | | | | | | | | | | | | | | | |  | 
 | 
| | | | | | | | | | | | | | | | | | | | |  | 
 | 
| | | | | | | | | | | | | | | | | | | | | 
| | | | | | | | | | | | | | | | | | | | 
| | | | | | | | | | | | | | | | | | | | 
| | | | | | | | | | | | | | | | | | | |  | 
Testing `information` cog seems redutant as it is not too important part of the bot.
 | 
| | | | | | | | | | | | | | | | | | | | |  | 
 | 
| | | | | | | | | | | | | | | | | | | | |  | 
 | 
| | | | | | | | | | | | | | | | | | | | |  | 
 | 
| | | | | | | | | | | | | | | | | | | | | 
| | | | | | | | | | | | | | | | | | | | 
| | | | | | | | | | | | | | | | | | | | 
| | | | | | | | | | | | | | | | | | | |  | 
This also removes a duplicate 'discord' entry from the lockfile.
 | 
| |\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \  
| |_|/ / / / / / / / / / / / / / / / / /  
|/| | | | | | | | | | | | | | | | | | |    | 
Fix reminders sending duplicate DELETE request and cancelling themselves
 | 
| | |\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \  
| |/ / / / / / / / / / / / / / / / / / /  
|/| | | | | | | | | | | | | | | | | | |   
| | | | | | | | | | | | | | | | | | | |    | 
bug/util/795/reminders-dupe-delete
 | 
| |\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \  
| | | | | | | | | | | | | | | | | | | | | 
| | | | | | | | | | | | | | | | | | | | |  | 
Add a socket stats command
 | 
| | | | | | | | | | | | | | | | | | | | | |  | 
 | 
| |/ / / / / / / / / / / / / / / / / / / /   | 
 | 
| |\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \  
| | | | | | | | | | | | | | | | | | | | | 
| | | | | | | | | | | | | | | | | | | | |  | 
Fix typos in docstrings and comments
 | 
| | |\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \  
| |/ / / / / / / / / / / / / / / / / / / /  
|/| | | | | | | | | | | | | | | | | | | |    | 
 | 
| |\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \  
| |_|_|_|/ / / / / / / / / / / / / / / / /  
|/| | | | | | | | | | | | | | | | | | | |    | 
Reminder: no feedback message when no mention is used
 | 
| | | | | | | | | | | | | | | | | | | | | |  | 
 | 
| | | | | | | | | | | | | | | | | | | | | |  | 
 | 
| | | |\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \  
| | | | | | | | | | | | | | | | | | | | | | 
| | | | | | | | | | | | | | | | | | | | | |  | 
merge back new changes
 | 
| | | | |_|/ / / / / / / / / / / / / / / / /  
| | |/| | | | | | | | | | | | | | | | | |    | 
 | 
| | | | | | | | | | | | | | | | | | | | | |  | 
 | 
| | | | | | | | | | | | | | | | | | | | | |  | 
 | 
| | | | | |\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \  
| | | | | | |_|_|_|_|_|/ / / / / / / / / /  
| | | | | |/| | | | | | | | | | | | | | |    | 
 | 
| | | | | | | | | | | | | | | | | | | | | |  | 
 | 
| | | | | | | | | | | | | | | | | | | | | | 
| | | | | | | | | | | | | | | | | | | | | 
| | | | | | | | | | | | | | | | | | | | | 
| | | | | | | | | | | | | | | | | | | | | 
| | | | | | | | | | | | | | | | | | | | |  | 
`LockGuard` was lonely and the decorators were cluttering up
decorators.py.
 | 
| | | | | | | | | | | | | | | | | | | | | | 
| | | | | | | | | | | | | | | | | | | | | 
| | | | | | | | | | | | | | | | | | | | | 
| | | | | | | | | | | | | | | | | | | | | 
| | | | | | | | | | | | | | | | | | | | |  | 
A mutex is the same thing as a lock. The former is a relatively esoteric
contraction, so the latter is preferred.
 | 
| | | | | | | | | | | | | | | | | | | | | | 
| | | | | | | | | | | | | | | | | | | | | 
| | | | | | | | | | | | | | | | | | | | | 
| | | | | | | | | | | | | | | | | | | | |  | 
It was not being used anywhere.
 | 
| | | | | | | | | | | | | | | | | | | | | | 
| | | | | | | | | | | | | | | | | | | | | 
| | | | | | | | | | | | | | | | | | | | | 
| | | | | | | | | | | | | | | | | | | | | 
| | | | | | | | | | | | | | | | | | | | | 
| | | | | | | | | | | | | | | | | | | | | 
| | | | | | | | | | | | | | | | | | | | | 
| | | | | | | | | | | | | | | | | | | | | 
| | | | | | | | | | | | | | | | | | | | | 
| | | | | | | | | | | | | | | | | | | | | 
| | | | | | | | | | | | | | | | | | | | |  | 
Concerns were raised over possible race conditions due `asyncio.Lock`
internally awaiting coroutines. Does a mere `await` suspend the current
coroutine, or does it have to actually await something asynchronous,
like a future?
Avoid answering that question by doing away with the awaits, which
aren't necessary but are there as a consequence of using `asyncio.Lock`.
Instead, add a custom `LockGuard` object to replace the previous locks.
 | 
| | | | | | | | | | | | | | | | | | | | | | 
| | | | | | | | | | | | | | | | | | | | | 
| | | | | | | | | | | | | | | | | | | | | 
| | | | | | | | | | | | | | | | | | | | |  | 
Clarify the significance of the argument being passed.
 | 
| | | | | | | | | | | | | | | | | | | | | | 
| | | | | | | | | | | | | | | | | | | | | 
| | | | | | | | | | | | | | | | | | | | | 
| | | | | | | | | | | | | | | | | | | | | 
| | | | | | | | | | | | | | | | | | | | |  | 
The annotation was previously changed on the basis of an incorrect
return annotation PyCharm inferred for `check()`.
 | 
| | | | | | | | | | | | | | | | | | | | | | 
| | | | | | | | | | | | | | | | | | | | | 
| | | | | | | | | | | | | | | | | | | | | 
| | | | | | | | | | | | | | | | | | | | | 
| | | | | | | | | | | | | | | | | | | | |  | 
The exception it raises reads better if the singular form of the word
is used.
 | 
| | | | | | | | | | | | | | | | | | | | | | 
| | | | | | | | | | | | | | | | | | | | | 
| | | | | | | | | | | | | | | | | | | | | 
| | | | | | | | | | | | | | | | | | | | | 
| | | | | | | | | | | | | | | | | | | | |  | 
Silent failure is confusing to users. Showing an error message clears up
why nothing happened with their command.
 | 
| | | | | | | | | | | | | | | | | | | | | |  | 
 | 
| | | | | | | | | | | | | | | | | | | | | | 
| | | | | | | | | | | | | | | | | | | | | 
| | | | | | | | | | | | | | | | | | | | | 
| | | | | | | | | | | | | | | | | | | | | 
| | | | | | | | | | | | | | | | | | | | |  | 
The exception will facilitate user feedback for commands which use the
decorator.
 | 
| | | | | | | | | | | | | | | | | | | | | |  | 
 |