Add the option to compress audio

This commit is contained in:
Nexus 2023-05-15 18:48:19 +01:00
parent 913dfa7153
commit 307b95ebeb
Signed by: nex
GPG key ID: 0FA334385D0B689F

View file

@ -813,7 +813,7 @@ class OtherCog(commands.Cog):
f"\\* URL: <{friendly_url}>\n" f"\\* URL: <{friendly_url}>\n"
f"\\* Load time: {fetch_time:.2f}ms\n" f"\\* Load time: {fetch_time:.2f}ms\n"
f"\\* Screenshot render time: {screenshot_time:.2f}ms\n" f"\\* Screenshot render time: {screenshot_time:.2f}ms\n"
f"\\* Total time: {(fetch_time + screenshot_time):.2f}ms\n" f"\\* Total time: {(fetch_time + screenshot_time):.2f}ms\n" +
( (
'* Probability of being scat or something else horrifying: 100%' '* Probability of being scat or something else horrifying: 100%'
if ctx.user.id == 1019233057519177778 else '' if ctx.user.id == 1019233057519177778 else ''
@ -864,6 +864,7 @@ class OtherCog(commands.Cog):
autocomplete=format_autocomplete, autocomplete=format_autocomplete,
default="" default=""
) = "", ) = "",
extract_audio: bool = False,
upload_log: bool = False, upload_log: bool = False,
compress_if_possible: bool = False compress_if_possible: bool = False
): ):
@ -980,6 +981,7 @@ class OtherCog(commands.Cog):
"paths": paths, "paths": paths,
"outtmpl": f"{ctx.user.id}-%(title).50s.%(ext)s", "outtmpl": f"{ctx.user.id}-%(title).50s.%(ext)s",
"trim_file_name": 128, "trim_file_name": 128,
"extractaudio": extract_audio,
} }
) as downloader: ) as downloader:
try: try:
@ -1017,6 +1019,7 @@ class OtherCog(commands.Cog):
continue continue
st = file.stat().st_size st = file.stat().st_size
COMPRESS_FAILED = False COMPRESS_FAILED = False
if st / 1024 / 1024 >= MAX_SIZE_MB or st >= BYTES_REMAINING:
if compress_if_possible and file.suffix in (".mp4", ".mkv", ".mov"): if compress_if_possible and file.suffix in (".mp4", ".mkv", ".mov"):
await ctx.edit( await ctx.edit(
embed=discord.Embed( embed=discord.Embed(
@ -1034,7 +1037,7 @@ class OtherCog(commands.Cog):
"-crf", "-crf",
"30", "30",
"-preset", "-preset",
"slow", "fast",
str(target) str(target)
] ]
@ -1047,12 +1050,12 @@ class OtherCog(commands.Cog):
check=True check=True
) )
) )
except subprocess.CalledProcessError as e: except subprocess.CalledProcessError:
COMPRESS_FAILED = True COMPRESS_FAILED = True
else: else:
file = target file = target
st = file.stat().st_size st = file.stat().st_size
if st / 1024 / 1024 >= MAX_SIZE_MB or st >= BYTES_REMAINING:
units = ["B", "KB", "MB", "GB", "TB"] units = ["B", "KB", "MB", "GB", "TB"]
st_r = st st_r = st
while st_r > 1024: while st_r > 1024:
@ -1083,6 +1086,7 @@ class OtherCog(commands.Cog):
await ctx.channel.trigger_typing() await ctx.channel.trigger_typing()
embed.description = _desc embed.description = _desc
await ctx.edit(embed=embed, files=files) await ctx.edit(embed=embed, files=files)
await ctx.send()
async def bgtask(): async def bgtask():
await asyncio.sleep(120.0) await asyncio.sleep(120.0)