public void loadSendetermine(Serie serie) { string urlQuelle = "http://www.fernsehserien.de/"; string serienNameEdit = serie.Name.Replace (" ", "-"); string url = urlQuelle + serienNameEdit + "/sendetermine/"; for (int index = -1; index > -50; index--) { string page = url + string.Format("{0}", index); string html = ""; try { html = getHTML (page); } catch (Exception ex) { string text = "Source:\t" + ex.Source + "\nMessage: \t" + ex.Message + "\nData:\t" + ex.Data; Console.Write (text); //LogWindow.log (LogLevel.Error, ex.Message); } HtmlDocument doc = new HtmlDocument(); doc.LoadHtml (html); var temp = doc.DocumentNode.SelectNodes ("//tbody"); int sendeterminCounter = 1; foreach (HtmlNode tbody in temp) { try { var liste = tbody.Descendants ().Where (x => x.Name == "td").Where(x=>x.InnerText.Length > 0); Sendetermin einSendetermin = new Sendetermin (); einSendetermin.Wochentag = liste.ElementAt(0).InnerText; einSendetermin.Datum = Convert.ToDateTime(liste.ElementAt(1).InnerText); if(einSendetermin.Datum.Year < 2013) { index = -51; break; } einSendetermin.Sendezeit = liste.ElementAt (2).InnerText; einSendetermin.Sender = liste.ElementAt (3).InnerText; string nummerInSerie = liste.ElementAt(4).InnerText; serie.GetEpisode(nummerInSerie).AddSendetermin(sendeterminCounter, einSendetermin); sendeterminCounter++; } catch (Exception ex) { string text = "Source:\t" + ex.Source + "\nMessage: \t" + ex.Message + "\nData:\t" + ex.Data; Console.Write (text); } } } }
public Serie ladeSerie(string serienname) { Serie eineSerie = new Serie(); if (_serienGeladen.Contains(serienname)) { //eineSerie = _xmlLoader.ladeSerie (serienname); foreach (var serie in _serienData) { if (serie.Name.CompareTo(serienname) == 0) { eineSerie = serie; } } } else { eineSerie = _webLoader.loadSerie(serienname); if (eineSerie != null) { _webLoader.loadSendetermine(eineSerie); _xmlLoader.saveSerie(eineSerie); _serienGeladen.Add(eineSerie.Name); _serienData.Add(eineSerie); OnSerieGeladen(eineSerie.Name); } else { return null; } } return eineSerie; }
public void saveSerie(Serie serie) { string rawPath = string.Format (@"{0}Data/", _Ordnerpfad); string path = string.Format (@"{0}Data/{1}.xml", _Ordnerpfad, serie.Name); if(!File.Exists(path)) { try { Directory.CreateDirectory (rawPath); } catch (Exception ex) { //LogWindow.log (LogLevel.Error, ex.Message); //LogWindow.log (LogLevel.Error, ex.StackTrace); } } try { XElement root = serie.toXElement(); XDocument doc = new XDocument(); doc.Add(root); doc.Save(path); } catch (Exception ex) { //LogWindow.log (LogLevel.Error, ex.Message); //LogWindow.log (LogLevel.Error, ex.StackTrace); } }
public void initData() { _serienGeladen = _xmlLoader.erstelleDateiListe(); foreach (var serienname in _serienGeladen) { Serie temp = new Serie(); temp = _xmlLoader.loadSerie(serienname); _serienData.Add(temp); OnSerieGeladen(temp.Name); } }
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; }
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; }
private void OnInfoButtonClicked(Object sender, EventArgs args) { try { Serie eineSerie = new Serie(); if (_mainView.ActiveSerie.Length > 0) { eineSerie = _dataLoder.ladeSerie(_mainView.ActiveSerie); if (eineSerie != null) { foreach (var staffel in eineSerie.GetStaffeln()) { foreach (var episode in staffel.GetEpisoden()) { _mainView.SerienListStore.AppendValues(episode); } } _mainView.showSerienData(); _logger.log(LogLevel.Info, string.Format("Serie \"{0}\" erfolgreich zum TreeView hinzugefügt", eineSerie.Name)); } } } catch (Exception ex) { _logger.log (LogLevel.Error, ex.Message); _logger.log (LogLevel.Error, ex.StackTrace); } }