Exemplo n.º 1
0
        //Manejo desde HTTP. Todo desde aqui. Una vez terminada la funcion acabara el programa
        public static void operaDesdeServidor()
        {
            //create server and listen from port 25430
            Console.WriteLine ("Para usar el programa abre en un navegador la siguiente URL:");
            Console.WriteLine ("http://127.0.0.1:"+puerto+"/");
            Console.WriteLine ("");

            myServer = new NetworkServer ();

            if (!myServer.Abre (puerto)) {
                Console.WriteLine ("No se ha podido abrir servidor.");
                Console.WriteLine ("Es posible que ya tengas el programa abierto.");
                Console.WriteLine ("");

                return;
            }

            //Abre navegador
            Process.Start("http://127.0.0.1:"+puerto+"/");

            while(true) {
                RespuestaHTTP GETurl = myServer.Escucha();

                if (!GETurl.correcto) {
                    myServer.CierraCliente ();
                    continue;
                }

                string path = GETurl.path;

                string accion = GETurl.getParametro ("accion");

                string nombre = GETurl.getParametro ("nombre");
                string url = GETurl.getParametro ("url");
                string headers = GETurl.getParametro ("headers");

                if (accion == "" || accion == "descargar") {
                    if (url != "") {
                        string cerrarVentana = GETurl.getParametro ("cerrarVentana");
                        if(cerrarVentana == "" || cerrarVentana == "1"){
                            myServer.Envia(HTML.cierraConJS());
                        }
                        //else if(cerrarVentana == "0" || true){
                        else{
                            myServer.EnviaLocation ("/");
                        }
                        var t = new Thread(() => lanzaDescarga(url, headers, nombre));
                        t.Start();
                        continue;
                    }
                }

                if(path == "/ayuda"){
                    myServer.Envia (HTML.getAyuda());
                    continue;
                }

                if(path == "/ayuda/ayuda_prev.png"){
                    byte[] imgBytes = GetILocalFileBytes.Get("M3U8downloader.ayuda_img.png");
                    myServer.EnviaRaw ("image/png", imgBytes);
                    continue;
                }

                if(path == "/all.css"){
                    myServer.Envia (HTML.getAllcss());
                    continue;
                }

                if (path == "/" && accion == "") {
                    myServer.Envia (HTML.getIndex());
                    continue;
                }

                if (accion == "seleccionarlista" && GETurl.existeParametro("urlm3u8")) {
                    //Mostrar un alert en caso de que se agregue una nueva descarga para conseguir el focus de la pestaña
                    String opciones = desglosaListaM3U8(GETurl.getParametro("urlm3u8"));
                    if (opciones != "") {
                        myServer.Envia (HTML.getSeleccionLista (opciones));
                    } else {
                        myServer.Envia("No se ha podido descargar la lista m3u8.");
                    }
                    continue;
                }

                if (accion == "progreso") {
                    //Mostrar un alert en caso de que se agregue una nueva descarga para conseguir el focus de la pestaña
                    if(descargasEnProceso.Count > TempDescargasEnProcesoCantidad){
                        myServer.Envia (HTML.getProgreso("Descarga agregada"));
                        TempDescargasEnProcesoCantidad = descargasEnProceso.Count;
                    }
                    else{
                        myServer.Envia (HTML.getProgreso());
                    }
                    continue;
                }

                if (accion == "cancelarDescarga") {
                    int elem = Convert.ToInt32(GETurl.getParametro ("elem"));
                    if(elem >= 0 && elem < descargasEnProceso.Count){
                        borraDescarga(descargasEnProceso[elem]);
                    }
                    myServer.EnviaLocation("/");
                    continue;
                }

                if (accion == "cerrarPrograma") {
                    for(int i=0; i< descargasEnProceso.Count; i++){
                        descargasEnProceso[i].Cancelar();
                    }
                    myServer.Envia(HTML.getCerrado());

                    myServer.Cierra();

                    return;
                }

                myServer.Envia ("Na que hacer");
            }
        }
