from pydub import AudioSegment
from .. import loader, utils
import io
import os
def register(cb):
cb(AudioShakalMod())
class AudioShakalMod(loader.Module):
"""АудиоШакал"""
strings = {'name': 'АудиоШакал'}
def __init__(self):
self.name = self.strings['name']
self._me = None
self._ratelimit = []
async def client_ready(self, client, db):
self._db = db
self._client = client
self.me = await client.get_me()
async def fvcmd(self, message):
""".fv [шакал_lvl(не обязательно, по умолчанию 100 (от 10 до 100))]
Сшакалить войс/mp3/ogg/oga
"""
reply = await message.get_reply_message()
lvl = 0
if not reply:
await message.edit("Ответь на аудио стоны, еблан")
return
if utils.get_args_raw(message):
ar = utils.get_args_raw(message)
try:
int(ar)
if int(ar) >= 10 and int(ar) <= 100:
lvl = int(ar)
else:
await message.edit("Укажите уровень долбоебизма от 10 до 100!")
return
except Exception as exx:
await message.edit("Неверный аргумент(ты уебок кста)!")
return
else:
lvl = 100
await message.edit("Ебем Стасяна... (прости Стасян)\n Прощаю (с) Стасян")
sa = False
m = io.BytesIO()
fname = await message.client.download_media(message=reply.media)
if(fname.endswith(".oga") or fname.endswith(".ogg")):
audio = AudioSegment.from_file(fname, "ogg")
elif(fname.endswith(".mp3")):
sa = True
audio = AudioSegment.from_file(fname, "mp3")
else:
await message.edit("Ты еблан? Я(.fv) не поддерживаю этот ёбаный файл! Только voice/mp3/ogg/oga!")
os.remove(fname)
return
audio = audio + lvl
if(sa):
m.name = "Ты Шакал.mp3"
audio.export(m, format="mp3")
else:
m.name="voice.ogg"
audio.split_to_mono()
audio.export(m, format="ogg", codec="libopus", bitrate="64k")
m.seek(0)
if(sa):
await message.client.send_file(message.to_id, m, reply_to=reply.id)
else:
await message.client.send_file(message.to_id, m, reply_to=reply.id, voice_note=True)
await message.delete()
os.remove(fname)