using System; namespace zero { namespace netboot { public class WebManager { public bool debug; public System.Net.WebRequest request; public WebManager () { debug=zero.netboot.Core.getCore().debug; dprint("INIT"); } public void listWEBFiles() { try { request=System.Net.WebRequest.Create(zero.netboot.Core.getCore().confman.options["lliurex_net"]); request.Method=System.Net.WebRequestMethods.Http.Get; showIsoList(""); } catch { Console.WriteLine("[WebManager] Wrong Lliurex.net Download Url"); zero.netboot.Core.getCore().close_me=false; zero.netboot.WarningDialog warning=new zero.netboot.WarningDialog(); warning.msg=Mono.Unix.Catalog.GetString("Wrong Lliurex.net Download Url"); } } public void listFTPFiles(string url) { //fix url slash if (!url.EndsWith("/")) { url=url + "/"; } try { request=System.Net.FtpWebRequest.Create(url); request.Credentials=new System.Net.NetworkCredential("anonymous",""); request.Method = System.Net.WebRequestMethods.Ftp.ListDirectory; showIsoList(url); } catch { Console.WriteLine("[WebManager] Wrong Url"); zero.netboot.Core.getCore().close_me=false; zero.netboot.WarningDialog warning=new zero.netboot.WarningDialog(); warning.msg=Mono.Unix.Catalog.GetString("Wrong Url:"+ Environment.NewLine + url); } } private void showIsoList (string ftpUrl) { System.Collections.Generic.List isoList = new System.Collections.Generic.List(); System.IO.StreamReader stream=new System.IO.StreamReader(request.GetResponse().GetResponseStream()); string lines=""; while(!stream.EndOfStream) { string tmp = stream.ReadLine(); if(tmp.Contains(".iso")) { if (!ftpUrl.Equals("")) { tmp=ftpUrl+tmp; isoList.Add(tmp); dprint(tmp); lines=lines+tmp+"\n"; } else { int first=tmp.IndexOf('"'); int last=tmp.LastIndexOf('"'); string url=tmp.Substring(first+1,((last)-(first+1))); isoList.Add(url); //dprint(url); lines=lines + url + "\n"; } } } zero.netboot.Core.getCore().isolistwin=new zero.netboot.IsoListWidget(); //zero.netboot.Core.getCore().isolistwin.text=lines; foreach(string str in isoList) { zero.netboot.CustomButton sbutton=new zero.netboot.CustomButton(str); //Console.WriteLine("adding button..."); if(str.Contains("desktop") || str.Contains("escriptori")) { sbutton.setImage("zeronetboot.rsrc.desktop_button.svg"); } else if(str.Contains("biblio")) { sbutton.setImage("zeronetboot.rsrc.biblio_button.svg"); } else if(str.Contains("infantil")) { sbutton.setImage("zeronetboot.rsrc.infantile_button.svg"); } else if(str.Contains("music")) { sbutton.setImage("zeronetboot.rsrc.music_button.svg"); } else if(str.Contains("lite") || str.Contains("lleug")) { sbutton.setImage("zeronetboot.rsrc.lite_button.svg"); } else if(str.Contains("classroom")) { sbutton.setImage("zeronetboot.rsrc.centro_button.svg"); } else if(str.Contains("pime")) { sbutton.setImage("zeronetboot.rsrc.pime_button.svg"); } else if(str.Contains("server") && !str.Contains("biblio")) { sbutton.setImage("zeronetboot.rsrc.server_button.svg"); } else if(str.Contains("client")) { sbutton.setImage("zeronetboot.rsrc.client_button.svg"); } zero.netboot.Core.getCore().isolistwin.addButton(sbutton); } } public void dprint(string txt) { if (debug) { Console.WriteLine("[WebManager] {0}",txt); } } } } }