public Serie loadSerie (string serienname) { Serie eineSerie = new Serie (serienname.Trim()); string urlQuelle = "http://www.fernsehserien.de/"; string serienNameEdit = serienname.Replace (" ", "-"); urlQuelle += serienNameEdit + "/episodenguide/"; string html = ""; try { html = getHTML (urlQuelle); } catch (Exception ex) { //LogWindow.log (LogLevel.Error, ex.Message); //LogWindow.log (LogLevel.Error, ex.StackTrace); return null; } HtmlDocument doc = new HtmlDocument(); doc.LoadHtml (html); HtmlNodeCollection htmlNodeColleczion = doc.DocumentNode.SelectNodes ("//tbody[@itemprop=\"season\"]"); foreach (HtmlNode tbody in htmlNodeColleczion) { try { HtmlDocument doc2 = new HtmlDocument(); doc2.LoadHtml(tbody.InnerHtml); var liste = doc2.DocumentNode.SelectNodes ("//td").Select (p => p.InnerText).ToList (); if(liste[0].Contains("Staffel")) { Staffel eineStaffel = new Staffel (liste[0].ToString().Trim()); for (int index = 1; index <= liste.Count-10; index+=10) { Episode eineEpisode = new Episode (); eineEpisode.NummerInSerie = liste [index + 1].ToString () + liste [index + 2].ToString ().Trim(); eineEpisode.NummerInStaffel = liste[index + 3].ToString() + liste [index + 4].ToString ().Trim(); eineEpisode.Name_de = liste[index + 6].ToString().Replace(liste[index + 8].ToString().Trim(),"").Trim(); eineEpisode.Name_eng = liste[index + 8].ToString().Trim(); if (liste [index + 7].ToString ().Trim().Length == 10) { eineEpisode.Erstausstrahlung_de = Convert.ToDateTime (liste [index + 7].ToString ().Trim()); } else { string temp = liste [index + 7].ToString ().Replace (liste [index + 9].ToString ().Trim (), ""); eineEpisode.Erstausstrahlung_de = Convert.ToDateTime (temp); } eineEpisode.Erstausstrahlung_eng = Convert.ToDateTime(liste[index + 9].ToString().Trim()); eineStaffel.AddEpisode (eineEpisode.NummerInSerie, eineEpisode); } eineSerie.AddStaffel(eineStaffel.Name, eineStaffel); } } catch (Exception ex) { //LogWindow.log (LogLevel.Error, ex.Message); //LogWindow.log (LogLevel.Error, ex.StackTrace); } } return eineSerie; }
public Serie loadSerie(string name) { Serie eineSerie = new Serie(name); try { string path = string.Format (@"{0}Data/{1}.xml", _Ordnerpfad, name); XDocument doc = XDocument.Load(path); foreach (var element in doc.Descendants("Staffel")) { Staffel eineStaffel = new Staffel(element.Attribute("Name").ToString().Trim()); foreach (var elementEpisode in element.Descendants("Episode")) { Episode eineEpisode = new Episode(); eineEpisode.NummerInSerie = elementEpisode.Element("NummerInSerie").Value; eineEpisode.NummerInStaffel = elementEpisode.Element("NummerInStaffel").Value; eineEpisode.Name_de = elementEpisode.Element("Name_de").Value; eineEpisode.Erstausstrahlung_de = Convert.ToDateTime(elementEpisode.Element("Erstausstrahulung_de").Value.ToString()); eineEpisode.Name_eng = elementEpisode.Element("Name_eng").Value; eineEpisode.Erstausstrahlung_eng = Convert.ToDateTime(elementEpisode.Element("Erstausstrahulung_eng").Value.ToString()); eineEpisode.IstVorhanden = (bool)elementEpisode.Element("istVorhanden"); foreach (var elementSendetermin in elementEpisode.Descendants("Sendetermin")) { Sendetermin einSendetermin = new Sendetermin(); einSendetermin.Datum = Convert.ToDateTime(elementSendetermin.Element("Datum").Value.ToString()); einSendetermin.Wochentag = elementSendetermin.Element("Wochentag").Value; einSendetermin.Sendezeit = elementSendetermin.Element("Sendezeit").Value; einSendetermin.Sender = elementSendetermin.Element("Sender").Value; eineEpisode.AddSendetermin(Convert.ToInt32( elementSendetermin.Attribute("Key").Value), einSendetermin); } eineStaffel.AddEpisode(eineEpisode.NummerInSerie, eineEpisode); } eineSerie.AddStaffel(eineStaffel.Name, eineStaffel); } } catch (Exception ex) { //LogWindow.log (LogLevel.Error, ex.Message); //LogWindow.log (LogLevel.Error, ex.StackTrace); } return eineSerie; }