mirror of
https://github.com/cheveguerra/ws-api-node.git
synced 2026-04-17 19:36:23 +00:00
fix: url de imagen invalida
This commit is contained in:
@@ -9,6 +9,7 @@ const mediadownloader = (url, path, callback) => {
|
|||||||
request(url)
|
request(url)
|
||||||
.pipe(fs.createWriteStream(path))
|
.pipe(fs.createWriteStream(path))
|
||||||
.on('close', callback)
|
.on('close', callback)
|
||||||
|
.on('error', callback)
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -35,10 +36,14 @@ router.post('/sendimage/', async (req,res) => {
|
|||||||
let phone = req.body.phone;
|
let phone = req.body.phone;
|
||||||
let image = req.body.image;
|
let image = req.body.image;
|
||||||
let caption = req.body.caption;
|
let caption = req.body.caption;
|
||||||
|
let e = 0
|
||||||
|
|
||||||
if (phone == undefined || image == undefined) {
|
if (phone == undefined || image == undefined) {
|
||||||
res.send({ status: "error", message: "please enter valid phone and base64/url of image" })
|
res.send({ status: "error", message: "please enter valid phone and base64/url of image" })
|
||||||
} else {
|
} else {
|
||||||
|
if (!fs.existsSync('./temp')) {
|
||||||
|
await fs.mkdirSync('./temp');
|
||||||
|
}
|
||||||
if (base64regex.test(image)) {
|
if (base64regex.test(image)) {
|
||||||
let media = new MessageMedia('image/png',image);
|
let media = new MessageMedia('image/png',image);
|
||||||
client.sendMessage(`${phone}@c.us`, media, { caption: caption || '' }).then((response) => {
|
client.sendMessage(`${phone}@c.us`, media, { caption: caption || '' }).then((response) => {
|
||||||
@@ -47,12 +52,9 @@ router.post('/sendimage/', async (req,res) => {
|
|||||||
}
|
}
|
||||||
});
|
});
|
||||||
} else if (vuri.isWebUri(image)) {
|
} else if (vuri.isWebUri(image)) {
|
||||||
if (!fs.existsSync('./temp')) {
|
|
||||||
await fs.mkdirSync('./temp');
|
|
||||||
}
|
|
||||||
var path = './temp/' + image.split("/").slice(-1)[0]
|
var path = './temp/' + image.split("/").slice(-1)[0]
|
||||||
if (fs.existsSync(path)){
|
|
||||||
mediadownloader(image, path, () => {
|
mediadownloader(image, path, () => {
|
||||||
|
if(fs.existsSync(path)){
|
||||||
let media = MessageMedia.fromFilePath(path);
|
let media = MessageMedia.fromFilePath(path);
|
||||||
client.sendMessage(`${phone}@c.us`, media, { caption: caption || '' }).then((response) => {
|
client.sendMessage(`${phone}@c.us`, media, { caption: caption || '' }).then((response) => {
|
||||||
if (response.id.fromMe) {
|
if (response.id.fromMe) {
|
||||||
@@ -60,11 +62,13 @@ router.post('/sendimage/', async (req,res) => {
|
|||||||
fs.unlinkSync(path)
|
fs.unlinkSync(path)
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
})
|
|
||||||
} else {
|
|
||||||
console.log("La imagen no existe o no se pudo descargar.")
|
|
||||||
res.send({ status:'error', message: 'Invalid URL/Base64 Encoded Media' })
|
|
||||||
}
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
if(e==1){res.send({ status:'error', message: 'Invalid URL/Base64 Encoded Media' })}
|
||||||
|
e++ // Por alguna razon cuando hay error mediaDownloader corre 2 veces y se genera "Error [ERR_HTTP_HEADERS_SENT]: Cannot set headers after they are sent to the client"
|
||||||
|
}
|
||||||
|
})
|
||||||
} else {
|
} else {
|
||||||
res.send({ status:'error', message: 'Invalid URL/Base64 Encoded Media' })
|
res.send({ status:'error', message: 'Invalid URL/Base64 Encoded Media' })
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user