|  | Commit message (Collapse) | Author | Age | Lines | 
|---|
| ... |  | 
| | | | | | | | | | 
| | | | | | | | | 
| | | | | | | | | 
| | | | | | | | | 
| | | | | | | | | 
| | | | | | | | | | If asyncio's debug mode is enabled, the asyncio logger's level gets set
to DEBUG. While other features of the debug mode are useful, the DEBUG
log level spams generally irrelevant stuff. | 
| | | | | | | | | | |  | 
| | | | | | | | | | |  | 
| | | | | | | | | | 
| | | | | | | | | 
| | | | | | | | | 
| | | | | | | | | 
| | | | | | | | | 
| | | | | | | | | 
| | | | | | | | | 
| | | | | | | | | | Place a channel-specific lock on `unclaim_channel`. If both the dormant
task and the command simultaneously unclaim a channel, one of them will
silently be aborted.
Fix #1341 | 
| | | | | | | | | | 
| | | | | | | | | 
| | | | | | | | | 
| | | | | | | | | | Booleans are less error-prone than strings. | 
| | | | | | | | | | 
| | | | | | | | | 
| | | | | | | | | 
| | | | | | | | | | Ensure the cancellation will be under the lock once the lock is added. | 
| | | | | | | | | | 
| | | | | | | | | 
| | | | | | | | | 
| | | | | | | | | 
| | | | | | | | | | Referencing internal functions in public-facing documentation is not
helpful to users. | 
| | | | | | | | | | |  | 
| | | | | | | | | | 
| | | | | | | | | 
| | | | | | | | | 
| | | | | | | | | 
| | | | | | | | | 
| | | | | | | | | 
| | | | | | | | | 
| | | | | | | | | | If the lock causes the function to abort, a new channel shouldn't be
made available. However, the only way to know it's aborted from the
outside would be through a return value or global variable. Neither seem
as nice as just just using `create_task` within the lock to avoid
having `move_to_available` hold the lock. | 
| | | | | | | | | | 
| | | | | | | | | 
| | | | | | | | | 
| | | | | | | | | 
| | | | | | | | | 
| | | | | | | | | | Normally exceptions are only logged when tasks are garbage collected.
This wrapper will allow them to be logged immediately through a done
callback. This is similar to how the Scheduler logs errors. | 
| | | | | | | | | | 
| | | | | | | | | 
| | | | | | | | | 
| | | | | | | | | 
| | | | | | | | | 
| | | | | | | | | 
| | | | | | | | | 
| | | | | | | | | 
| | | | | | | | | 
| | | | | | | | | | The race condition is when a user claims a channel while their other
channel is being unclaimed. Specifically, it's while their cooldown is
being removed.
The lock ensures that either the cooldown will be re-applied after it's
removed or that it won't be removed since `unclaim_channel` will see the
user has another claimed channel. | 
| | | | | | | | | | 
| | | | | | | | | 
| | | | | | | | | 
| | | | | | | | | 
| | | | | | | | | | It's been determined that asyncio.Lock is safe to use in such manner.
Therefore, replace LockGuard entirely with asyncio.Lock. | 
| | | | | | | | | | 
| | | | | | | | | 
| | | | | | | | | 
| | | | | | | | | 
| | | | | | | | | 
| | | | | | | | | | Narrow the scope of `move_to_dormant` to just moving the channel.
Following the design of `claim_channel`, make `unclaim_channel` handle
cooldowns and unpinning. | 
| | | | | | | | | | |  | 
| | | | | | | | | | 
| | | | | | | | | 
| | | | | | | | | 
| | | | | | | | | | Move significant code related to stats to a separate module. | 
| | | | | | | | | | |  | 
| | | | | | | | | | 
| | | | | | | | | 
| | | | | | | | | 
| | | | | | | | | 
| | | | | | | | | 
| | | | | | | | | 
| | | | | | | | | 
| | | | | | | | | 
| | | | | | | | | | It's conceivable for a user to be able to quickly send a message in all
available channels before the code has a chance to add the cooldown
role.
Place a lock on the author to prevent the claim code from running
multiple times for the same user. | 
| | | | | | | | | | 
| | | | | | | | | 
| | | | | | | | | 
| | | | | | | | | 
| | | | | | | | | 
| | | | | | | | | | It feels safer to do this since the init task moves channels to
different categories and the listeners check if channels are in certain
categories. | 
| | | | | | | | | | 
| | | | | | | | | 
| | | | | | | | | 
| | | | | | | | | 
| | | | | | | | | 
| | | | | | | | | 
| | | | | | | | | | Use the `lock_arg` decorator to keep a separate lock for each channel
rather than a single lock used by all messages. Separate the core logic
in `on_message` into a separate function to facilitate the use of
`lock_arg` - not everything in `on_message` needs to be under the lock. | 
| | | | | | | | | | |  | 
| | | | | | | | | | |  | 
| | | | | | | | | | |  | 
| | | | | | | | | | |  | 
| | | | | | | | | |\  
| |_|_|_|_|_|_|_|/  
|/| | | | | | | | |  | 
| |\ \ \ \ \ \ \ \ \  
| | | | | | | | | | 
| | | | | | | | | | | Remove additional embed message | 
| |/ / / / / / / / / |  | 
| | | | | | | | | | 
| | | | | | | | | 
| | | | | | | | | 
| | | | | | | | | 
| | | | | | | | | | in_whitelist allow normal users also run commands in bot commands,
but branding commands should be mod+ only, so we need to use
has_any_role instead from discord.py. | 
| |\ \ \ \ \ \ \ \ \  
| | | | | | | | | | 
| | | | | | | | | | 
| | | | | | | | | | 
| | | | | | | | | | | python-discord/bug/backend/bot-4x/chunk-sync-requests
Sync: chunk user requests | 
| | | | | | | | | | | |  | 
| |/ / / / / / / / /  
| | | | | | | | |   
| | | | | | | | |   
| | | | | | | | |   
| | | | | | | | |   
| | | | | | | | |   
| | | | | | | | | | The site can't handle huge syncs. Even a bulk patch of 10k users will
crash the service. Chunk the requests into groups of 1000 users and
await them sequentially. Testing showed that concurrent requests
are not scalable and would also crash the service. | 
| |\ \ \ \ \ \ \ \ \ |  | 
| | |\ \ \ \ \ \ \ \ \  
| |/ / / / / / / / /  
|/| | | | | | | | | |  | 
| | | | | | | | | | | 
| | | | | | | | | | 
| | | | | | | | | | | Whitelisted mod_meta and mod_tools as mod channels | 
| |\ \ \ \ \ \ \ \ \ \  
| | | | | | | | | | | 
| | | | | | | | | | | | Fix ZeroDivisionError In Error Handler | 
| |/ / / / / / / / / / |  | 
| | |\ \ \ \ \ \ \ \ \  
| |/ / / / / / / / /  
|/| | | | | | | | | |  | 
| |\ \ \ \ \ \ \ \ \ \  
| | | | | | | | | | | 
| | | | | | | | | | | | Fixes Error Handler Tag Dispatching | 
| | | | | | | | | | | | |  | 
| |/ / / / / / / / / / |  | 
| | | | | | | | | | | |  | 
| |\ \ \ \ \ \ \ \ \ \  
| | | | | | | | | | | 
| | | | | | | | | | | | Feature: suggest command usage for misspelt commands | 
| | | | | | | | | | | | |  | 
| | |\ \ \ \ \ \ \ \ \ \  
| |/ / / / / / / / / /  
|/| | | | | | | | | | |  | 
| |\ \ \ \ \ \ \ \ \ \ \  
| |_|_|_|_|_|_|/ / / /  
|/| | | | | | | | | | | Remove unwatch reason from the !nominate output | 
| |/ / / / / / / / / /  
| | | | | | | | | |   
| | | | | | | | | |   
| | | | | | | | | | | As the watch reason can contain private information, we shouldn't share it with the whole staff. | 
| | | | | | | | | | | |  | 
| | | | | | | | | | | |  | 
| | | | | | | | | | | |  | 
| | |\ \ \ \ \ \ \ \ \  
| | | |_|_|_|_|_|/ /  
| | |/| | | | | | |   
| | | | | | | | | | | Since the cogs folder has been removed, the error_handler and tag cogs had to be removed and transfer into their respective places in the exts folder. | 
| | |\ \ \ \ \ \ \ \ \  
| | | | | | | | | | | 
| | | | | | | | | | | 
| | | | | | | | | | | | https://github.com/python-discord/bot into feat/F4zi/CommandSuggestion |