aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGravatar Hassan Abouelela <[email protected]>2020-12-01 10:17:55 +0300
committerGravatar Hassan Abouelela <[email protected]>2020-12-01 10:17:55 +0300
commit301978174cac156282b89fe6e749edc611824b8d (patch)
tree6e5076d33ec84b247befb0218bac57ab029be522
parentMerge branch 'master' into voicechannel-mute (diff)
Improves Voice Chat Matching
Changes the way voice channels are matched with chat channels, to make it less hardcoded. Signed-off-by: Hassan Abouelela <[email protected]>
-rw-r--r--bot/exts/moderation/silence.py24
1 files changed, 9 insertions, 15 deletions
diff --git a/bot/exts/moderation/silence.py b/bot/exts/moderation/silence.py
index 45c3f5b92..4cc89827f 100644
--- a/bot/exts/moderation/silence.py
+++ b/bot/exts/moderation/silence.py
@@ -33,6 +33,13 @@ MSG_UNSILENCE_SUCCESS = f"{constants.Emojis.check_mark} unsilenced current chann
TextOrVoiceChannel = Union[TextChannel, VoiceChannel]
+VOICE_CHANNELS = {
+ constants.Channels.code_help_voice_1: constants.Channels.code_help_chat_1,
+ constants.Channels.code_help_voice_2: constants.Channels.code_help_chat_2,
+ constants.Channels.general_voice: constants.Channels.voice_chat,
+ constants.Channels.staff_voice: constants.Channels.staff_voice_chat,
+}
+
class SilenceNotifier(tasks.Loop):
"""Loop notifier for posting notices to `alert_channel` containing added channels."""
@@ -106,20 +113,6 @@ class Silence(commands.Cog):
self.notifier = SilenceNotifier(self.bot.get_channel(constants.Channels.mod_log))
await self._reschedule()
- async def _get_related_text_channel(self, channel: VoiceChannel) -> Optional[TextChannel]:
- """Returns the text channel related to a voice channel."""
- # TODO: Figure out a dynamic way of doing this
- channels = {
- "off-topic": constants.Channels.voice_chat,
- "code/help 1": constants.Channels.code_help_voice,
- "code/help 2": constants.Channels.code_help_voice_2,
- "admin": constants.Channels.admins_voice,
- "staff": constants.Channels.staff_voice
- }
- for name in channels.keys():
- if name in channel.name.lower():
- return self.bot.get_channel(channels[name])
-
async def send_message(
self,
message: str,
@@ -137,9 +130,10 @@ class Silence(commands.Cog):
# Reply to target channel
if alert_target:
if isinstance(target_channel, VoiceChannel):
- voice_chat = await self._get_related_text_channel(target_channel)
+ voice_chat = self.bot.get_channel(VOICE_CHANNELS.get(target_channel.id))
if voice_chat and source_channel != voice_chat:
await voice_chat.send(message.replace("current channel", target_channel.mention))
+
elif source_channel != target_channel:
await target_channel.send(message)