sticker-sticker.js 2.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950
  1. import { sticker } from '../lib/sticker.js'
  2. import uploadFile from '../lib/uploadFile.js'
  3. import uploadImage from '../lib/uploadImage.js'
  4. import { webp2png } from '../lib/webp2mp4.js'
  5. let handler = async (m, { conn, args, usedPrefix, command }) => {
  6. let user = global.db.data.users[m.sender]
  7. let stiker = false
  8. let stick = args.join(" ").split("|");
  9. let f = user.packname || global.packname
  10. let g = (user.packname && user.author ? user.author : (user.packname && !user.author ? '' : global.author))
  11. try {
  12. let q = m.quoted ? m.quoted : m
  13. let mime = (q.msg || q).mimetype || q.mediaType || ''
  14. if (/webp|image|video/g.test(mime)) {
  15. if (/video/g.test(mime)) if ((q.msg || q).seconds > 18) return m.reply('⚠️ ¿Dónde has visto un sticker de 15 segundos, pendejo? Haz el video más corto, con un máximo de 12 segundos.')
  16. let img = await q.download?.()
  17. if (!img) return m.reply(`*Y la imagen? 🤔 Responde a una imagen para hacer el sticker. Usa:* ${usedPrefix + command}`)
  18. let out
  19. try {
  20. stiker = await sticker(img, false, f, g)
  21. } catch (e) {
  22. console.error(e)
  23. } finally {
  24. //conn.reply(m.chat, `Calma crack estoy haciendo tu sticker 👏\n\n> *Recuerda los video son de 7 segundos*`, m)
  25. if (!stiker) {
  26. if (/webp/g.test(mime)) out = await webp2png(img)
  27. else if (/image/g.test(mime)) out = await uploadImage(img)
  28. else if (/video/g.test(mime)) out = await uploadFile(img)
  29. if (typeof out !== 'string') out = await uploadImage(img)
  30. stiker = await sticker(false, out, f, g)
  31. }}} else if (args[0]) {
  32. if (isUrl(args[0])) stiker = await sticker(false, args[0], f, g)
  33. else return m.reply('URL invalido')
  34. }} catch (e) {
  35. console.error(e)
  36. if (!stiker) stiker = e
  37. } finally {
  38. if (stiker) conn.sendFile(m.chat, stiker, 'sticker.webp', '',m, true, { contextInfo: { 'forwardingScore': 200, 'isForwarded': false, externalAdReply:{ showAdAttribution: false, title: wm, body: ``, mediaType: 2, sourceUrl: [nna, nn, md, yt].getRandom(), thumbnail: imagen4}}}, { quoted: m })
  39. else return m.reply(`*🫵 Responde a un video o imagen*\n> *Usa:* ${usedPrefix + command}`)
  40. }}
  41. handler.help = ['sticker']
  42. handler.tags = ['sticker']
  43. handler.command = ['s', 'sticker']
  44. handler.register = true
  45. export default handler
  46. const isUrl = (text) => {
  47. return text.match(new RegExp(/https?:\/\/(www\.)?[-a-zA-Z0-9@:%._+~#=]{1,256}\.[a-zA-Z0-9()]{1,6}\b([-a-zA-Z0-9()@:%_+.~#?&/=]*)(jpe?g|gif|png)/, 'gi'))
  48. }