WIP: Add TTS cog #18
3 changed files with 76 additions and 0 deletions
5
tts/__init__.py
Normal file
5
tts/__init__.py
Normal file
|
@ -0,0 +1,5 @@
|
||||||
|
from .tts import TTS
|
||||||
|
|
||||||
|
|
||||||
|
async def setup(bot):
|
||||||
|
await bot.add_cog(TTS(bot))
|
18
tts/info.json
Normal file
18
tts/info.json
Normal file
|
@ -0,0 +1,18 @@
|
||||||
|
{
|
||||||
|
"author" : ["SeaswimmerTheFsh (seasw.)"],
|
||||||
|
"install_msg" : "Thank you for installing TTS!\nPlease read the [documentation](https://seacogs.coastalcommits.com/tts) for more information.\nYou can find the source code of this cog [here](https://coastalcommits.com/SeaswimmerTheFsh/SeaCogs).",
|
||||||
|
"name" : "TTS",
|
||||||
|
"short" : "Text to Speech through Pylav",
|
||||||
|
"description" : "Text to Speech through Pylav",
|
||||||
|
"end_user_data_statement" : "This cog does not store end user data.",
|
||||||
|
"hidden": false,
|
||||||
|
"disabled": false,
|
||||||
|
"min_bot_version": "3.5.0",
|
||||||
|
"min_python_version": [3, 10, 0],
|
||||||
|
"tags": [
|
||||||
|
"pylav",
|
||||||
|
"audio",
|
||||||
|
"tts"
|
||||||
|
],
|
||||||
|
"required_cogs": {"audio" : "https://github.com/PyLav/Red-Cogs"}
|
||||||
|
}
|
53
tts/tts.py
Normal file
53
tts/tts.py
Normal file
|
@ -0,0 +1,53 @@
|
||||||
|
# _____ _
|
||||||
|
# / ____| (_)
|
||||||
|
# | (___ ___ __ _ _____ ___ _ __ ___ _ __ ___ ___ _ __
|
||||||
|
# \___ \ / _ \/ _` / __\ \ /\ / / | '_ ` _ \| '_ ` _ \ / _ \ '__|
|
||||||
|
# ____) | __/ (_| \__ \\ 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
|
Loading…
Reference in a new issue