//Skapar en podcast och lägger till den i listan public static bool CreatePodcast(string url, string uppdateringsFrekvens, string kategori, string namn) { List <Avsnitt> listOfAvsnitt = new List <Avsnitt>(); int antalAvsnitt = 0; //Loop count TODO List <SyndicationItem> avsnittList = Serializer.DeserializeRSS <SyndicationItem>(url); foreach (var a in avsnittList) { antalAvsnitt++; string title = a.Title.Text; string subject = a.Summary.Text; var avsnitt = new Avsnitt(title, subject, url); listOfAvsnitt.Add(avsnitt); } if (antalAvsnitt != 0) { var p = new Podcast(url, uppdateringsFrekvens, kategori, namn, listOfAvsnitt, antalAvsnitt); //lägger till den skapade podcasten i en lista ListOfPodcast.AddToListOfPodcast(p); return(true); } else { return(false); } }
public void bytUtXmlFil(string kategori, string podcast, string url, string intervall) { Avsnitt avsnitt = new Avsnitt(); List <string> speladeAvsnitt = avsnitt.hamtaSpeladeAvsnitt(podcast, kategori); var path = Directory.GetCurrentDirectory() + @"\" + kategori + @"\" + podcast + ".xml"; laggTillNyPodcast(url, podcast, intervall, kategori, speladeAvsnitt); }
public void laggTillNyPodcast(String URL, String namn, string intervall, String kategori, List <string> speladeAvsnitt) { string path = Directory.GetCurrentDirectory() + @"/" + kategori + @"\" + namn + @"ny.xml"; Console.WriteLine(path); rss rssVar = new rss(); XmlDocument doc = rssVar.hamtaXML(URL); XmlWriterSettings settings = new XmlWriterSettings(); settings.Indent = true; settings.IndentChars = (" "); XmlWriter xmlOut = XmlWriter.Create(path, settings); switch (intervall) { case "Var 5e sekund": intervall = "5000"; break; case "Var 10e sekund": intervall = "10000"; break; case "Var 20e sekund": intervall = "20000"; break; case "Var 30e sekund": intervall = "30000"; break; } xmlOut.WriteStartDocument(); xmlOut.WriteStartElement("channel"); xmlOut.WriteElementString("interval", intervall); xmlOut.WriteElementString("url", URL); xmlOut.WriteElementString("lastSync", DateTime.Now.ToString()); int i = 0; foreach (XmlNode item in doc.DocumentElement.SelectNodes("channel/item")) { var title = item.SelectSingleNode("title"); var description = item.SelectSingleNode("description"); var enclosure = item.SelectSingleNode("enclosure/@url"); xmlOut.WriteStartElement("item"); xmlOut.WriteAttributeString("ID", "pod" + i); if (description.InnerText.Equals("")) { xmlOut.WriteElementString("description", "Unfortunately, no description is available."); } else { xmlOut.WriteElementString("description", description.InnerText); } xmlOut.WriteElementString("title", title.InnerText); xmlOut.WriteElementString("enclosure", enclosure.InnerText); Avsnitt avsnitt = new Avsnitt(); var titelNamn = title.InnerText; if (speladeAvsnitt.Any(str => str.Contains(titelNamn))) { xmlOut.WriteElementString("status", "Listened"); } else { xmlOut.WriteElementString("status", "Unlistened"); } xmlOut.WriteEndElement(); i++; } xmlOut.WriteEndDocument(); xmlOut.Close(); }
public static string GetAvsnittBeskrivning(Avsnitt avsnitt) { return(avsnitt.Subject); }