예제 #1
0
        //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);
            }
        }
예제 #2
0
        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);
        }
예제 #3
0
        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();
        }
예제 #4
0
 public static string GetAvsnittBeskrivning(Avsnitt avsnitt)
 {
     return(avsnitt.Subject);
 }