added dialogflow filter for media

This commit is contained in:
jzvi12
2022-12-22 20:43:16 -05:00
parent 33490dc737
commit 748262302c
9 changed files with 279 additions and 30 deletions

View File

@@ -1,5 +1,5 @@
const {get, reply, getIA} = require('../adapter')
const {saveExternalFile, checkIsUrl} = require('./handle')
const { get, reply, getIA } = require('../adapter')
const { saveExternalFile, checkIsUrl } = require('./handle')
const getMessages = async (message) => {
const data = await get(message)
@@ -8,21 +8,29 @@ const getMessages = async (message) => {
const responseMessages = async (step) => {
const data = await reply(step)
if(data && data.media){
if (data && data.media) {
const file = checkIsUrl(data.media) ? await saveExternalFile(data.media) : data.media;
return {...data,...{media:file}}
return { ...data, ...{ media: file } }
}
return data
}
const bothResponse = async (message, sessionId) => {
const data = await getIA(message, sessionId)
if(data && data.media){
if (data && data.media) {
const file = await saveExternalFile(data.media)
return {...data,...{media:file}}
return { ...data, ...{ media: file } }
}
return data
}
const waitFor = (conditionFunction, WAIT_TIME) => {
const poll = resolve => {
if (conditionFunction())
resolve();
else setTimeout(_ => poll(resolve), WAIT_TIME);
}
return new Promise(poll);
}
module.exports = { getMessages, responseMessages, bothResponse }
module.exports = { getMessages, responseMessages, bothResponse, waitFor }

View File

@@ -1,5 +1,8 @@
const mimeDb = require('mime-db')
const fs = require('fs')
const mimeDb = require('mime-db');
const { uploadSingleFile } = require('../adapter/gdrive');
const fs = require('fs');
var fileName;
/**
* Guardamos archivos multimedia que nuestro cliente nos envie!
@@ -16,9 +19,20 @@ const saveMedia = (media) => {
} else {
ext = extensionProcess.extensions[0];
}
fs.writeFile(`./media/${Date.now()}.${ext}`, media.data, { encoding: 'base64' }, function (err) {
console.log('** Archivo Media Guardado **');
fileName = `${Date.now()}.${ext}`;
fs.writeFile(`./media/${fileName}`, media.data, { encoding: 'base64' }, function (err) {
console.log(`** Archivo Media ${fileName} Guardado **`);
});
return fileName
}
module.exports = {saveMedia}
const saveMediaToGoogleDrive = async (media) => {
fileName = saveMedia(media);
filePath = `${__dirname}/../media/${fileName}`
const googleDriveUrl = await uploadSingleFile(fileName, filePath);
return googleDriveUrl
}
module.exports = { saveMedia, saveMediaToGoogleDrive }