Code Monkey home page Code Monkey logo

Comments (6)

ariffb25 avatar ariffb25 commented on September 28, 2024

image

.toimg

2021-02-01T01:33:54.456468+00:00 app[worker.1]: (node:40) UnhandledPromiseRejectionWarning: Error: Could not find MIME for Buffer <null>
2021-02-01T01:33:54.456470+00:00 app[worker.1]:     at Jimp.parseBitmap (/app/node_modules/@jimp/core/dist/utils/image-bitmap.js:187:15)
2021-02-01T01:33:54.456473+00:00 app[worker.1]:     at Jimp.parseBitmap (/app/node_modules/@jimp/core/dist/index.js:431:32)
2021-02-01T01:33:54.456473+00:00 app[worker.1]:     at new Jimp (/app/node_modules/@jimp/core/dist/index.js:384:13)
2021-02-01T01:33:54.456473+00:00 app[worker.1]:     at _construct (/app/node_modules/@babel/runtime/helpers/construct.js:19:21)
2021-02-01T01:33:54.456474+00:00 app[worker.1]:     at /app/node_modules/@jimp/core/dist/index.js:926:32
2021-02-01T01:33:54.456475+00:00 app[worker.1]:     at new Promise (<anonymous>)
2021-02-01T01:33:54.456475+00:00 app[worker.1]:     at Function.Jimp.read (/app/node_modules/@jimp/core/dist/index.js:925:10)
2021-02-01T01:33:54.456476+00:00 app[worker.1]:     at Object.compressImage (/app/node_modules/@adiwajshing/baileys/lib/WAConnection/Utils.js:260:39)
2021-02-01T01:33:54.456476+00:00 app[worker.1]:     at Object.generateThumbnail (/app/node_modules/@adiwajshing/baileys/lib/WAConnection/Utils.js:297:36)
2021-02-01T01:33:54.456479+00:00 app[worker.1]:     at WAConnection.prepareMessageMedia (/app/node_modules/@adiwajshing/baileys/lib/WAConnection/6.MessagesSend.js:131:23)
2021-02-01T01:33:54.456529+00:00 app[worker.1]: (node:40) UnhandledPromiseRejectionWarning: Unhandled promise rejection. This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). To terminate the node process on unhandled promise rejection, use the CLI flag `--unhandled-rejections=strict` (see https://nodejs.org/api/cli.html#cli_unhandled_rejections_mode). (rejection id: 13)

:'

from wabot-aq.

Nurutomo avatar Nurutomo commented on September 28, 2024

image
buildpack yang ku pasang

sticker

2021-01-31T06:25:01.024909+00:00 app[worker.1]: Error: ENOENT: no such file or directory, unlink '/app/tmp/1612074300852.png'
2021-01-31T06:25:01.024917+00:00 app[worker.1]:     at Object.unlinkSync (fs.js:1136:3)
2021-01-31T06:25:01.024918+00:00 app[worker.1]:     at ChildProcess.<anonymous> (/app/plugins/sticker.js:64:18)
2021-01-31T06:25:01.024919+00:00 app[worker.1]:     at ChildProcess.emit (events.js:314:20)
2021-01-31T06:25:01.024919+00:00 app[worker.1]:     at maybeClose (internal/child_process.js:1022:16)
2021-01-31T06:25:01.024919+00:00 app[worker.1]:     at Socket.<anonymous> (internal/child_process.js:444:11)
2021-01-31T06:25:01.024920+00:00 app[worker.1]:     at Socket.emit (events.js:314:20)
2021-01-31T06:25:01.024920+00:00 app[worker.1]:     at Pipe.<anonymous> (net.js:675:12) {
2021-01-31T06:25:01.024921+00:00 app[worker.1]:   errno: -2,
2021-01-31T06:25:01.024921+00:00 app[worker.1]:   syscall: 'unlink',
2021-01-31T06:25:01.024922+00:00 app[worker.1]:   code: 'ENOENT',
2021-01-31T06:25:01.024922+00:00 app[worker.1]:   path: '/app/tmp/1612074300852.png'
2021-01-31T06:25:01.024923+00:00 app[worker.1]: } uncaughtException

sedangkan toimg bisa

Aku pun sama begitu...

from wabot-aq.

rull05 avatar rull05 commented on September 28, 2024

image
buildpack yang ku pasang

sticker

2021-01-31T06:25:01.024909+00:00 app[worker.1]: Error: ENOENT: no such file or directory, unlink '/app/tmp/1612074300852.png'
2021-01-31T06:25:01.024917+00:00 app[worker.1]:     at Object.unlinkSync (fs.js:1136:3)
2021-01-31T06:25:01.024918+00:00 app[worker.1]:     at ChildProcess.<anonymous> (/app/plugins/sticker.js:64:18)
2021-01-31T06:25:01.024919+00:00 app[worker.1]:     at ChildProcess.emit (events.js:314:20)
2021-01-31T06:25:01.024919+00:00 app[worker.1]:     at maybeClose (internal/child_process.js:1022:16)
2021-01-31T06:25:01.024919+00:00 app[worker.1]:     at Socket.<anonymous> (internal/child_process.js:444:11)
2021-01-31T06:25:01.024920+00:00 app[worker.1]:     at Socket.emit (events.js:314:20)
2021-01-31T06:25:01.024920+00:00 app[worker.1]:     at Pipe.<anonymous> (net.js:675:12) {
2021-01-31T06:25:01.024921+00:00 app[worker.1]:   errno: -2,
2021-01-31T06:25:01.024921+00:00 app[worker.1]:   syscall: 'unlink',
2021-01-31T06:25:01.024922+00:00 app[worker.1]:   code: 'ENOENT',
2021-01-31T06:25:01.024922+00:00 app[worker.1]:   path: '/app/tmp/1612074300852.png'
2021-01-31T06:25:01.024923+00:00 app[worker.1]: } uncaughtException

sedangkan toimg bisa

const path = require('path')
const { spawn } = require('child_process')

function toSticker(buffer, ext) {
  let tmp = path.join(__dirname, '../tmp' + (new Date * 1) + '.' + ext)
  let out = tmp.replace(new RegExp(ext + '$'), 'webp')
  return new Promise((resolve, reject) => {
  fs.writeFileSync(tmp, buffer)
  spawn('ffmpeg',[
    '-y',
    '-i', tmp,
    `-vcodec`,`libwebp`,
    `-vf`,`scale='min(320,iw)':min'(320,ih)':force_original_aspect_ratio=decrease,fps=15, pad=320:320:-1:-1:[email protected], split [a][b]; [a] palettegen=reserve_transparent=on:transparency_color=ffffff [p]; [b][p] paletteuse`,
    '-f', 'webp',
    out])
    .on('error', reject)
    .on('error', () => fs.unlinkSync(tmp))
    .on('exit',() => {
      resolve(fs.readFileSync(out))
      fs.unlinkSync(tmp)
      if (fs.existsSync(out)) fs.unlinkSync(out)
    })
  })
  
}

Coba pake itu

from wabot-aq.

ariffb25 avatar ariffb25 commented on September 28, 2024

image
buildpack yang ku pasang

sticker

2021-01-31T06:25:01.024909+00:00 app[worker.1]: Error: ENOENT: no such file or directory, unlink '/app/tmp/1612074300852.png'
2021-01-31T06:25:01.024917+00:00 app[worker.1]:     at Object.unlinkSync (fs.js:1136:3)
2021-01-31T06:25:01.024918+00:00 app[worker.1]:     at ChildProcess.<anonymous> (/app/plugins/sticker.js:64:18)
2021-01-31T06:25:01.024919+00:00 app[worker.1]:     at ChildProcess.emit (events.js:314:20)
2021-01-31T06:25:01.024919+00:00 app[worker.1]:     at maybeClose (internal/child_process.js:1022:16)
2021-01-31T06:25:01.024919+00:00 app[worker.1]:     at Socket.<anonymous> (internal/child_process.js:444:11)
2021-01-31T06:25:01.024920+00:00 app[worker.1]:     at Socket.emit (events.js:314:20)
2021-01-31T06:25:01.024920+00:00 app[worker.1]:     at Pipe.<anonymous> (net.js:675:12) {
2021-01-31T06:25:01.024921+00:00 app[worker.1]:   errno: -2,
2021-01-31T06:25:01.024921+00:00 app[worker.1]:   syscall: 'unlink',
2021-01-31T06:25:01.024922+00:00 app[worker.1]:   code: 'ENOENT',
2021-01-31T06:25:01.024922+00:00 app[worker.1]:   path: '/app/tmp/1612074300852.png'
2021-01-31T06:25:01.024923+00:00 app[worker.1]: } uncaughtException

sedangkan toimg bisa

function toSticker(buffer, ext) {
  let tmp = path.join(__dirname, '../tmp' + (new Date * 1) + '.' + ext)
  let out = tmp.replace(new RegExp(ext + '$'), 'webp')
  return new Promise((resolve, reject) => {
  fs.writeFileSync(tmp, buffer)
  spawn('ffmpeg',[
    '-y',
    '-i', tmp,
    `-vcodec`,`libwebp`,
    `-vf`,`scale='min(320,iw)':min'(320,ih)':force_original_aspect_ratio=decrease,fps=15, pad=320:320:-1:-1:[email protected], split [a][b]; [a] palettegen=reserve_transparent=on:transparency_color=ffffff [p]; [b][p] paletteuse`,
    '-f', 'webp',
    out])
    .on('error', reject)
    .on('error', () => fs.unlinkSync(tmp))
    .on('exit',() => {
      resolve(fs.readFileSync(out))
      fs.unlinkSync(tmp)
      if (fs.existsSync(out)) fs.unlinkSync(out)
    })
  })
  
}

Coba pake itu

toSticker nya gantiin fungsi sticker2 ya?
image

from wabot-aq.

rull05 avatar rull05 commented on September 28, 2024

image
buildpack yang ku pasang

sticker

2021-01-31T06:25:01.024909+00:00 app[worker.1]: Error: ENOENT: no such file or directory, unlink '/app/tmp/1612074300852.png'
2021-01-31T06:25:01.024917+00:00 app[worker.1]:     at Object.unlinkSync (fs.js:1136:3)
2021-01-31T06:25:01.024918+00:00 app[worker.1]:     at ChildProcess.<anonymous> (/app/plugins/sticker.js:64:18)
2021-01-31T06:25:01.024919+00:00 app[worker.1]:     at ChildProcess.emit (events.js:314:20)
2021-01-31T06:25:01.024919+00:00 app[worker.1]:     at maybeClose (internal/child_process.js:1022:16)
2021-01-31T06:25:01.024919+00:00 app[worker.1]:     at Socket.<anonymous> (internal/child_process.js:444:11)
2021-01-31T06:25:01.024920+00:00 app[worker.1]:     at Socket.emit (events.js:314:20)
2021-01-31T06:25:01.024920+00:00 app[worker.1]:     at Pipe.<anonymous> (net.js:675:12) {
2021-01-31T06:25:01.024921+00:00 app[worker.1]:   errno: -2,
2021-01-31T06:25:01.024921+00:00 app[worker.1]:   syscall: 'unlink',
2021-01-31T06:25:01.024922+00:00 app[worker.1]:   code: 'ENOENT',
2021-01-31T06:25:01.024922+00:00 app[worker.1]:   path: '/app/tmp/1612074300852.png'
2021-01-31T06:25:01.024923+00:00 app[worker.1]: } uncaughtException

sedangkan toimg bisa

function toSticker(buffer, ext) {
  let tmp = path.join(__dirname, '../tmp' + (new Date * 1) + '.' + ext)
  let out = tmp.replace(new RegExp(ext + '$'), 'webp')
  return new Promise((resolve, reject) => {
  fs.writeFileSync(tmp, buffer)
  spawn('ffmpeg',[
    '-y',
    '-i', tmp,
    `-vcodec`,`libwebp`,
    `-vf`,`scale='min(320,iw)':min'(320,ih)':force_original_aspect_ratio=decrease,fps=15, pad=320:320:-1:-1:[email protected], split [a][b]; [a] palettegen=reserve_transparent=on:transparency_color=ffffff [p]; [b][p] paletteuse`,
    '-f', 'webp',
    out])
    .on('error', reject)
    .on('error', () => fs.unlinkSync(tmp))
    .on('exit',() => {
      resolve(fs.readFileSync(out))
      fs.unlinkSync(tmp)
      if (fs.existsSync(out)) fs.unlinkSync(out)
    })
  })
  
}

Coba pake itu

toSticker nya gantiin fungsi sticker2 ya?
image

Iya, ext nya jgn lupa

from wabot-aq.

ariffb25 avatar ariffb25 commented on September 28, 2024

silahkan copy

const fetch = require('node-fetch')
const fs = require('fs')
const path = require('path')
const { spawn } = require('child_process')
const FormData = require('form-data')
const { MessageType } = require('@adiwajshing/baileys')

let handler = async (m, { conn, args }) => {
  let stiker = false
  try {
    let q = m.quoted ? { message: { [m.quoted.mtype]: m.quoted } } : m
    if (/image/.test((m.quoted ? m.quoted : m.msg).mimetype || '')) {
      let img = await conn.downloadM(q)
      if (!img) throw img
      stiker = await toSticker(img)
    } else if (args[0]) stiker = await toSticker(false, args[0])
  } finally {
    if (stiker) conn.sendMessage(m.chat, stiker, MessageType.sticker, {
      quoted: m
    })
  }
}
handler.help = ['stiker (caption|reply media)', 'stiker <url>']
handler.tags = ['sticker']
handler.command = /^(st|stic?ker)$/i
handler.owner = false
handler.mods = false
handler.premium = false
handler.group = false
handler.private = false

handler.admin = false
handler.botAdmin = false

handler.fail = null
handler.limit = true

module.exports = handler

async function canvas(code, type = 'png', quality = 0.92) {
  let res = await fetch('https://nurutomo.herokuapp.com/api/canvas?' + queryURL({
    type,
    quality
  }), {
    method: 'POST',
    headers: {
      'Content-Type': 'text/plain',
      'Content-Length': code.length
    },
    body: code
  })
  let image = await res.buffer()
  return image
}

function queryURL(queries) {
  return Object.entries(queries).map(([key, value]) => key + (value ? '=' + encodeURIComponent(value) : '')).join('&')
}

let { fromBuffer } = require('file-type')
async function sticker(img, url) {
  url = url ? url : await uploadImage(img)
  let {
    mime
  } = url ? { mime: 'image/jpeg' } : await fromBuffer(img)
  let sc = `let im = await loadImg('data:${mime};base64,'+(await window.loadToDataURI('${url}')))
c.width = c.height = 512
let max = Math.max(im.width, im.height)
let w = 512 * im.width / max
let h = 512 * im.height / max
ctx.drawImage(im, 256 - w / 2, 256 - h / 2, w, h)
`
  return await canvas(sc, 'webp')
}

function uploadImage(buffer) {
  return new Promise(async (resolve, reject) => {
    try {
      const {
        ext
      } = await fromBuffer(buffer)
      let form = new FormData()
      form.append('file', buffer, 'tmp.' + ext)
      let res = await fetch('https://telegra.ph/upload', {
        method: 'POST',
        body: form
      })
      let img = await res.json()
      if (img.error) reject(img.error)
      else resolve('https://telegra.ph' + img[0].src)
    } catch (e) {
      reject(e)
    }
  })
}

function toSticker(buffer, ext) {
  let tmp = path.join(__dirname, '../tmp' + (new Date * 1) + '.' + ext)
  let out = tmp.replace(new RegExp(ext + '$'), 'webp')
  return new Promise((resolve, reject) => {
    fs.writeFileSync(tmp, buffer)
    spawn('ffmpeg', [
      '-y',
      '-i', tmp,
      `-vcodec`, `libwebp`,
      `-vf`, `scale='min(320,iw)':min'(320,ih)':force_original_aspect_ratio=decrease,fps=15, pad=320:320:-1:-1:[email protected], split [a][b]; [a] palettegen=reserve_transparent=on:transparency_color=ffffff [p]; [b][p] paletteuse`,
      '-f', 'webp',
      out])
      .on('error', reject)
      .on('error', () => fs.unlinkSync(tmp))
      .on('exit', () => {
        resolve(fs.readFileSync(out))
        fs.unlinkSync(tmp)
        if (fs.existsSync(out)) fs.unlinkSync(out)
      })
  })

}

from wabot-aq.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.