herramientas-whatmusic.js 2.0 KB

12345678910111213141516171819202122232425262728293031323334353637
  1. import fs from 'fs';
  2. import acrcloud from 'acrcloud';
  3. const acr = new acrcloud({host: 'identify-eu-west-1.acrcloud.com',
  4. access_key: 'c33c767d683f78bd17d4bd4991955d81',
  5. access_secret: 'bvgaIAEtADBTbLwiPGYlxupWqkNGIjT7J9Ag2vIu',
  6. });
  7. const handler = async (m) => {
  8. const q = m.quoted ? m.quoted : m;
  9. const mime = (q.msg || q).mimetype || '';
  10. if (/audio|video/.test(mime)) {
  11. if ((q.msg || q).seconds > 20) return m.reply('⚠️ ᴇʟ ᴀʀᴄʜɪᴠᴏ ǫᴜᴇ ᴄᴀʀɢᴀ ᴇs ᴅᴇᴍᴀsɪᴀᴅᴏ ɢʀᴀɴᴅᴇ, ʟᴇ sᴜɢᴇʀɪᴍᴏs ǫᴜᴇ ᴄᴏʀᴛᴇ ᴇʟ ᴀʀᴄʜɪᴠᴏ ɢʀᴀɴᴅᴇ ᴀ ᴜɴ ᴀʀᴄʜɪᴠᴏ ᴍᴀ́s ᴘᴇǫᴜᴇɴ̃ᴏ, 10-20 sᴇɢᴜɴᴅᴏs ʟᴏs ᴅᴀᴛᴏs ᴅᴇ ᴀᴜᴅɪᴏ sᴏɴ sᴜғɪᴄɪᴇɴᴛᴇs ᴘᴀʀᴀ ɪᴅᴇɴᴛɪғɪᴄᴀʀ');
  12. const media = await q.download();
  13. const ext = mime.split('/')[1];
  14. fs.writeFileSync(`./tmp/${m.sender}.${ext}`, media);
  15. const res = await acr.identify(fs.readFileSync(`./tmp/${m.sender}.${ext}`));
  16. const {code, msg} = res.status;
  17. if (code !== 0) throw msg;
  18. const {title, artists, album, genres, release_date} = res.metadata.music[0];
  19. const txt = `
  20. 𝐑𝐄𝐒𝐄𝐋𝐓𝐀𝐃𝐎𝐒 𝐃𝐄 𝐋𝐀 𝐁𝐔𝐒𝐐𝐔𝐄𝐃𝐀
  21. • 📌 𝐓𝐢𝐭𝐮𝐥𝐨: ${title}
  22. • 👨‍🎤 𝐀𝐫𝐭𝐢𝐬𝐭𝐚: ${artists !== undefined ? artists.map((v) => v.name).join(', ') : 'No encontrado'}
  23. • 💾 𝐀𝐥𝐛𝐮𝐦: ${album.name || 'No encontrado'}
  24. • 🌐 𝐆𝐞𝐧𝐞𝐫𝐨: ${genres !== undefined ? genres.map((v) => v.name).join(', ') : 'No encontrado'}
  25. • 📆 𝐅𝐞𝐜𝐡𝐚 𝐝𝐞 𝐥𝐚𝐧𝐳𝐚𝐦𝐢𝐞𝐧𝐭𝐨: ${release_date || 'No encontrado'}
  26. `.trim();
  27. fs.unlinkSync(`./tmp/${m.sender}.${ext}`);
  28. m.reply(txt);
  29. } else throw '*⚠️ 𝐑𝐞𝐬𝐩𝐨𝐧𝐝𝐞 𝐚 𝐮𝐧 𝐚𝐮𝐝𝐢𝐨*';
  30. };
  31. handler.help = ['quemusica']
  32. handler.tags = ['tools']
  33. handler.command = /^quemusica|quemusicaes|whatmusic$/i;
  34. handler.register = true
  35. export default handler;