Advertisement
Guest User

Untitled

a guest
Jan 26th, 2018
354
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 41.12 KB | None | 0 0
  1. package com.ncubo.conf;
  2.  
  3. import java.io.BufferedOutputStream;
  4. import java.io.File;
  5. import java.io.FileInputStream;
  6. import java.io.FileOutputStream;
  7. import java.io.IOException;
  8. import java.io.InputStream;
  9. import java.sql.SQLException;
  10. import java.util.ArrayList;
  11. import java.util.Date;
  12. import java.util.Hashtable;
  13. import java.util.Iterator;
  14. import java.util.List;
  15. import java.util.Map;
  16. import java.util.UUID;
  17. import java.util.zip.ZipException;
  18.  
  19. import javax.annotation.PostConstruct;
  20.  
  21. import org.json.JSONArray;
  22. import org.json.JSONException;
  23. import org.json.JSONObject;
  24. import org.springframework.beans.factory.annotation.Autowired;
  25. import org.springframework.boot.context.properties.ConfigurationProperties;
  26. import org.springframework.stereotype.Component;
  27. import org.springframework.web.multipart.MultipartFile;
  28. import org.springframework.web.multipart.MultipartHttpServletRequest;
  29.  
  30. import com.ibm.watson.developer_cloud.conversation.v1.model.Entity;
  31. import com.ibm.watson.developer_cloud.conversation.v1.model.Intent;
  32. import com.ibm.watson.developer_cloud.conversation.v1.model.MessageResponse;
  33. import com.ibm.watson.developer_cloud.text_to_speech.v1.model.AudioFormat;
  34. import com.ncubo.agencias.Agencias;
  35. import com.ncubo.agencias.FraseDeLaAgencia;
  36. import com.ncubo.bambu.util.ControladorDeConversacionesConBambu;
  37. import com.ncubo.bambu.util.ConversacionesConBambu.TiposDeMensajesConBambu;
  38. import com.ncubo.chatbot.audios.ControladorDeAudios;
  39. import com.ncubo.chatbot.bitacora.HistoricosDeConversaciones;
  40. import com.ncubo.chatbot.configuracion.Constantes;
  41. import com.ncubo.chatbot.configuracion.Constantes.TiposDeVariables;
  42. import com.ncubo.chatbot.contexto.Variable;
  43. import com.ncubo.chatbot.partesDeLaConversacion.Frase;
  44. import com.ncubo.chatbot.partesDeLaConversacion.Imagen;
  45. import com.ncubo.chatbot.partesDeLaConversacion.Salida;
  46. import com.ncubo.chatbot.partesDeLaConversacion.Sonido;
  47. import com.ncubo.chatbot.partesDeLaConversacion.Vineta;
  48. import com.ncubo.chatbot.watson.SpeechToTextWatson;
  49. import com.ncubo.chatbot.watson.TextToSpeechWatson;
  50. import com.ncubo.data.Configuracion;
  51. import com.ncubo.db.ConexionALaDB;
  52. import com.ncubo.logDeLasConversaciones.InformacionParaCrearElChat;
  53. import com.ncubo.logicaDeConversaciones.ConversacionesConLosClientes;
  54. import com.ncubo.util.FTPServidor;
  55. import com.ncubo.util.GestorDeArchivos;
  56.  
  57. @Component
  58. @ConfigurationProperties("servercognitivo")
  59. public class AgenteCognitivo {
  60.    
  61.     private String user;
  62.     private String password;
  63.     private String workspaceDeChats;
  64.     private String workspaceDeConocerte;
  65.     private String userTextToSpeech;
  66.     private String passwordTextToSpeech;
  67.     private String voiceTextToSpeech;
  68.     private String pathAudio;
  69.     private String pathXML;
  70.     private String urlPublicaAudios;
  71.     private String pathXMLAudios;
  72.     private String userSpeechToText;
  73.     private String passwordSpeechToText;
  74.     private String voiceSpeechToText;
  75.     private String apiKeyGoogle;
  76.     private String apiSTT;
  77.     private String nombreDelAgenteCognitivo;
  78.     private String idDelAgenteCognitivo;
  79.    
  80.     @Autowired
  81.     private Agencias agencias;
  82.    
  83.     //@Autowired
  84.     //private UsuarioDao usuarioDao;
  85.    
  86.     @Autowired
  87.     private FTPServidor ftp;
  88.    
  89.     @Autowired
  90.     private ConversacionesConLosClientes misConversacionesConLosClientes;
  91.    
  92.     private HistoricosDeConversaciones historicoDeConversaciones;
  93.     private ControladorDeAudios audios;
  94.    
  95.     @Autowired
  96.     private ExtraerDatosWebService extraerDatos;
  97.  
  98.     @Autowired
  99.     private Configuracion config;
  100.    
  101.     @Autowired
  102.     private ControladorDeConversacionesConBambu controladorDeConversacionesConBambu;
  103.    
  104.     @Autowired
  105.     private GestorDeArchivos gestorDeArchivos;
  106.    
  107.     private HiloParaMonitorearLaBandejaDeCorreos hiloParaMonitorearLaBandejaDeCorreos;
  108.    
  109.     @PostConstruct
  110.     public void init(){
  111.         misConversacionesConLosClientes.inicializar(getPathXML());
  112.         inicializarGeneradorDeAudiosSingleton();
  113.         inicializadorDeLaBD();
  114.         historicoDeConversaciones = new HistoricosDeConversaciones();
  115.         //generarTodosLosAudiosEstaticosInternamente();
  116.         audios = new ControladorDeAudios(ftp.getUsuario(), ftp.getPassword(), ftp.getHost(), ftp.getPuerto(), ftp.getCarpeta(), this.getPathAudio());
  117.        
  118.         hiloParaMonitorearLaBandejaDeCorreos = new HiloParaMonitorearLaBandejaDeCorreos();
  119.         hiloParaMonitorearLaBandejaDeCorreos.start();
  120.     }
  121.    
  122.     public String procesarMensajeChat(String idCliente, Usuario usuario, String mensaje,
  123.             Hashtable<String, Variable> datosDelUsuario) throws Exception
  124.     {
  125.         return procesarMensaje(idCliente, usuario, mensaje, datosDelUsuario, false);
  126.     }
  127.    
  128.     public String procesarMensajeChatV3(String idCliente, Usuario usuario, String mensaje, Hashtable<String,
  129.             Variable> datosDelUsuario, boolean usarAgenteCognitivo) throws Exception
  130.     {
  131.         return procesarMensajeV3(idCliente, usuario, mensaje, datosDelUsuario, false, usarAgenteCognitivo);
  132.     }
  133.    
  134.     public String procesarMensajeConocerte(Usuario usuario, String mensaje, Date date) throws Exception
  135.     {
  136.         return procesarMensajeConocerte(usuario, mensaje, date, workspaceDeConocerte);
  137.     }
  138.    
  139.     public String procesarMensajeVoz(String idCliente, Usuario usuario, MultipartHttpServletRequest request, Hashtable<String, Variable> datosDelUsuario) throws Exception{
  140.        
  141.         String respuestaAlCliente = "";
  142.        
  143.         Iterator<String> itrator = request.getFileNames();
  144.         MultipartFile multiFile = request.getFile(itrator.next());
  145.  
  146.         try {
  147.             UUID idOne = UUID.randomUUID();
  148.             String nombreDelArchivo = idOne + ".mp3";
  149.             nombreDelArchivo = nombreDelArchivo.replace("-", "");
  150.            
  151.             String path = request.getServletContext().getRealPath("/");
  152.                    
  153.             // making directories for our required path.
  154.             byte[] bytes = multiFile.getBytes();
  155.             File directory = new File(path+ "/uploads");
  156.             directory.mkdirs();
  157.            
  158.             // saving the file
  159.             File file = new File(directory.getAbsolutePath()+System.getProperty("file.separator")+idOne+".wav");
  160.            
  161.             BufferedOutputStream stream = new BufferedOutputStream(new FileOutputStream(file));
  162.             stream.write(bytes);
  163.             stream.flush();
  164.             stream.close();
  165.            
  166.             AudioFormat audioFormat = AudioFormat.WAV;
  167.             File temp = new File(System.getProperty("user.home") + "/audios-de-watson");
  168.             if(!temp.exists()){
  169.                 temp.mkdir();
  170.                 temp.deleteOnExit();
  171.             }
  172.             InputStream mp3InputStream = TextToSpeechWatson.getInstance().transformarAMp3(
  173.                     new FileInputStream(file.getAbsolutePath()), audioFormat.name().toLowerCase(), temp);
  174.             transferirAudiosAlFTP(mp3InputStream, idCliente, nombreDelArchivo);
  175.            
  176.             //Transform audio received to text
  177.             String respuesta = this.transformarAudioATexto(file, getApiSTT(), idCliente);
  178.            
  179.             System.out.println("El audio dice: "+respuesta);
  180.             respuestaAlCliente = procesarMensaje(idCliente, usuario, respuesta, datosDelUsuario, true);
  181.            
  182.             file.delete();
  183.            
  184.         } catch (Exception e) {
  185.             throw new Exception("Error while loading the file");
  186.         }
  187.        
  188.         return respuestaAlCliente;
  189.     }
  190.  
  191.     public String procesarMensajeVozV3(String idCliente, Usuario usuario, MultipartHttpServletRequest request,
  192.             Hashtable<String, Variable> datosDelUsuario, boolean usarAgenteCognitivo) throws Exception{
  193.         return procesarMensajeVozV4(idCliente, usuario, request,
  194.                 datosDelUsuario, usarAgenteCognitivo, Constantes.ORIGEN_CHAT_APP, "");
  195.     }
  196.    
  197.     public String procesarMensajeVozV4(String idCliente, Usuario usuario, MultipartHttpServletRequest request,
  198.             Hashtable<String, Variable> datosDelUsuario, boolean usarAgenteCognitivo,
  199.             String origen, String idInfoContacto) throws Exception{
  200.        
  201.         String respuestaAlCliente = "";
  202.        
  203.         Iterator<String> itrator = request.getFileNames();
  204.         MultipartFile multiFile = request.getFile(itrator.next());
  205.  
  206.         try {
  207.             UUID idOne = UUID.randomUUID();
  208.             String nombreDelArchivo = idOne + ".mp3";
  209.             nombreDelArchivo = nombreDelArchivo.replace("-", "");
  210.            
  211.             String path = request.getServletContext().getRealPath("/");
  212.                    
  213.             // making directories for our required path.
  214.             byte[] bytes = multiFile.getBytes();
  215.             File directory = new File(path+ "/uploads");
  216.             directory.mkdirs();
  217.            
  218.             // saving the file
  219.             File file = new File(directory.getAbsolutePath()+System.getProperty("file.separator")+idOne+".wav");
  220.            
  221.             BufferedOutputStream stream = new BufferedOutputStream(new FileOutputStream(file));
  222.             stream.write(bytes);
  223.             stream.flush();
  224.             stream.close();
  225.            
  226.             AudioFormat audioFormat = AudioFormat.WAV;
  227.             File temp = new File(System.getProperty("user.home") + "/audios-de-watson");
  228.             if(!temp.exists()){
  229.                 temp.mkdir();
  230.                 temp.deleteOnExit();
  231.             }
  232.             InputStream mp3InputStream = TextToSpeechWatson.getInstance().transformarAMp3(
  233.                     new FileInputStream(file.getAbsolutePath()), audioFormat.name().toLowerCase(), temp);
  234.             transferirAudiosAlFTP(mp3InputStream, idCliente, nombreDelArchivo);
  235.            
  236.             //Transform audio received to text
  237.             String respuesta = this.transformarAudioATexto(file, getApiSTT(), idCliente);
  238.            
  239.             Salida salida = new Salida();
  240.             String miUrl = TextToSpeechWatson.getInstance().obtenerUrlPublicaDeAudios()+idCliente+"-"+nombreDelArchivo;
  241.             salida.escribir(new Sonido(miUrl, ""), null, null, null);
  242.            
  243.             String idMensaje = "";
  244.             try{
  245.                 idMensaje = datosDelUsuario.get("idDelMensaje").getValorDeLaVariable()[0];
  246.             }catch(Exception e){}
  247.             String tipoDeProceso = "";                 
  248.             try{
  249.                 tipoDeProceso = datosDelUsuario.get("tipoDeProceso").getValorDeLaVariable()[0];
  250.             }catch(Exception e){}
  251.            
  252.             InformacionParaCrearElChat informacionParaCrearElChat = new InformacionParaCrearElChat(usuario.getIdDeLaConversacion(),
  253.                     usuario.getUsuarioIdBambu(), idCliente, tipoDeProceso, origen, idInfoContacto);
  254.            
  255.             controladorDeConversacionesConBambu.guardarUnHistorico(idMensaje, salida, null,
  256.                     TiposDeMensajesConBambu.HTML, informacionParaCrearElChat);
  257.            
  258.             System.out.println("El audio dice: "+respuesta);
  259.             respuestaAlCliente = procesarMensajeV3(idCliente, usuario, respuesta, datosDelUsuario, true, usarAgenteCognitivo);
  260.            
  261.             file.delete();
  262.            
  263.         } catch (Exception e) {
  264.             throw new Exception("Error while loading the file");
  265.         }
  266.        
  267.         return respuestaAlCliente;
  268.     }
  269.    
  270.     public String procesarUnaImagen(String idCliente, Usuario usuario, MultipartHttpServletRequest uploadImage, Hashtable<String, Variable> datosDelUsuario){
  271.         return procesarUnaImagenV1(idCliente, usuario, uploadImage,
  272.                 datosDelUsuario, Constantes.ORIGEN_CHAT_APP, "");
  273.     }
  274.    
  275.     public String procesarUnaImagenV1(String idCliente, Usuario usuario, MultipartHttpServletRequest uploadImage,
  276.             Hashtable<String, Variable> datosDelUsuario, String origen, String idInfoContacto){
  277.        
  278.         String respuestaAlCliente = "";
  279.         JSONObject respuesta = new JSONObject();
  280.        
  281.         try {
  282.             Iterator<String> itrator = uploadImage.getFileNames();
  283.             MultipartFile multiFile = uploadImage.getFile(itrator.next());
  284.            
  285.             String direccionArchivo = gestorDeArchivos.subirArchivo(multiFile, idCliente);
  286.            
  287.             if( ! direccionArchivo.isEmpty()){
  288.                 respuestaAlCliente = "/"+idCliente+TextToSpeechWatson.getInstance().obtenerUrlPublicaDeAudios()+idCliente+"-"+direccionArchivo;
  289.                 Salida salida = new Salida();
  290.                 salida.escibirUnaImagen(new Imagen(respuestaAlCliente));
  291.                
  292.                 String idMensaje = "";
  293.                 try{
  294.                     idMensaje = datosDelUsuario.get("idDelMensaje").getValorDeLaVariable()[0];
  295.                 }catch(Exception e){}
  296.                 String tipoDeProceso = "";                 
  297.                 try{
  298.                     tipoDeProceso = datosDelUsuario.get("tipoDeProceso").getValorDeLaVariable()[0];
  299.                 }catch(Exception e){}
  300.                
  301.                 InformacionParaCrearElChat informacionParaCrearElChat = new InformacionParaCrearElChat(usuario.getIdDeLaConversacion(),
  302.                         usuario.getUsuarioIdBambu(), idCliente, tipoDeProceso, origen, idInfoContacto);
  303.                
  304.                 controladorDeConversacionesConBambu.guardarUnHistorico(idMensaje, salida, null,
  305.                         TiposDeMensajesConBambu.HTML, informacionParaCrearElChat);
  306.                
  307.             }else{
  308.                 respuestaAlCliente = "error";
  309.             }
  310.         } catch (ZipException e) {
  311.             // TODO Auto-generated catch block
  312.             // e.printStackTrace();
  313.             respuestaAlCliente = "error";
  314.         } catch (IOException e) {
  315.             // TODO Auto-generated catch block
  316.             // e.printStackTrace();
  317.             respuestaAlCliente = "error";
  318.         }
  319.        
  320.         try {
  321.             respuesta.put("respuesta", respuestaAlCliente);
  322.         } catch (JSONException e) {}
  323.        
  324.         return respuesta.toString();
  325.     }
  326.  
  327.     private ArrayList<Salida> seleccionarAgenciasADecir(Salida respuestaDeWatson){
  328.        
  329.         ArrayList<Salida> resupuesta = new ArrayList<Salida>();
  330.         boolean hayAutobancos = false;
  331.         boolean hayAgencias = true;
  332.        
  333.         if(respuestaDeWatson != null){
  334.             if(respuestaDeWatson.obtenerLaRespuestaDeIBM().messageResponse() != null){
  335.                 if(respuestaDeWatson.obtenerLaRespuestaDeIBM().messageResponse().getContext() != null){
  336.                     String departamento = "";
  337.                     String ciudad = "";
  338.                     String nombreDeAgencia = "";
  339.                    
  340.                     for(Map.Entry<String, Object> contexto : respuestaDeWatson.obtenerLaRespuestaDeIBM().messageResponse().getContext().entrySet()) {
  341.                         if(contexto.getKey().equals("departamento")){
  342.                             System.out.println("Contexto: "+contexto.getKey()+", valor: "+contexto.getValue());
  343.                             departamento = contexto.getValue().toString();
  344.                             if(departamento.equals("nada")){
  345.                                 departamento = ""; 
  346.                             }
  347.                         }else if(contexto.getKey().equals("ciudad")){
  348.                             System.out.println("Contexto: "+contexto.getKey()+", valor: "+contexto.getValue());
  349.                             ciudad = contexto.getValue().toString();
  350.                             if(ciudad.equals("nada")){
  351.                                 ciudad = "";
  352.                             }
  353.                         }else if(contexto.getKey().equals("nombreDeAgencia")){
  354.                             System.out.println("Contexto: "+contexto.getKey()+", valor: "+contexto.getValue());
  355.                             nombreDeAgencia = contexto.getValue().toString();
  356.                             if(nombreDeAgencia.equals("nada")){
  357.                                 nombreDeAgencia = "";
  358.                             }
  359.                         }
  360.                     }
  361.                     Salida miAgencia = new Salida();
  362.                     Frase fraseDeLaAgencia = null;
  363.                     FraseDeLaAgencia respuesta = null;
  364.                    
  365.                     if( ! nombreDeAgencia.isEmpty() ){
  366.                         respuesta = agencias.buscarAgenciasPorNombre(nombreDeAgencia);
  367.                     }else{
  368.                         respuesta = agencias.buscarAgenciasPorCuidadYDepartamento(ciudad, departamento);
  369.                     }
  370.                    
  371.                     fraseDeLaAgencia = respuesta.getFrase();
  372.                     hayAutobancos = respuesta.isHayAutobancos();
  373.                     hayAgencias = respuesta.isHayAgencias();
  374.                    
  375.                     if(fraseDeLaAgencia != null){
  376.                         miAgencia.escribir(fraseDeLaAgencia.texto(),  respuestaDeWatson.obtenerLaRespuestaDeIBM(), respuestaDeWatson.getTemaActual(), fraseDeLaAgencia);
  377.                     }else{
  378.                         fraseDeLaAgencia = respuestaDeWatson.getTemaActual().buscarUnaFrase("noHayAgenciasParaMostrar", null);
  379.                         miAgencia.escribir(fraseDeLaAgencia.texto(),  respuestaDeWatson.obtenerLaRespuestaDeIBM(), respuestaDeWatson.getTemaActual(), fraseDeLaAgencia);
  380.                     }
  381.                    
  382.                     if(hayAgencias){
  383.                         if(hayAutobancos){
  384.                             resupuesta.add(respuestaDeWatson);
  385.                         }else{
  386.                             Salida sinAutobancos = new Salida();
  387.                             Frase fraseDeSinAutobanco = respuestaDeWatson.getTemaActual().buscarUnaFrase("mostrarSinAutobancos", null);
  388.                             //int idDelSonidoAUsar = Integer.valueOf(fraseDeSinAutobanco.texto());
  389.                             //Sonido sonido = fraseDeSinAutobanco.obtenerSonidoAUsar(idDelSonidoAUsar);
  390.                             sinAutobancos.escribir(fraseDeSinAutobanco.texto(),  respuestaDeWatson.obtenerLaRespuestaDeIBM(), respuestaDeWatson.getTemaActual(), fraseDeSinAutobanco);
  391.                             //sinAutobancos.escribir(sonido,  respuestaDeWatson.obtenerLaRespuestaDeIBM(), respuestaDeWatson.getTemaActual(), fraseDeSinAutobanco);
  392.  
  393.                             resupuesta.add(sinAutobancos);
  394.                         }
  395.                         resupuesta.add(miAgencia);
  396.                     }else{
  397.                         resupuesta.add(miAgencia);
  398.                     }
  399.            
  400.                 }
  401.             }
  402.         }
  403.         return resupuesta;
  404.     }
  405.    
  406.     private String procesarMensaje(String idCliente, Usuario usuario, String mensaje,
  407.             Hashtable<String, Variable> datosEnVariables, boolean vieneDeUnAudio) throws Exception
  408.     {
  409.         JSONObject respuesta = new JSONObject();
  410.        
  411.         String[] textos = null;
  412.         ArrayList<Salida> salidas = misConversacionesConLosClientes.conversarConElAgente(idCliente, usuario, mensaje, datosEnVariables);
  413.        
  414.         String texto = "";
  415.         JSONArray arrayList = new JSONArray();
  416.        
  417.         System.out.println(salidas.size());
  418.         boolean seTerminoElChat = false;
  419.        
  420.         for(int i = 0; i < salidas.size(); i++){
  421.            
  422.             texto = salidas.get(i).getMiTexto();
  423.             System.out.println();
  424.             System.out.println("texto  "+texto);
  425.             System.out.println();
  426.            
  427.             String idFrase = salidas.get(i).getFraseActual().obtenerNombreDeLaFrase();
  428.             texto = texto.replace("$", "");
  429.            
  430.             if(idFrase.equals("saldoCredito") && usuario.getEstaLogueado())
  431.             {
  432.                 textos = extraerDatos.obtenerSaldoTarjetaCredito( texto, usuario.getLlaveSession(), usuario.getUsuarioId());
  433.                 for(int j = 0; j < textos.length; j++)
  434.                 {
  435.                     JSONObject jsonObject = new JSONObject();
  436.                     jsonObject.put("texto", textos[j]);
  437.                     jsonObject.put("audio", "");   
  438.                     arrayList.put(jsonObject);
  439.                 }
  440.             }
  441.             else if(idFrase.equals("disponibleCredito") && usuario.getEstaLogueado())
  442.             {
  443.                 textos = extraerDatos.obtenerDisponibleTarjetaCredito(texto, usuario.getLlaveSession(), usuario.getUsuarioId());
  444.                 for(int j = 0; j < textos.length; j++)
  445.                 {
  446.                     JSONObject jsonObject = new JSONObject();
  447.                     jsonObject.put("texto", textos[j]);
  448.                     jsonObject.put("audio", "");   
  449.                     arrayList.put(jsonObject);
  450.                 }
  451.             }
  452.             else if((idFrase.equals("saldoCuentaAhorros") || idFrase.equals("disponibleCuentaAhorros")) && usuario.getEstaLogueado())
  453.             {
  454.                 textos = extraerDatos.obtenerSaldoCuentaAhorros(texto, usuario.getLlaveSession(), usuario.getUsuarioId());
  455.                 for(int j = 0; j < textos.length; j++)
  456.                 {
  457.                     JSONObject jsonObject = new JSONObject();
  458.                     jsonObject.put("texto", textos[j]);
  459.                     jsonObject.put("audio", "");   
  460.                     arrayList.put(jsonObject);
  461.                 }
  462.             }
  463.             else if(idFrase.equals("tasaDolar")||idFrase.equals("tasaEuro")){
  464.                
  465.                 texto = extraerDatos.obtenerTasaCambio(texto);
  466.                
  467.                 if(!arrayList.toString().contains("\"texto\":\""+texto+"\""))
  468.                 {
  469.                     JSONObject jsonObject = new JSONObject();
  470.                     jsonObject.put("texto", texto);
  471.                     jsonObject.put("audio", urlPublicaAudios+TextToSpeechWatson.getInstance().getAudioToURL(texto, true, idCliente));  
  472.                     arrayList.put(jsonObject);
  473.                 }
  474.             }
  475.             else if(idFrase.equals("movimientosTarjeta") || idFrase.equals("movimientosCuenta") && usuario.getEstaLogueado())
  476.             {
  477.                 if(idFrase.equals("movimientosTarjeta"))
  478.                     textos = extraerDatos.obtenerMovimientos(texto, usuario.getLlaveSession(), usuario.getUsuarioId(), "4");
  479.                 if(idFrase.equals("movimientosCuenta"))
  480.                     textos = extraerDatos.obtenerMovimientos(texto, usuario.getLlaveSession(), usuario.getUsuarioId(), "2");
  481.                
  482.                 for(int j = 0; j < textos.length; j++)
  483.                 {
  484.                     JSONObject jsonObject = new JSONObject();
  485.                     jsonObject.put("texto", textos[j]);
  486.                     jsonObject.put("audio", "");   
  487.                     arrayList.put(jsonObject);
  488.                 }
  489.             }else if(idFrase.equals("mostrarAgencias")){
  490.                 ArrayList<Salida> agencias = seleccionarAgenciasADecir(salidas.get(i));
  491.                
  492.                 for(Salida agencia: agencias){
  493.                     JSONObject jsonObject = new JSONObject();
  494.                     jsonObject.put("texto", agencia.getMiTexto());
  495.                     jsonObject.put("audio", agencia.getMiSonido().url());  
  496.                     arrayList.put(jsonObject);
  497.                 }
  498.                
  499.             }
  500.             else{
  501.                 JSONObject jsonObject = new JSONObject();
  502.                 jsonObject.put("texto", texto);
  503.                 jsonObject.put("audio", salidas.get(i).getMiSonido().url());   
  504.                 arrayList.put(jsonObject);
  505.             }
  506.            
  507.             if(salidas.get(i).seTerminoElChat() || idFrase.equals("despedida") || idFrase.equals("noQuiereHacerOtraConsulta"))
  508.                 seTerminoElChat = true;
  509.         }
  510.        
  511.         respuesta.put("textos", arrayList);
  512.         respuesta.put("seTerminoElChat", seTerminoElChat);
  513.         System.out.println("Respuesta Chat: "+ respuesta.toString());
  514.         /*String loQueElClienteDijo = "";
  515.         try {
  516.             loQueElClienteDijo = salidas.get(0).obtenerLaRespuestaDeIBM().loQueElClienteDijoFue();
  517.         }catch(Exception e){
  518.             loQueElClienteDijo = "Hola!";
  519.         }
  520.         historicoDeConversaciones.agregarHistorialALaConversacion(usuario.getIdSesion(), loQueElClienteDijo, respuesta.toString());*/
  521.        
  522.         return respuesta.toString();
  523.        
  524.     }
  525.  
  526.     private String procesarMensajeConocerte(Usuario usuario, String mensaje, Date date, String workspace) throws Exception
  527.     {
  528.         JSONObject respuesta = new JSONObject();
  529.         String texto = "";
  530.         JSONArray arrayList = new JSONArray();
  531.         ArrayList<Salida> salida = null;
  532.         boolean seTerminoElChat = false;
  533.        
  534.         /*if(usuario.getEstaLogueado()){
  535.             salida = misConversacionesConLosClientes.conversarConElAgente(usuario, mensaje, true);
  536.        
  537.             for(int i = 0; i < salida.size(); i++){
  538.                 texto = salida.get(i).getMiTexto();
  539.                 String idFrase = salida.get(i).getFraseActual().obtenerNombreDeLaFrase();
  540.                
  541.                 JSONObject jsonObject = new JSONObject();
  542.                 jsonObject.put("texto", texto);
  543.                 jsonObject.put("audio", salida.get(i).getMiSonido().url());
  544.                 arrayList.put(jsonObject);
  545.                
  546.                 if(idFrase.equals("despedidaConocerte"))
  547.                 {
  548.                     seTerminoElChat = true;
  549.                    
  550.                     Categorias categorias = new Categorias(
  551.                             obtenerValorDeGustosDeRestaurantes(usuario.getUsuarioId()),
  552.                             obtenerValorDeGustosDeBelleza(usuario.getUsuarioId()),
  553.                             obtenerValorDeGustosDeHoteles(usuario.getUsuarioId())
  554.                             );
  555.                    
  556.                     usuarioDao.insertar(usuario.getUsuarioId(), categorias);
  557.                    
  558.                     usuario.setCategorias(categorias);
  559.                 }
  560.             }
  561.         }
  562.        
  563.         respuesta.put("textos", arrayList);
  564.         respuesta.put("seTerminoElChat", seTerminoElChat);
  565.         System.out.println("Respuesta Conocerte: "+ respuesta.toString());
  566.        
  567.         if(usuario.getEstaLogueado()){
  568.             String loQueElClienteDijo = "";
  569.             try {
  570.                 loQueElClienteDijo = salida.get(0).obtenerLaRespuestaDeIBM().loQueElClienteDijoFue();
  571.             }catch(Exception e){
  572.                 loQueElClienteDijo = "Hola!";
  573.             }
  574.             //historicoDeConversaciones.agregarHistorialALaConversacionEspecifica(usuario.getIdSesion(), loQueElClienteDijo, respuesta.toString());
  575.         }*/
  576.        
  577.         return respuesta.toString();
  578.     }
  579.  
  580.     private String procesarMensajeV3(String idCliente, Usuario usuario, String mensaje, Hashtable<String,
  581.             Variable> datosEnVariables, boolean vieneDeUnAudio, boolean usarAgenteCognitivo) throws Exception
  582.     {
  583.         String tipoDeProceso = "";                 
  584.         try{
  585.             tipoDeProceso = datosEnVariables.get("tipoDeProceso").getValorDeLaVariable()[0];
  586.         }catch(Exception e){}
  587.        
  588.         InformacionParaCrearElChat informacionParaCrearElChat = new InformacionParaCrearElChat(usuario.getIdDeLaConversacion(),
  589.                 usuario.getUsuarioIdBambu(), idCliente, tipoDeProceso, Constantes.ORIGEN_CHAT_APP, "");
  590.        
  591.         return procesarMensajeV4(idCliente, usuario, mensaje, datosEnVariables, vieneDeUnAudio,
  592.                 usarAgenteCognitivo, informacionParaCrearElChat);
  593.        
  594.         /*return procesarMensajeDeCorreo(idCliente, usuario, "Estimado Asociad@:\r\n" +
  595.                 "Nos complace enviarle su Estado de Cuenta con corte al día 12 de Octubre del 2017.\r\n" +
  596.                 "\r\n" +
  597.                 "Cordialmente,", datosEnVariables, false, true, "Hola Ncubo", "sergio@gmail.com");*/
  598.        
  599.     }
  600.    
  601.     public String procesarMensajeDeCorreo(String idCliente, Usuario usuario, String mensaje, Hashtable<String,
  602.             Variable> datosEnVariables, boolean vieneDeUnAudio, boolean usarAgenteCognitivo, String titulo, String correo) throws Exception {
  603.        
  604.         String tipoDeProceso = "";                 
  605.         try{
  606.             tipoDeProceso = datosEnVariables.get("tipoDeProceso").getValorDeLaVariable()[0];
  607.         }catch(Exception e){}
  608.        
  609.         InformacionParaCrearElChat informacionParaCrearElChat = new InformacionParaCrearElChat(usuario.getIdDeLaConversacion(),
  610.                 usuario.getUsuarioIdBambu(), idCliente, tipoDeProceso, Constantes.ORIGEN_CHAT_EMAIL, correo);
  611.         informacionParaCrearElChat.setTituloDelChat(titulo);
  612.        
  613.         return procesarMensajeV4(idCliente, usuario, mensaje, datosEnVariables, vieneDeUnAudio,
  614.                 usarAgenteCognitivo, informacionParaCrearElChat);
  615.     }
  616.    
  617.     private String procesarMensajeV4(String idCliente, Usuario usuario, String mensaje, Hashtable<String,
  618.             Variable> datosEnVariables, boolean vieneDeUnAudio, boolean usarAgenteCognitivo, InformacionParaCrearElChat informacionParaCrearElChat) throws Exception
  619.     {
  620.         JSONObject respuesta = new JSONObject();
  621.        
  622.         if(! mensaje.isEmpty()){
  623.            
  624.             if( ! mensaje.contains(Constantes.nuevoChat)){
  625.                
  626.                 String idChat = controladorDeConversacionesConBambu.enviarMensajeDeTexto(mensaje, TiposDeMensajesConBambu.HTML, informacionParaCrearElChat);
  627.                
  628.                 if( ! vieneDeUnAudio){
  629.                     Salida salida = new Salida();
  630.                     salida.escribir(mensaje, null, null, null);
  631.                     String idMensaje = "";                 
  632.                     try{
  633.                         idMensaje = datosEnVariables.get("idDelMensaje").getValorDeLaVariable()[0];
  634.                     }catch(Exception e){}
  635.                    
  636.                     if( ! usuario.getIdDeLaConversacion().equals(idChat)){
  637.                         usuario.setIdDeLaConversacion(idChat);
  638.                     }
  639.                    
  640.                     controladorDeConversacionesConBambu.guardarUnHistorico(idMensaje,
  641.                             salida, null, TiposDeMensajesConBambu.HTML, informacionParaCrearElChat);
  642.                 }
  643.             }else{
  644.                 controladorDeConversacionesConBambu.crearUnaConversacion(informacionParaCrearElChat);
  645.                 //controladorDeConversacionesConBambu.enviarMensajeDeTexto(usuario.getIdDeLaConversacion(), usuario.getUsuarioIdBambu(), "hola", TiposDeMensajesConBambu.HTML, idCliente, tipoDeProceso);
  646.             }
  647.            
  648.             if(usarAgenteCognitivo){
  649.                 if( controladorDeConversacionesConBambu.obtenerElUsuarioQueInicializoLaConversacion(usuario.getIdDeLaConversacion()).equals(usuario.getUsuarioIdBambu())  
  650.                         || mensaje.contains(Constantes.nuevoChat) || mensaje.contains("@"+this.getNombreDelAgenteCognitivo())){
  651.                     ArrayList<Salida> salidas = misConversacionesConLosClientes.conversarConElAgente(idCliente, usuario, mensaje, datosEnVariables);
  652.                    
  653.                     String texto = "";
  654.                     JSONArray arrayList = new JSONArray();
  655.                    
  656.                     System.out.println(salidas.size());
  657.                     boolean seTerminoElChat = false;
  658.                     ArrayList<Vineta> misVinetas = new ArrayList<Vineta>();
  659.                     boolean seEntendioLaRespuesta = true;
  660.                    
  661.                     for(int i = 0; i < salidas.size(); i++){
  662.                        
  663.                         texto = salidas.get(i).getMiTexto();
  664.                         System.out.println();
  665.                         System.out.println("Texto: "+texto);
  666.                         System.out.println();
  667.                        
  668.                         String idFrase = salidas.get(i).getFraseActual().obtenerNombreDeLaFrase();
  669.                        
  670.                         JSONObject jsonObject = new JSONObject();
  671.                         jsonObject.put("texto", texto);
  672.                         jsonObject.put("audio", salidas.get(i).getMiSonido().url());   
  673.                         if(salidas.get(i).getMisVinetas().size() > 0){
  674.                             for(Vineta miVineta: salidas.get(i).getMisVinetas()){
  675.                                 if(miVineta.getTipoDeVineta().equals(Constantes.TIPO_VINETA_ILUSTRATIVA))
  676.                                     jsonObject.put("vineta", miVineta.getContenido());
  677.                                 else
  678.                                     misVinetas.add(miVineta);
  679.                             }
  680.                         }else{
  681.                             jsonObject.put("vineta", "");
  682.                         }
  683.                        
  684.                         arrayList.put(jsonObject);
  685.                        
  686.                         if(salidas.get(i).seTerminoElChat() || idFrase.equals("despedida") || idFrase.equals("noQuiereHacerOtraConsulta")){
  687.                             //borrarUnaConversacion(idCliente, usuario.getIdSesion());
  688.                             seTerminoElChat = true;
  689.                         }
  690.                        
  691.                         if( idFrase.contains("noEntendi") || idFrase.contains("fueraDeContextoGeneral") || idFrase.contains("errorDeComunicacionConWatson") ||
  692.                                 idFrase.contains("quiereHacerOtraConsulta") || idFrase.contains("noQuiereHacerOtraConsulta") ||
  693.                                 idFrase.contains("conjuncionRepetirFrase") || idFrase.contains("recordatorTemasPendientes") ||
  694.                                 idFrase.contains("consultaAsehologic") || idFrase.contains("consultaAsehologicDatosPersonales") ||
  695.                                 texto.contains("no te entiendo") || texto.contains("No logro comprenderte")){
  696.                             seEntendioLaRespuesta = false;
  697.                         }
  698.                        
  699.                         if( seEntendioLaRespuesta ){
  700.                             informacionParaCrearElChat.setIdUsuarioQuienLoCreo(this.getIdDelAgenteCognitivo());
  701.                            
  702.                             if( ! texto.isEmpty() && ! mensaje.contains(Constantes.nuevoChat)){
  703.                                 controladorDeConversacionesConBambu.enviarMensajeDeTexto(texto, TiposDeMensajesConBambu.HTML, informacionParaCrearElChat);
  704.                             }
  705.                             controladorDeConversacionesConBambu.guardarUnHistorico("", salidas.get(i), null,
  706.                                     TiposDeMensajesConBambu.HTML, informacionParaCrearElChat);
  707.                         }
  708.                        
  709.                     }
  710.                    
  711.                     respuesta.put("textos", arrayList);
  712.                     respuesta.put("seTerminoElChat", seTerminoElChat);
  713.                     if( ! misVinetas.isEmpty()){
  714.                         JSONArray vinetas = new JSONArray();
  715.                         for(Vineta miVineta: misVinetas){
  716.                             vinetas.put(miVineta);
  717.                         }
  718.                         respuesta.put("vinetas", vinetas);
  719.                     }else{
  720.                         respuesta.put("vinetas", "");
  721.                     }
  722.                    
  723.                     System.out.println("Respuesta del Chat Cognitivo: "+ respuesta.toString());
  724.                 }
  725.             }
  726.         }
  727.        
  728.         return respuesta.toString();
  729.        
  730.     }
  731.    
  732.     public String getIntent(MessageResponse response)
  733.     {
  734.         List<Intent> intents = response.getIntents();
  735.         float confidence = 0;
  736.         String intent = "";
  737.         for(int i = 0; i < intents.size(); i++ )
  738.         {
  739.             System.out.println("intent  "+ intents.get(i).getIntent()+"   "+intents.get(i).getConfidence().floatValue());
  740.             if(intents.get(i).getConfidence().floatValue()> confidence)
  741.             {
  742.                 confidence = intents.get(i).getConfidence().floatValue();
  743.                 intent = intents.get(i).getIntent();
  744.             }  
  745.         }
  746.         return intent;
  747.     }
  748.  
  749.     public String getText(MessageResponse response)
  750.     {
  751.         StringBuilder stringBuilder = new StringBuilder();
  752.         stringBuilder.append("");
  753.        
  754.         List<String> mensajes = response.getText();
  755.         for (String mensaje : mensajes)
  756.         {
  757.             stringBuilder.append(mensaje);
  758.         }
  759.  
  760.         return stringBuilder.toString();
  761.     }
  762.    
  763.     public String[] getEntities(MessageResponse response)
  764.     {
  765.         List<Entity> entities = response.getEntities();
  766.         String[] entitiesArray = new String [entities.size()];
  767.         for(int i = 0; i < entities.size(); i++ )
  768.         {
  769.             entitiesArray[i]= entities.get(i).getEntity();
  770.         }
  771.         return entitiesArray;
  772.     }
  773.    
  774.     public String getVariable(String context, String variable) throws JSONException
  775.     {
  776.         String value = "";
  777.                
  778.         JSONObject json = new JSONObject(context);
  779.         if(json.has(variable))
  780.             value = json.get(variable).toString();
  781.        
  782.         return value;
  783.     }
  784.  
  785.     private void inicializarGeneradorDeAudiosSingleton(){
  786.        
  787.         TextToSpeechWatson.getInstance(this.getUserTextToSpeech(), this.getPasswordTextToSpeech(),
  788.                 this.getVoiceTextToSpeech(), ftp.getUsuario(), ftp.getPassword(), ftp.getHost(), ftp.getPuerto(), ftp.getCarpeta(), this.getPathAudio(), this.geturlPublicaAudios());
  789.        
  790.         SpeechToTextWatson.getInstance(this.getUserSpeechToText(), this.getPasswordSpeechToText(),
  791.                 this.getVoiceSpeechToText(), ftp.getUsuario(), ftp.getPassword(), ftp.getHost(), ftp.getPuerto(), ftp.getCarpeta(), this.getPathAudio(), this.geturlPublicaAudios());
  792.        
  793.     }
  794.    
  795.     private void inicializadorDeLaBD(){
  796.         ConexionALaDB.getInstance(config.getUrl(), config.getNombreBase(), config.getUsuario(), config.getClave());
  797.     }
  798.    
  799.     public void generarTodosLosAudiosEstaticos(String idCliente){
  800.         System.out.println("El path xml es: "+getPathXML());
  801.         misConversacionesConLosClientes.generarTodosLosAudiosEstaticos(idCliente);
  802.     }
  803.    
  804.     public void generarTodosLosAudiosEstaticosInternamente(){
  805.         misConversacionesConLosClientes.generarTodosLosAudiosEstaticosInternamente();
  806.     }
  807.    
  808.     private class HiloParaMonitorearLaBandejaDeCorreos extends Thread{
  809.        
  810.         public HiloParaMonitorearLaBandejaDeCorreos() {}
  811.        
  812.         public void run(){
  813.            
  814.             System.out.println("Hilo para monitorear la bamdeja de mensajes ...");
  815.             try {
  816.                 Thread.sleep(20000);
  817.             } catch (InterruptedException e1) {
  818.                 // TODO Auto-generated catch block
  819.                 e1.printStackTrace();
  820.             }
  821.            
  822.             Usuario usuario = new Usuario("1213434hjhjhjkasdkjasdow", "nimbus", "1213434hjhjhjkasdkjasdow");
  823.             Hashtable<String, Variable> hashtable = new Hashtable<>();
  824.  
  825.             String[] email = new String[1];
  826.             email[0] = "";
  827.             hashtable.put("email", new Variable("email", email, TiposDeVariables.CONTEXTO));
  828.            
  829.             String[] celular = new String[1];
  830.             celular[0] = "";
  831.             hashtable.put("numeroCelular", new Variable("numeroCelular", celular, TiposDeVariables.CONTEXTO));
  832.            
  833.             String[] nombreCliente = new String[1];
  834.             nombreCliente[0] = "";
  835.             hashtable.put("nombreCliente", new Variable("nombreCliente", nombreCliente, TiposDeVariables.CONTEXTO));
  836.            
  837.             String[] idDelMensaje = new String[1];
  838.             idDelMensaje[0] = "34jqhejqhsajkjahdjahsjdad";
  839.             hashtable.put("idDelMensaje", new Variable("idDelMensaje", idDelMensaje, TiposDeVariables.CONTEXTO));
  840.            
  841.             String[] tipoDeProceso = new String[1];
  842.             tipoDeProceso[0] = "BandejaDeMensajes";
  843.             hashtable.put("tipoDeProceso", new Variable("tipoDeProceso", tipoDeProceso, TiposDeVariables.CONTEXTO));
  844.            
  845.             while(true) {
  846.                
  847.                 try {
  848.                     System.out.println("Hay correo nuevo.");
  849.                     procesarMensajeDeCorreo("nimbus", usuario, "Hola! Como has estado?", hashtable, false, true, "Hola", "sergio@gmail.com");
  850.                 } catch (Exception e) {
  851.                     // TODO Auto-generated catch block
  852.                     e.printStackTrace();
  853.                 }
  854.                
  855.                 break;
  856.             }
  857.            
  858.             System.out.println("Se termino el hilo para monitorear la bandeja de mensajes.");
  859.            
  860.         }
  861.        
  862.     }
  863.    
  864.     /*public void generarAudioEstatico(String id){
  865.         System.out.println("El path xml es: "+getPathXML());
  866.         int index = 0;
  867.         try{
  868.             index = Integer.parseInt(id);
  869.             misConversaciones.generarAudiosEstaticosDeUnTema(this.getUserTextToSpeech(), this.getPasswordTextToSpeech(), this.getVoiceTextToSpeech(),
  870.                     this.getPathAudio(), ftp.getUsuario(), ftp.getPassword(), ftp.getHost(), ftp.getPuerto(), ftp.getCarpeta(), index, this.geturlPublicaAudios());
  871.         }catch(Exception e){
  872.             System.out.println("Error al generar el audio estatico: "+e.getMessage());
  873.         }
  874.     }
  875.    
  876.     public void cargarElNombreDeUnSonidoEstaticoEnMemoria(int indexTema, int indexFrase, String idNombreTema, String nombreDelArchivo){
  877.         System.out.println("El path xml es: "+getPathXML());
  878.         try{
  879.             misConversaciones.cargarElNombreDeUnSonidoEstaticoEnMemoria(this.getPathAudio(), this.geturlPublicaAudios(), indexTema, indexFrase, idNombreTema, nombreDelArchivo);
  880.         }catch(Exception e){
  881.             System.out.println("Error al generar el audio estatico: "+e.getMessage());
  882.         }
  883.     }*/
  884.    
  885.     public String borrarUnaConversacion(String idCliente, String idSesion){
  886.         return misConversacionesConLosClientes.borrarUnaConversacion(idCliente, idSesion);
  887.     }
  888.    
  889.     public String verTodasLasCoversacionesActivas(String idCliente){
  890.         return misConversacionesConLosClientes.verTodasLasCoversacionesActivas(idCliente);
  891.     }
  892.    
  893.     public String verTodosLosClientesActivos(String idCliente){
  894.         return misConversacionesConLosClientes.verTodosLosClientesActivos(idCliente);
  895.     }
  896.    
  897.     public String verLosIdsDeLasConversacionesActivasPorCliente(String idCliente, String idDelCliente){
  898.         return misConversacionesConLosClientes.verLosIdsDeLasConversacionesActivasPorCliente(idCliente, idDelCliente);
  899.     }
  900.    
  901.     public String borrarTodasLasConversacionesDeUnCliente(String idCliente, String idDelCliente){
  902.         return misConversacionesConLosClientes.borrarTodasLasConversacionesDeUnCliente(idCliente, idDelCliente);
  903.     }
  904.    
  905.     /*public String verMiTemario(){
  906.         return misConversacionesConLosClientes.verMiTemario();
  907.     }*/
  908.    
  909.     public String verElHistoricoDeLaConversacion(String idCliente, String idSesion, String fecha){
  910.         return misConversacionesConLosClientes.verElHistoricoDeLaConversacion(idCliente, idSesion, fecha);
  911.     }
  912.  
  913.     public String buscarConversacionesQueNoHanSidoVerificadasPorTema(String idTema,
  914.             String idCliente) throws ClassNotFoundException, SQLException{
  915.         return historicoDeConversaciones.buscarConversacionesQueNoHanSidoVerificadasPorTema(idTema, idCliente);
  916.     }
  917.    
  918.     public String cambiarDeEstadoAVerificadoDeLaConversacion(String idUsuario, String idSesion, String fecha,
  919.             String idCliente) throws ClassNotFoundException, SQLException{
  920.         return historicoDeConversaciones.cambiarDeEstadoAVerificadoDeLaConversacion(idUsuario, idSesion, fecha, idCliente);
  921.     }
  922.    
  923.     public String transformarAudioATexto(File inputstream, String cualAPI, String idCliente){
  924.         return audios.transformarAudioATexto(inputstream, cualAPI, idCliente);
  925.     }
  926.    
  927.     private void transferirAudiosAlFTP(InputStream in, String idCliente, String nombreFile){
  928.         audios.transferirAudiosAlFTP(in, idCliente, nombreFile);
  929.     }
  930.    
  931.     public String transformarAudioATexto(File inputStreamMp3, File inputStreamWav, String cualAPI, String idCliente){
  932.         return audios.transformarAudioMp3AWavYLuegoATexto(inputStreamMp3, inputStreamWav, cualAPI, idCliente);
  933.     }
  934.    
  935.     public String getUser()
  936.     {
  937.         return user;
  938.     }
  939.     public String getPassword()
  940.     {
  941.         return password;
  942.     }
  943.    
  944.     public void setUser(String user)
  945.     {
  946.         this.user = user;
  947.     }
  948.     public void setPassword(String password)
  949.     {
  950.         this.password = password;
  951.     }
  952.     public String getWorkspaceDeChats() {
  953.         return workspaceDeChats;
  954.     }
  955.     public void setWorkspaceDeChats(String workspaceDeChats) {
  956.         this.workspaceDeChats = workspaceDeChats;
  957.     }
  958.     public String getWorkspaceDeConocerte() {
  959.         return workspaceDeConocerte;
  960.     }
  961.     public void setWorkspaceDeConocerte(String workspaceDeConocerte) {
  962.         this.workspaceDeConocerte = workspaceDeConocerte;
  963.     }
  964.  
  965.     public String getUserTextToSpeech() {
  966.         return userTextToSpeech;
  967.     }
  968.  
  969.     public void setUserTextToSpeech(String userTextToSpeech) {
  970.         this.userTextToSpeech = userTextToSpeech;
  971.     }
  972.  
  973.     public String getPasswordTextToSpeech() {
  974.         return passwordTextToSpeech;
  975.     }
  976.  
  977.     public void setPasswordTextToSpeech(String passwordTextToSpeech) {
  978.         this.passwordTextToSpeech = passwordTextToSpeech;
  979.     }
  980.  
  981.     public String getVoiceTextToSpeech() {
  982.         return voiceTextToSpeech;
  983.     }
  984.  
  985.     public void setVoiceTextToSpeech(String voiceTextToSpeech) {
  986.         this.voiceTextToSpeech = voiceTextToSpeech;
  987.     }
  988.    
  989.     public String getPathAudio(){
  990.         return pathAudio;
  991.     }
  992.  
  993.     public void setPathAudio(String path){
  994.         this.pathAudio = path;
  995.     }
  996.    
  997.     public String geturlPublicaAudios(){
  998.         return urlPublicaAudios;
  999.     }
  1000.  
  1001.     public void seturlPublicaAudios(String path){
  1002.         this.urlPublicaAudios = path;
  1003.     }
  1004.    
  1005.     public String getPathXML() {
  1006.         return pathXML;
  1007.     }
  1008.  
  1009.     public void setPathXML(String pathXML) {
  1010.         this.pathXML = pathXML;
  1011.     }
  1012.    
  1013.     /*public double obtenerValorDeGustosDeHoteles(String idCliente) throws Exception
  1014.     {
  1015.         return misConversaciones.obtenerCliente(idCliente).obtenerValorDeGustosDeHoteles();
  1016.     }
  1017.  
  1018.     public double obtenerValorDeGustosDeRestaurantes(String idCliente) throws Exception
  1019.     {
  1020.         return misConversaciones.obtenerCliente(idCliente).obtenerValorDeGustosDeRestaurantes();
  1021.     }
  1022.    
  1023.     public double obtenerValorDeGustosDeBelleza(String idCliente) throws Exception
  1024.     {
  1025.         return misConversaciones.obtenerCliente(idCliente).obtenerValorDeGustosDeBelleza();
  1026.     }
  1027.    
  1028.     public void guardarSiTieneTarjetaCredito(String idCliente, boolean valor) throws Exception
  1029.     {
  1030.         misConversaciones.obtenerCliente(idCliente).guardarSiTieneTarjetaCredito(valor);
  1031.     }
  1032.    
  1033.     public Boolean obtenerSiTieneTarjetaCredito(String idCliente) throws Exception
  1034.     {
  1035.         return misConversaciones.obtenerCliente(idCliente).obtenerSiTieneTarjetaCredito();
  1036.     }
  1037.    
  1038.     public void guardarSiTieneCuentaAhorros(String idCliente, boolean valor) throws Exception
  1039.     {
  1040.         misConversaciones.obtenerCliente(idCliente).guardarSiTieneCuentaAhorros(valor);
  1041.     }
  1042.    
  1043.     public Boolean obtenerSiTieneCuentaAhorros(String idCliente) throws Exception
  1044.     {
  1045.         return misConversaciones.obtenerCliente(idCliente).obtenerSiTieneCuentaAhorros();
  1046.     }*/
  1047.    
  1048.     public String getPathXMLAudios() {
  1049.         return pathXMLAudios;
  1050.     }
  1051.  
  1052.     public void setPathXMLAudios(String pathXMLAudios) {
  1053.         this.pathXMLAudios = pathXMLAudios;
  1054.     }
  1055.    
  1056.     public String getUserSpeechToText() {
  1057.         return userSpeechToText;
  1058.     }
  1059.  
  1060.     public void setUserSpeechToText(String userSpeechToText) {
  1061.         this.userSpeechToText = userSpeechToText;
  1062.     }
  1063.  
  1064.     public String getPasswordSpeechToText() {
  1065.         return passwordSpeechToText;
  1066.     }
  1067.  
  1068.     public void setPasswordSpeechToText(String passwordSpeechToText) {
  1069.         this.passwordSpeechToText = passwordSpeechToText;
  1070.     }
  1071.  
  1072.     public String getVoiceSpeechToText() {
  1073.         return voiceSpeechToText;
  1074.     }
  1075.  
  1076.     public void setVoiceSpeechToText(String voiceSpeechToText) {
  1077.         this.voiceSpeechToText = voiceSpeechToText;
  1078.     }
  1079.    
  1080.     public String getApiKeyGoogle() {
  1081.         return apiKeyGoogle;
  1082.     }
  1083.  
  1084.     public void setApiKeyGoogle(String apiKeyGoogle) {
  1085.         this.apiKeyGoogle = apiKeyGoogle;
  1086.     }
  1087.  
  1088.     public String getApiSTT() {
  1089.         return apiSTT;
  1090.     }
  1091.  
  1092.     public void setApiSTT(String apiSTT) {
  1093.         this.apiSTT = apiSTT;
  1094.     }
  1095.    
  1096.     public String getNombreDelAgenteCognitivo() {
  1097.         return nombreDelAgenteCognitivo;
  1098.     }
  1099.  
  1100.     public void setNombreDelAgenteCognitivo(String nombreDelAgenteCognitivo) {
  1101.         this.nombreDelAgenteCognitivo = nombreDelAgenteCognitivo;
  1102.     }
  1103.  
  1104.     public String getIdDelAgenteCognitivo() {
  1105.         return idDelAgenteCognitivo;
  1106.     }
  1107.  
  1108.     public void setIdDelAgenteCognitivo(String idDelAgenteCognitivo) {
  1109.         this.idDelAgenteCognitivo = idDelAgenteCognitivo;
  1110.     }
  1111.    
  1112. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement