codigoencasa / builderbot

🤖 Crear Chatbot WhatsApp en minutos. Únete a este proyecto OpenSource
https://www.builderbot.app
MIT License
2.41k stars 826 forks source link

[🐛]descargar imagen #1082

Closed devFortes closed 3 months ago

devFortes commented 4 months ago

¿Que versión estas usando?

v2

¿Sobre que afecta?

DialogFlow

Describe tu problema

Estoy intentando descargar una imagen enviada por el usuario, pero el ctx dice que no hay downloadMedia

// Fluxo para tratar a escolha de "imagem" const flowImagem = addKeyword(['imagem']) .addAnswer(['Tire uma foto nítida com boa iluminação.']) .addAnswer(['Certifique-se de que a numeração da placa esteja visível.']) .addAnswer(['Por favor, envie a foto da placa. 🤳'], { capture: true, idle: endFlowTime }, async (ctx, { endFlow, flowDynamic, inRef }) => { if (ctx?.idleFallBack) { await flowDynamic([ '⚠️ Sua sessão foi cancelada devido à inatividade!', 'Para começar novamente escreva recomeçar.' ]) return endFlow() }

        if (ctx.type === 'image' && ctx.hasMedia === true) {

            let mediaHash = ctx._data.filehash.replace(/\//g, "+").replace(/\\/g, "-");
            mediaHash = "./mediaCache/" + mediaHash + ".cache";
            let receivedImage = null;
            if (fs.existsSync(mediaHash)) {
                receivedImage = fs.readFileSync(mediaHash, "utf8");
                receivedImage = JSON.parse(receivedImage);
                receivedImage = new MessageMedia(receivedImage.mimetype, receivedImage._data);
            } else {
                receivedImage = await ctx.downloadMedia();
                fs.writeFileSync(mediaHash, JSON.stringify(receivedImage), "utf8");
            }

        } else {
            return fallBack('Por favor, envie uma imagem válida!');
        }
    }
)
.addAction(async (ctx, { flowDynamic, provider, fallBack, }) => {

})

ERROR 
TypeError: ctx.downloadMedia is not a function
at Object.ans_e0049ddc-1adc-4f0e-aacd-1a3f5d90e006 (C:\Users\Fortes\Desktop\whatsapp-plate-bot\base-wweb-mysql\app.js:65:47)
at runContext (C:\Users\Fortes\Desktop\whatsapp-plate-bot\base-wweb-mysql\node_modules\@bot-whatsapp\bot\lib\bundle.bot.cjs:1444:57)
at cbEveryCtx (C:\Users\Fortes\Desktop\whatsapp-plate-bot\base-wweb-mysql\node_modules\@bot-whatsapp\bot\lib\bundle.bot.cjs:1471:19)
at sendFlow (C:\Users\Fortes\Desktop\whatsapp-plate-bot\base-wweb-mysql\node_modules\@bot-whatsapp\bot\lib\bundle.bot.cjs:1191:23)
at C:\Users\Fortes\Desktop\whatsapp-plate-bot\base-wweb-mysql\node_modules\@bot-whatsapp\bot\lib\bundle.bot.cjs:1547:42
at exportFunctionsSend (C:\Users\Fortes\Desktop\whatsapp-plate-bot\base-wweb-mysql\node_modules\@bot-whatsapp\bot\lib\bundle.bot.cjs:1476:19)
at CoreClass.handleMsg (C:\Users\Fortes\Desktop\whatsapp-plate-bot\base-wweb-mysql\node_modules\@bot-whatsapp\bot\lib\bundle.bot.cjs:1547:16)
at process.processTicksAndRejections (node:internal/process/task_queues:95:5)

Node.js v20.15.1

PROVIDER whatsapp-web.js github:pedroslopez/whatsapp-web.js#webpack-exodus

Reproducir error

No response

Información Adicional

No response

ozzyoss77 commented 3 months ago

@SrFortes en la version de bot-whatsapp no tenemos esa funcion, actualiza a Builderbot