aboutsummaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeLines
...
| * | | | | | | | | | | | Slowmode reset now uses slowmode setGravatar mbaruh2021-01-21-10/+1
| | | | | | | | | | | | |
| | * | | | | | | | | | | Set asyncio logger level to INFOGravatar MarkKoz2021-01-04-0/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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.
| | * | | | | | | | | | | HelpChannels: fix unclaim exiting too early if claimant is NoneGravatar MarkKoz2021-01-04-4/+2
| | | | | | | | | | | | |
| | * | | | | | | | | | | HelpChannels: fix manual use of lock decoratorGravatar MarkKoz2021-01-04-3/+3
| | | | | | | | | | | | |
| | * | | | | | | | | | | HelpChannels: fix race condition when unclaiming a channelGravatar MarkKoz2021-01-04-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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
| | * | | | | | | | | | | HelpChannels: change caller str parameter to a boolGravatar MarkKoz2021-01-04-11/+12
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Booleans are less error-prone than strings.
| | * | | | | | | | | | | HelpChannels: unschedule the dormant task in unclaim_channelGravatar MarkKoz2021-01-04-2/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Ensure the cancellation will be under the lock once the lock is added.
| | * | | | | | | | | | | HelpChannels: clarify close command docstringGravatar MarkKoz2021-01-04-2/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Referencing internal functions in public-facing documentation is not helpful to users.
| | * | | | | | | | | | | HelpChannels: refactor the close command checkGravatar MarkKoz2021-01-04-10/+10
| | | | | | | | | | | | |
| | * | | | | | | | | | | HelpChannels: make a channel available within the lockGravatar MarkKoz2021-01-04-5/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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.
| | * | | | | | | | | | | Add asyncio.create_task wrapper which logs exceptionsGravatar MarkKoz2021-01-04-0/+17
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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.
| | * | | | | | | | | | | HelpChannels: fix race condition between claiming and unclaimingGravatar MarkKoz2021-01-04-1/+15
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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.
| | * | | | | | | | | | | Lock: support waiting until a lock is availableGravatar MarkKoz2021-01-04-37/+25
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | It's been determined that asyncio.Lock is safe to use in such manner. Therefore, replace LockGuard entirely with asyncio.Lock.
| | * | | | | | | | | | | HelpChannels: refactor channel unclaimingGravatar MarkKoz2021-01-04-20/+19
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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.
| | * | | | | | | | | | | HelpChannels: remove obsolete channel position trace logGravatar MarkKoz2021-01-04-1/+0
| | | | | | | | | | | | |
| | * | | | | | | | | | | HelpChannels: refactor stat trackingGravatar MarkKoz2021-01-04-27/+47
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Move significant code related to stats to a separate module.
| | * | | | | | | | | | | HelpChannels: move function to the channel moduleGravatar MarkKoz2021-01-04-42/+45
| | | | | | | | | | | | |
| | * | | | | | | | | | | HelpChannels: prevent user from claiming multiple channels quicklyGravatar MarkKoz2021-01-04-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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.
| | * | | | | | | | | | | HelpChannels: await init task at the start of event listenersGravatar MarkKoz2021-01-04-4/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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.
| | * | | | | | | | | | | HelpChannels: use a more accurate lock for messagesGravatar MarkKoz2021-01-04-47/+35
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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.
| | | | * | | | | | | | | Handle unloaded cogs when retrieving server info.Gravatar kosayoda2021-01-23-9/+16
| | | | | | | | | | | | |
| | | | * | | | | | | | | Reduce unnecessary line splits and parameters.Gravatar kosayoda2021-01-23-12/+6
| | | | | | | | | | | | |
| | | | * | | | | | | | | Use helper function to determine mod channel.Gravatar kosayoda2021-01-23-1/+1
| | | | | | | | | | | | |
| | | | * | | | | | | | | Extract `is_staff_channel` to a utility function.Gravatar kosayoda2021-01-23-18/+19
| | | | | | | | | | | | |
| | | | * | | | | | | | | Merge branch 'master' into feat/info/server-cmd-enhancementsGravatar Xithrius2021-01-19-55/+970
| | | | |\ \ \ \ \ \ \ \ \
| | | | * | | | | | | | | | Remove unverified member information.Gravatar kosayoda2021-01-15-4/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | We do not have the Developers role anymore, so there's no such thing as verified/unverified members.
| | | | * | | | | | | | | | Merge branch 'master' into feat/info/server-cmd-enhancementsGravatar kosayoda2021-01-15-2854/+3003
| | | | |\ \ \ \ \ \ \ \ \ \ | | | | | | |_|_|/ / / / / / | | | | | |/| | | | | | | |
| | | | * | | | | | | | | | Update !server with discord 1.5 presence changes.Gravatar kosayoda2020-10-25-3833/+4051
| | | | |\ \ \ \ \ \ \ \ \ \
| | | | * | | | | | | | | | | Update relevant channels for features.Gravatar kosayoda2020-09-23-1/+1
| | | | | | | | | | | | | | |
| | | | * | | | | | | | | | | Only show server features in certain channels.Gravatar kosayoda2020-09-23-4/+9
| | | | | | | | | | | | | | |
| | | | * | | | | | | | | | | Add owners count to server embedGravatar kosayoda2020-09-23-2/+3
| | | | | | | | | | | | | | |
| | | | * | | | | | | | | | | Move number of roles to embed description.Gravatar kosayoda2020-09-23-6/+6
| | | | | | | | | | | | | | |
| | | | * | | | | | | | | | | Add extended information to !server.Gravatar kosayoda2020-09-21-6/+33
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Includes useful information like the number of nominated/watched members, number of unverified members, defcon status etc. Will not show up if the command is ran outside of a moderation channel.
| | | | * | | | | | | | | | | Add more role information to server embed.Gravatar kosayoda2020-09-21-12/+35
| | | | | | | | | | | | | | |
| | | | * | | | | | | | | | | Move member count to embed field.Gravatar kosayoda2020-09-21-15/+20
| | | | | | | | | | | | | | |
| | | | * | | | | | | | | | | Simplify channel counting.Gravatar kosayoda2020-09-21-55/+38
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Rather than do two passes over the channels, a single loop is used to collect all the channel counts into a single dictionary. The get_channel_type_counts method now returns a dictionary of channel to count, allowing the caller liberty to format the values.
| | | | * | | | | | | | | | | Move member status information to embed field.Gravatar kosayoda2020-09-21-17/+21
| | | | | | | | | | | | | | |
| | | | * | | | | | | | | | | Move Channels information to embed field.Gravatar kosayoda2020-09-21-22/+26
| | | | | | | | | | | | | | |
| | | | | | | | * | | | | | | Reorganizes constants.pyGravatar Hassan Abouelela2021-01-24-98/+111
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Mirrors the changes from config-default.yml to constants.py.
| | | | | | | | * | | | | | | Reorganizes ConfigGravatar Hassan Abouelela2021-01-24-92/+90
| |_|_|_|_|_|_|/ / / / / / / |/| | | | | | | | | | | | |
* | | | | | | | | | | | | | Merge PR #1202 - fuzzy match the role commandGravatar Mark2021-01-20-9/+16
|\ \ \ \ \ \ \ \ \ \ \ \ \ \ | |/ / / / / / / / / / / / / |/| | | | | | | | | | | | |
| * | | | | | | | | | | | | Merge branch 'master' into fuzz-the-matchesGravatar Mark2021-01-20-59/+987
| |\ \ \ \ \ \ \ \ \ \ \ \ \ | |/ / / / / / / / / / / / / |/| | | | | | | | | | | | |
* | | | | | | | | | | | | | Prevent bot from sending DMs to itselfGravatar Joe Banks2021-01-20-0/+4
| |_|_|_|_|_|_|_|/ / / / / |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Fixes BOT-KX
| * | | | | | | | | | | | Merge branch 'master' into fuzz-the-matchesGravatar kosayoda2021-01-18-3410/+4835
| |\ \ \ \ \ \ \ \ \ \ \ \ | | | |_|_|_|/ / / / / / / | | |/| | | | | | | | | |
| * | | | | | | | | | | | Merge branch 'master' into fuzz-the-matchesGravatar Leon Sandøy2020-10-10-615/+695
| |\ \ \ \ \ \ \ \ \ \ \ \
| * | | | | | | | | | | | | Avoid duplicate roles.Gravatar kosayoda2020-10-01-5/+5
| | | | | | | | | | | | | |
| * | | | | | | | | | | | | Use basic scorer to fuzz a bit stricter.Gravatar kosayoda2020-10-01-1/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This prevents weird fuzz matches like `!role a b c d` working.
| * | | | | | | | | | | | | Fuzzy match roles for `!role` command.Gravatar kosayoda2020-10-01-4/+8
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | An arbitrary cutoff score of 80 is chosen because it works. A bug in the test for the same command is also fixed.
| | | | | | | | | * | | | | Update `is_helper_viewable` checkGravatar Anand Krishna2021-01-25-2/+2
| | | | | | | | | | | | | |
| | | | | | | | | * | | | | Do `is_helper_viewable` check before fetching messageGravatar Anand Krishna2021-01-22-3/+3
| | | | | | | | | | | | | |