Exemplo n.º 2
0
        public static HTML html = new HTMLSpanish();         // default

        //Manejo desde HTTP. Todo desde aqui. Una vez terminada la funcion acabara el programa
        public static void operaDesdeServidor()
        {
            SelectLanguage(CultureInfo.InstalledUICulture.TwoLetterISOLanguageName);

            //create server and listen from port 25430
            Console.WriteLine("Para usar el programa abre en un navegador la siguiente URL:");
            Console.WriteLine("http://127.0.0.1:" + puerto + "/");
            Console.WriteLine("");


            myServer = new NetworkServer();

            if (!myServer.Abre(puerto))
            {
                Console.WriteLine("No se ha podido abrir servidor.");
                Console.WriteLine("Es posible que ya tengas el programa abierto.");
                Console.WriteLine("");

                return;
            }

            //Abre navegador
            Process.Start("http://127.0.0.1:" + puerto + "/");

            while (true)
            {
                RespuestaHTTP GETurl = myServer.Escucha();

                if (!GETurl.correcto)
                {
                    myServer.CierraCliente();
                    continue;
                }

                string path = GETurl.path;

                string accion = GETurl.getParametro("accion");

                string nombre  = GETurl.getParametro("nombre");
                string url     = GETurl.getParametro("url");
                string headers = GETurl.getParametro("headers");

                if (accion == "" || accion == "descargar")
                {
                    if (url != "")
                    {
                        string cerrarVentana = GETurl.getParametro("cerrarVentana");
                        if (cerrarVentana == "" || cerrarVentana == "1")
                        {
                            myServer.Envia(html.CloseWithJS());
                        }
                        //else if(cerrarVentana == "0" || true){
                        else
                        {
                            myServer.EnviaLocation("/");
                        }
                        var t = new Thread(() => lanzaDescarga(url, headers, nombre));
                        t.Start();
                        continue;
                    }
                }

                if (path == "/ayuda")
                {
                    myServer.Envia(html.GetHelp());
                    continue;
                }

                if (path == "/ayuda/ayuda_prev.png")
                {
                    byte[] imgBytes = GetILocalFileBytes.Get(html.GetHelpImageName());
                    myServer.EnviaRaw("image/png", imgBytes);
                    continue;
                }

                if (path == "/all.css")
                {
                    myServer.Envia(html.GetAllcss());
                    continue;
                }

                if (path.IndexOf("/lang/") == 0)
                {
                    SelectLanguage(path.Substring("/lang/".Length));
                    myServer.EnviaLocation("/");
                    continue;
                }

                if (path == "/" && accion == "")
                {
                    myServer.Envia(html.GetIndex());
                    continue;
                }

                if (accion == "seleccionarlista" && GETurl.existeParametro("urlm3u8"))
                {
                    //Mostrar un alert en caso de que se agregue una nueva descarga para conseguir el focus de la pestaña
                    String opciones = desglosaListaM3U8(GETurl.getParametro("urlm3u8"));
                    if (opciones != "")
                    {
                        myServer.Envia(html.GetListSelection(opciones));
                    }
                    else
                    {
                        myServer.Envia("No se ha podido descargar la lista m3u8.");
                    }
                    continue;
                }

                if (accion == "progreso")
                {
                    //Mostrar un alert en caso de que se agregue una nueva descarga para conseguir el focus de la pestaña
                    if (descargasEnProceso.Count > TempDescargasEnProcesoCantidad)
                    {
                        myServer.Envia(html.GetProgress("Descarga agregada"));
                        TempDescargasEnProcesoCantidad = descargasEnProceso.Count;
                    }
                    else
                    {
                        myServer.Envia(html.GetProgress());
                    }
                    continue;
                }

                if (accion == "cancelarDescarga")
                {
                    int elem = Convert.ToInt32(GETurl.getParametro("elem"));
                    if (elem >= 0 && elem < descargasEnProceso.Count)
                    {
                        borraDescarga(descargasEnProceso[elem]);
                    }
                    myServer.EnviaLocation("/");
                    continue;
                }

                if (accion == "cerrarPrograma")
                {
                    for (int i = 0; i < descargasEnProceso.Count; i++)
                    {
                        descargasEnProceso[i].Cancelar();
                    }
                    myServer.Envia(html.GetClosed());

                    myServer.Cierra();

                    return;
                }


                myServer.Envia("Na que hacer");
            }
        }