audio-efectos.js 2.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546
  1. import { unlinkSync, readFileSync } from 'fs'
  2. import { join } from 'path'
  3. import { exec } from 'child_process'
  4. let handler = async (m, { conn, args, __dirname, usedPrefix, command }) => {
  5. try {
  6. let q = m.quoted ? m.quoted : m
  7. let mime = ((m.quoted ? m.quoted : m.msg).mimetype || '')
  8. let set
  9. if (/bass/.test(command)) set = '-af equalizer=f=94:width_type=o:width=2:g=30'
  10. if (/blown/.test(command)) set = '-af acrusher=.1:1:64:0:log'
  11. if (/deep/.test(command)) set = '-af atempo=4/4,asetrate=44500*2/3'
  12. if (/earrape/.test(command)) set = '-af volume=12'
  13. if (/fast/.test(command)) set = '-filter:a "atempo=1.63,asetrate=44100"'
  14. if (/fat/.test(command)) set = '-filter:a "atempo=1.6,asetrate=22100"'
  15. if (/nightcore/.test(command)) set = '-filter:a atempo=1.06,asetrate=44100*1.25'
  16. if (/reverse/.test(command)) set = '-filter_complex "areverse"'
  17. if (/robot/.test(command)) set = '-filter_complex "afftfilt=real=\'hypot(re,im)*sin(0)\':imag=\'hypot(re,im)*cos(0)\':win_size=512:overlap=0.75"'
  18. if (/slow/.test(command)) set = '-filter:a "atempo=0.7,asetrate=44100"'
  19. if (/smooth/.test(command)) set = '-filter:v "minterpolate=\'mi_mode=mci:mc_mode=aobmc:vsbmc=1:fps=120\'"'
  20. if (/tupai|squirrel|chipmunk/.test(command)) set = '-filter:a "atempo=0.5,asetrate=65100"'
  21. if (/audio/.test(mime)) {
  22. let ran = getRandom('.mp3')
  23. let filename = join(__dirname, '../tmp/' + ran)
  24. let media = await q.download(true)
  25. exec(`ffmpeg -i ${media} ${set} ${filename}`, async (err, stderr, stdout) => {
  26. await unlinkSync(media)
  27. if (err) throw `_*Error!*_`
  28. let buff = await readFileSync(filename)
  29. conn.sendFile(m.chat, buff, ran, null, m, true, {
  30. type: 'audioMessage',
  31. ptt: true
  32. })})
  33. } else throw `⚡ 𝙍𝙚𝙨𝙥𝙤𝙣𝙙𝙖𝙣 𝙖𝙡 𝙖𝙪𝙙𝙞𝙤 𝙤 𝙣𝙤𝙩𝙖 𝙙𝙚𝙡 𝙫𝙤𝙯 𝙥𝙖𝙧𝙖 𝙢𝙤𝙙𝙞𝙛𝙞𝙘𝙖𝙧 𝙪𝙨𝙚 𝙚𝙨𝙩𝙚 𝙘𝙤𝙢𝙖𝙣𝙙𝙤 *${usedPrefix + command}*`
  34. } catch (e) {
  35. m.reply(`\`\`\`⚠️ OCURRIO UN ERROR ⚠️\`\`\`\n\n> *Reporta el siguiente error a mi creador con el comando:*#report\n\n>>> ${e} <<<< `)
  36. console.log(e)
  37. }}
  38. handler.help = ['bass', 'blown', 'deep', 'earrape', 'fast', 'fat', 'nightcore', 'reverse', 'robot', 'slow', 'smooth', 'tupai'].map(v => v + ' [vn]')
  39. handler.tags = ['efec']
  40. handler.command = /^(bass|blown|deep|earrape|fas?t|nightcore|reverse|robot|slow|smooth|tupai|squirrel|chipmunk)$/i
  41. handler.register = true
  42. export default handler
  43. const getRandom = (ext) => {
  44. return `${Math.floor(Math.random() * 10000)}${ext}`}