add text to speech command

This commit is contained in:
EEKIM10 2023-03-16 21:45:01 +00:00
parent 90dda967bc
commit a12de9c139
3 changed files with 38 additions and 4 deletions

View file

@ -6,6 +6,7 @@ import re
import tempfile import tempfile
import textwrap import textwrap
from datetime import timedelta from datetime import timedelta
from io import BytesIO
import dns.resolver import dns.resolver
from dns import asyncresolver from dns import asyncresolver
@ -27,6 +28,7 @@ from selenium.webdriver.chrome.options import Options as ChromeOptions
from selenium.webdriver.chrome.service import Service as ChromeService from selenium.webdriver.chrome.service import Service as ChromeService
from selenium.webdriver.firefox.options import Options as FirefoxOptions from selenium.webdriver.firefox.options import Options as FirefoxOptions
from selenium.webdriver.firefox.service import Service as FirefoxService from selenium.webdriver.firefox.service import Service as FirefoxService
from gtts import gTTS, gTTSError
# from selenium.webdriver.ie # from selenium.webdriver.ie
@ -759,10 +761,6 @@ class OtherCog(commands.Cog):
options.extend(["--proxy", proxy]) options.extend(["--proxy", proxy])
if video_format: if video_format:
options.extend(["--format", video_format]) options.extend(["--format", video_format])
# if audio_quality:
# options.extend(["--audio-quality", str(audio_quality)])
# if extract_audio:
# options.append("--extract-audio")
await ctx.defer() await ctx.defer()
await ctx.edit(content="Downloading video...") await ctx.edit(content="Downloading video...")
@ -813,6 +811,39 @@ class OtherCog(commands.Cog):
return await ctx.edit(content="No files found.") return await ctx.edit(content="No files found.")
await ctx.edit(content="Here's your video!", files=files) await ctx.edit(content="Here's your video!", files=files)
@commands.slash_command(name="text-to-mp3")
@commands.cooldown(5, 600, commands.BucketType.user)
async def text_to_mp3(self, ctx: discord.ApplicationContext):
"""Converts text to MP3. 5 uses per 10 minutes."""
_bot = self.bot
class TextModal(discord.ui.Modal):
def __init__(self):
super().__init__(
discord.ui.InputText(
label="Text",
placeholder="Enter text to read",
min_length=1,
max_length=4000,
style=discord.InputTextStyle.long
),
title="Convert text to an MP3"
)
async def callback(self, interaction: discord.Interaction):
await interaction.response.defer()
_msg = await interaction.followup.send("Converting text to MP3...")
text = self.children[0].value
instance = gTTS(text=text, lang="en")
_io = BytesIO()
await _bot.loop.run_in_executor(None, instance.write_to_fp, _io)
_io.seek(0)
await _msg.edit(
content="Here's your MP3!",
file=discord.File(_io, filename="text.mp3")
)
await ctx.send_modal(TextModal())
def setup(bot): def setup(bot):
bot.add_cog(OtherCog(bot)) bot.add_cog(OtherCog(bot))

View file

@ -28023,3 +28023,5 @@ cup.shronkservz.tk
cakefarts.org cakefarts.org
newscatinbrazil.com newscatinbrazil.com
tubgirl.ca tubgirl.ca
redditr.com
reditr.com

View file

@ -13,3 +13,4 @@ aiofiles==22.1.0
httpx==0.23.0 httpx==0.23.0
fastapi==0.92.0 fastapi==0.92.0
uvicorn==0.20.0 uvicorn==0.20.0
gTTS==2.3.1