Exemplo n.º 1
0
        private IMessageActivity MessageReceivedAsync_Musica(IDialogContext context, String busqueda, String profile, DoWorkEventArgs e, String calidad)
        {
            //Creamos un mensaje que se le enivará al usuario
            IMessageActivity mensajeDelAdjunto = context.MakeMessage();

            try
            {
                //Creamos el objeto Buscador encargado de buscar y descargar
                Buscador buscador = new Buscador(busqueda, 1, ref context);

                //Buscamos y cargamos el/los videos
                VideoInformation urlVideoEncontrado = buscador.BuscarVideos();

                //Obtenemos la ruta donde se ha descargado de manera temporal el mp3
                String rutaDelMP3 = buscador.DescargarVideo(urlVideoEncontrado.Url, calidad, true);

                //Creamos el adjunto con la ruta y la url del vídeo
                Attachment adjunto = Dialogos.AdjuntarAudio(rutaDelMP3, urlVideoEncontrado);

                //Ahora añadimos nuestros adjuntos al mensaje
                mensajeDelAdjunto.Attachments = new List <Attachment> {
                    adjunto
                };

                ArrayList listaArgumentos = new ArrayList {
                    adjunto
                };
                BackgroundWorker bw_DDelMusica = new BackgroundWorker                        //Creamos una tarea en segundo plano
                {
                    WorkerSupportsCancellation = true                                        //Permitimos que se pueda cancelar con bw.CancelAsync()
                };
                bw_DDelMusica.DoWork += bw_DDelMusica_IniciarTarea;                          //Definimos cual es el método que iniciará la tarea
                bw_DDelMusica.RunWorkerAsync(listaArgumentos);
                mensajeDelAdjunto.Text = Dialogos.msg_DescargaMensaje;                       //Mandamos iniciar la tarea mandandole nuestra lista de argumentos

                return(mensajeDelAdjunto);
            }
            catch
            {
                //En caso de producirse un error en la descarga o conversión
                mensajeDelAdjunto.Text = Dialogos.msg_ErrorDescargaAudio;
            }

            return(mensajeDelAdjunto);
        }
Exemplo n.º 2
0
        private async Task SeleccionDeOpciones(IDialogContext context, IAwaitable <object> result)
        {
            //Creamos la actividad
            Activity activity = await result as Activity;

            //Si pregunta por un chiste
            if (Dialogos.ComprobarMensaje(activity.Text, Dialogos.ord_Cuentame, Dialogos.ord_Chiste))
            {
                await context.PostAsync(Dialogos.MensajeAleatorio(Dialogos.lst_Chiste));
            }
            //Si pregunta por una descarga de musica
            else if (Dialogos.ComprobarMensaje(activity.Text, Dialogos.ord_DescargaM, Dialogos.ord_Musica))
            {
                escribirMusica = true;
                await context.PostAsync(Dialogos.msg_EscribeCancion);
            }
            else
            {
                if (escribirMusica)
                {
                    if (!descargarMusica)
                    {
                        descargarMusica = true;
                        musicaABuscar   = activity.Text;
                        await context.PostAsync(Dialogos.MenuCalidadCancion(ref context));
                    }
                    else
                    {
                        try
                        {
                            String calidad = "320kbps";

                            if (Dialogos.ComprobarMensaje(ref calidad, Dialogos.ord_CalidadAudio))
                            {
                                ArrayList listaArgumentos = new ArrayList {
                                    context, activity, calidad
                                };                                                                                      //Creamos una lista de argumentos para enviar al método
                                BackgroundWorker bw_DMusica = new BackgroundWorker                                      //Creamos una tarea en segundo plano
                                {
                                    WorkerSupportsCancellation = true                                                   //Permitimos que se pueda cancelar con bw.CancelAsync()
                                };
                                bw_DMusica.DoWork += Bw_DMusica_IniciarTarea;                                           //Definimos cual es el método que iniciará la tarea
                                bw_DMusica.RunWorkerAsync(listaArgumentos);                                             //Mandamos iniciar la tarea mandandole nuestra lista de argumentos
                            }
                        }
                        catch (Exception e)
                        {
                            await context.PostAsync(String.Format(Dialogos.msg_ErrorDescargaAudio));
                        }

                        descargarMusica = false;
                        escribirMusica  = false;
                    }
                }
                else
                {
                    await context.PostAsync(Dialogos.MenuInicial(ref context));
                }
            }

            context.Wait(SeleccionDeOpciones);
        }