# _____ _ # / ____| (_) # | (___ ___ __ _ _____ ___ _ __ ___ _ __ ___ ___ _ __ # \___ \ / _ \/ _` / __\ \ /\ / / | '_ ` _ \| '_ ` _ \ / _ \ '__| # ____) | __/ (_| \__ \\ V V /| | | | | | | | | | | | __/ | # |_____/ \___|\__,_|___/ \_/\_/ |_|_| |_| |_|_| |_| |_|\___|_| import logging from discord import Message from discord.ext import tasks from redbot.core import Config, commands from redbot.core.bot import Red class TTS(commands.Cog): """Text to Speech through Pylav""" def __init__(self, bot: Red): self.bot = bot self.logger = logging.getLogger("red.sea.tts") self.config = Config.get_conf(self, 69737245070283, force_registration=True) self.config.register_global( use_google_tts = False, ) self.config.register_guild( enabled_channels = [], announce = False, voice_channels = True ) self.check_pylav.start() @tasks.loop(seconds=5) async def check_pylav(self): await self.bot.wait_until_red_ready() pylav = self.bot.get_cog("PyLavPlayer") self.check_pylav.stop() if pylav is None: self.bot.remove_cog("TTS") raise RuntimeError("You need to install PyLav to use this cog. See https://github.com/PyLav/Red-Cogs") async def on_message(self, message: Message): if message.author.bot: return if message.guild is None: return valid_prefixes = await self.bot.get_valid_prefixes(message.guild) valid_prefixes.append("\\") if any(message.content.startswith(prefix) for prefix in valid_prefixes): return if message.channel.id in await self.config.guild(message.guild).enabled_channels(): #TODO - add PyLav integration return