/// <summary> /// Kollar om valt avsnitt har en asterisk. Har det inte en asterisk så konkateneras en till det avsnittet. /// </summary> /// <param name="bibliotek"></param> /// <param name="index"></param> /// <returns></returns> public bool isListened(FeedBibliotek bibliotek, int index) { if (!bibliotek.Feed[index].Title.Contains("*")) { bibliotek.Feed[index].Title += "*"; return true; } return false; }
/// <summary> /// Lägger till ett feedbibliotek i en kategorilista /// </summary> /// <param name="kategori"></param> /// <param name="bibliotek"></param> /// <param name="samlingsBibliotek"></param> public void LäggTillFeedBibliotekTillKategoriLista(ComboBox kategori, FeedBibliotek bibliotek, SamlingsBibliotek samlingsBibliotek) { try { int index = kategori.SelectedIndex; KategoriBibliotek bibliotekAvFeeds = samlingsBibliotek.SamlingsLista[index]; bibliotekAvFeeds.LäggTillFeed(bibliotek); } catch (Exception ex) { MessageBox.Show(ex.Message); } }
/// <summary> /// Loopar igenom RSS-feeden och hämtar titeln på podcastprogrammet. /// Sätter angivet feedbiblioteks titel med den hämtade titeln. /// </summary> /// <param name="inUrl"></param> /// <param name="bibliotek"></param> /// <param name="samlingsBibliotek"></param> public void InstansieraPodcastTitel(string inUrl, FeedBibliotek bibliotek, SamlingsBibliotek samlingsBibliotek) { try { XmlNodeList feedTitle = hämtning.LaddaPodcasts(inUrl, "//channel"); for (int j = 0; j < feedTitle.Count; j++) { listaTitel = Convert.ToString(feedTitle[j].SelectSingleNode("title").InnerText); bibliotek.FeedBibliotekTitel = listaTitel; } } catch (Exception ex) { MessageBox.Show(ex.Message); } }
/// <summary> /// Skapar ett nytt feedbibliotek. Skapar nya Feed-objekt beroende på hur många avsnitt angiven RSS-feed har. /// Lägger till dessa Feed-objekt i det nyskapade feedbiblioteket. /// </summary> /// <param name="cbIntervall"></param> /// <param name="inUrl"></param> /// <returns></returns> public FeedBibliotek SkapaFeed(ComboBox cbIntervall, string inUrl) { XmlNodeList podcastItems = hämtning.LaddaPodcasts(inUrl, "//item"); FeedBibliotek bibliotek = new FeedBibliotek(); bibliotek.RSSUrl = inUrl; for (int i = 0; i < podcastItems.Count; i++) { Feed feed = new Feed(); podcastTitel = Convert.ToString(podcastItems[i].SelectSingleNode("title").InnerText); //Titeln på varje avsnitt. inUrl = Convert.ToString(podcastItems[i].SelectSingleNode("enclosure").Attributes["url"].Value); //URL på varje avsnitt. description = Convert.ToString(podcastItems[i].SelectSingleNode("description").InnerText); //Beskrivning på varje avsnitt. string nyDescription = WebUtility.HtmlDecode(description); //Snyggar upp eventuell HTML-formatering i beskrivningen. string trimmedTitel = podcastTitel.Trim('\t', '\n', '\v', '\f', '\r', '"'); //Ser till så att titeln inte innehåller onödiga tecken. feed.Title = trimmedTitel; feed.Url = inUrl; feed.Description = nyDescription; //Nedan så kollar koden vilken tid användaren valt och anger en int-variabel med motsvarande tid i millisekunder. if (cbIntervall.SelectedIndex == 0) { uppdateringsIntervall = 5400000; //90 minuter. } if (cbIntervall.SelectedIndex == 1) { uppdateringsIntervall = 10800000; //180 minuter. } if (cbIntervall.SelectedIndex == 2) { uppdateringsIntervall = 21600000; //360 minuter. } bibliotek.UppdateringsIntervall = uppdateringsIntervall; bibliotek.LäggTillPodcast(feed); } return bibliotek; }
/// <summary> /// Tömmer angivet feedbibliotek på feed-objekt och lägger in nya feed-objekt. /// </summary> /// <param name="inUrl"></param> /// <param name="samlingsBibliotek"></param> public void LaddaOmPrenumeration(string inUrl, SamlingsBibliotek samlingsBibliotek) { url = inUrl; for (int i = 0; i < samlingsBibliotek.Antal; i++) { for (int j = 0; j < samlingsBibliotek.SamlingsLista[i].Antal; j++) { if (samlingsBibliotek.SamlingsLista[i].KategoriLista[j].RSSUrl == url) { feedBibliotekFörAttLaddaOm = samlingsBibliotek.SamlingsLista[i].KategoriLista[j]; } } } feedBibliotekFörAttLaddaOm.Feed.Clear(); feedBibliotekFörAttLaddaOm = LaddaOmBibliotek(feedBibliotekFörAttLaddaOm, url); }
/// <summary> /// Skapar ett feedbibliotek basererat på det som är angett i parameterlistan. Skapar nya Feed-objekt beroende på hur många avsnitt angiven RSS-feed har. /// Lägger till dessa Feed-objekt i feedbiblioteket. Väldigt lik metoden ovan. /// </summary> /// <param name="feedBibliotek"></param> /// <param name="inUrl"></param> /// <returns></returns> public FeedBibliotek LaddaOmBibliotek(FeedBibliotek feedBibliotek, string inUrl) { XmlNodeList podcastItems = hämtning.LaddaPodcasts(inUrl, "//item"); FeedBibliotek bibliotek = feedBibliotek; for (int i = 0; i < podcastItems.Count; i++) { Feed feed = new Feed(); podcastTitel = Convert.ToString(podcastItems[i].SelectSingleNode("title").InnerText); inUrl = Convert.ToString(podcastItems[i].SelectSingleNode("enclosure").Attributes["url"].Value); description = Convert.ToString(podcastItems[i].SelectSingleNode("description").InnerText); string nyDescription = WebUtility.HtmlDecode(description); string trimmedTitel = podcastTitel.Trim('\t', '\n', '\v', '\f', '\r', '"'); feed.Title = trimmedTitel; feed.Url = inUrl; feed.Description = nyDescription; bibliotek.LäggTillPodcast(feed); } return bibliotek; }
public void LäggTillFeed(FeedBibliotek f) { KategoriLista.Add(f); }