Moueggi is a Discord bot used to record voice chats, and send the audio to the Shush API for further processing and analysis.
Because one Discord bot can join only one voice chat, we need a “flock” of bots in order to record several voice chats.
How it works
The flock of Moueggi get notified when a user joins, leaves or changes voice channel.
If 2 or more users join a voice channel, one Moueggi bot is selected (by a rule shared by the whole flock), joins the voice channel, and records the conversation between users.
If a user leave a voice channel and there is less than 2 users in the channel, the bot leave the channel as well (and therefore stops recording).
Ping the bots to see which one is alive.
Bots that are alive will react with ✔️ to the message.
!moueggi threshold <x>
Set the user threshold to x (you can specify any number above 0).
The threshold is the minimum number of users needed in a voice channel before a bot is required to join.
By default, this threshold is 2. Which means that if there is only one user in a voice channel, no bot will join the channel. As soon as a second user join the voice channel, a bot will join as well.
Bots that successfully updated their threshold will react with ✔️ to the message. If the argument is invalid (not a number for example), bots will react with ❓ to the message.
!moueggi status <@MoueggiX>
Get the current status of the mentioned bot.
The status of a bot can be useful to understand what’s going on.
If you don’t mention any bot, all bots will respond with their status (be careful, if there are a lot of bots, it will make a lot of messages). Be sure to mention to right bot !
Lock specific channel
!moueggi lock <channel_name>
Lock the channel specified in the command. Bots will never entered a locked channel.
This command can be used to whitelist channels that don’t require moderation (for example admin voice channels).
Bots that successfully whitelist the channel will react with ✔️ to the message. If the argument is invalid (not the name of an existing voice channel for example), bots will react with ❓ to the message.
Unlock specific channel
!moueggi unlock <channel_name>
Unlock the channel specified in the command. Basically the opposite of the lock command.
If you type an unknown command (or the arguments are wrong), the bots will react with ❓ to the message.
The bot can work only on 1 server at a time.
This is not an issue since the bot will be dedicated to the server of our client.
Small delay when bot disconnect
When one of the bot of the flock is removed, its presence status (online, offline, etc...) is not updated instantly by Discord. It takes a small delay (like 5 minutes) before being updated.
During this small windows of time, other bots see the disconnected bot as online. Which means some events may be assigned to the disconnected bot.
Fortunately, events are not assigned to a single bot. A backup bot will wait a small delay (3 seconds currently), and if the main bot didn’t join the channel, the backup bot will join instead.