//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"); } }
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"); } }