Exemple #1
0
        public static List <Avsnitt> GetAvsnitts(string Url)
        {
            List <Avsnitt> List = new List <Avsnitt>();

            using (XmlReader reader = XmlReader.Create(Url))
            {
                SyndicationFeed rssFeed = SyndicationFeed.Load(reader);

                foreach (SyndicationItem item in rssFeed.Items)
                {
                    Avsnitt avsnitt = new Avsnitt();
                    avsnitt.Titel       = item.Title.Text;
                    avsnitt.Description = item.Summary.Text;

                    foreach (var link in item.Links)
                    {
                        avsnitt.URI    = link.Uri.ToString();
                        avsnitt.Length = link.Length.ToString();
                    }

                    List.Add(avsnitt);
                }

                return(List);
            };
        }
Exemple #2
0
        public static List <Avsnitt> GetAvsnitt(string fileName)
        {
            CheckPath();
            string fullFileName = path + "Avsnitt_" + fileName + ".xml";

            List <Avsnitt> avsnitts = new List <Avsnitt>();

            XmlReaderSettings settings = new XmlReaderSettings();

            settings.IgnoreWhitespace = true;
            settings.IgnoreComments   = true;

            XmlReader xmlin = XmlReader.Create(fullFileName, settings);

            if (xmlin.ReadToDescendant("Avsnitt"))
            {
                do
                {
                    Avsnitt avsnitt = new Avsnitt();

                    xmlin.ReadStartElement("Avsnitt");
                    avsnitt.Titel       = xmlin.ReadElementContentAsString();
                    avsnitt.Description = xmlin.ReadElementContentAsString();
                    avsnitt.URI         = xmlin.ReadElementContentAsString();
                    avsnitt.Length      = xmlin.ReadElementContentAsString();
                    avsnitts.Add(avsnitt);
                }while (xmlin.ReadToNextSibling("Avsnitt"));
            }
            xmlin.Close();
            return(avsnitts);
        }
        private async void cbValjEnPodcast_SelectedIndexChanged(object sender, EventArgs e)
        {
            try
            {
                var     kategori  = cbValjEnKategori.Text;
                var     podcast   = cbValjEnPodcast.Text;
                Avsnitt avsnitt   = new Avsnitt();
                Podcast enpodcast = new Podcast();

                if (enpodcast.harIntervallPaserat(kategori, podcast))
                {
                    Task <bool> result;
                    result          = avsnitt.kollaOmNyttAvsnittFinns(kategori, podcast);
                    lblAvsnitt.Text = "Kollar om det finns nya avsnitt för denna Podcast...";
                    if (await result)
                    {
                        avsnitt.fyllClbMedAvsnittNytt(kategori, podcast, lbAvsnitt, lblAvsnitt);
                    }
                    else
                    {
                        avsnitt.fyllClbMedAvsnitt(kategori, podcast, lbAvsnitt, lblAvsnitt);
                    }
                }
                else
                {
                    avsnitt.fyllClbMedAvsnitt(kategori, podcast, lbAvsnitt, lblAvsnitt);
                }
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
            }
        }
Exemple #4
0
        public static void hamtaRssInfo(string url, int freq, string kategori)
        {
            using (XmlReader reader = XmlReader.Create(url))
            {
                try {
                    SyndicationFeed feed      = SyndicationFeed.Load(reader);
                    var             mainTitle = feed.Title.Text;
                    int             i         = 0;

                    foreach (SyndicationItem item in feed.Items)
                    {
                        string  title   = item.Title.Text;
                        string  summary = (((TextSyndicationContent)item.Summary).Text);
                        Avsnitt avsnitt = new Avsnitt(mainTitle, title, summary);
                        AvsnittsLista.laggTill(avsnitt);
                        i++;
                    }
                    Podcast podcast = new Podcast(mainTitle, freq, kategori, i, url);
                    PodcastLista.laggTill(podcast);
                    FrekvensTimer.Start(mainTitle, url, freq, kategori);
                } catch (Exception) {
                    System.Windows.Forms.MessageBox.Show("Denna RSS-feed gick ej att läsa");
                }
            }
        }
Exemple #5
0
        public async Task LaddaRss(string rssUrl)
        {
            await Task.Run(() => // det som speciferas läggs på kö och istället returneras en Task Objekt
            {
                try
                {
                    XmlReader lasare      = XmlReader.Create(rssUrl);     // skapar ny xmlReader instans med specificerad url
                    SyndicationFeed flode = SyndicationFeed.Load(lasare); // laddar en  syndikering flöde av specificerad xmlReader
                    lasare.Close();                                       // När overridden i en härledd klass, ändras XmlReader.ReadState till ReadState.Closed

                    raknaAvsnitt = antalObjekt(rssUrl).ToString();        // ändrar int till string
                    poddTitel    = flode.Title.Text;

                    foreach (SyndicationItem avsnitt in flode.Items) // SyndicationItem( representerar ett flöde objekt som tex RSS <objekt>
                    {
                        avsTitel = avsnitt.Title.Text;
                        string sammanfattning = avsnitt.Summary.Text;             // lokal variabel

                        if (!AvsSammanfattning.ContainsKey(avsTitel))             // bestämmer om key/value innnehåller den specificerad key
                        {
                            AvsSammanfattning.Add(avsTitel, new List <string>()); // ADD-lägger till den specifierad key/value till Dictionary
                            AvsSammanfattning[avsTitel].Add(sammanfattning);      // lägger till ett objekt till listan
                        }
                        if (!Avsnitt.ContainsKey(poddTitel))                      // bestämmer om key/value innnehåller den specificerad key
                        {
                            Avsnitt.Add(poddTitel, new List <string>());          // lägger till ett objekt till listan
                            Avsnitt[poddTitel].Add(avsTitel);                     // lägger till ett objekt till listan
                        }
                        else
                        {
                            bool avsnittFinns = Avsnitt.Values.Any(value => value.Contains(avsTitel));                 // bestämmer om några element av en sekvens stämmer överens av konditionen
                            bool sammFinns    = AvsSammanfattning.Values.Any(value => value.Contains(sammanfattning)); // ,,
                            if (!avsnittFinns)
                            {
                                Avsnitt[poddTitel].Add(avsTitel); // lägger till ett objekt till listan
                            }
                            if (!sammFinns)
                            {
                                AvsSammanfattning[avsTitel].Add(sammanfattning); // lägger till ett objekt till listan
                            }
                        }
                    }
                }
                catch
                {
                    MessageBox.Show("Något har tyvärr gått fel"); // fel meddelande
                }
            });
        }
Exemple #6
0
 private void lbxPodcastAvsnitt_SelectedIndexChanged(object sender, EventArgs e)
 {
     try
     {
         var a = lbxPodcastAvsnitt.SelectedItem.ToString();
         tbxAvsnittBeskrivning.Clear();
         lblAvsnittBeksrivning.Text = a;
         string  url     = lwPodcast.SelectedItems[0].Text;
         Avsnitt avsnitt = GUIController.GetAvsnittFromSelectedPodcast(url, a);
         tbxAvsnittBeskrivning.Text = GUIController.GetAvsnittBeskrivning(avsnitt);
     }
     catch (Exception ex)
     {
         Console.WriteLine(ex);
     }
 }
Exemple #7
0
 private void lbAvsnitt_SelectedIndexChanged(object sender, EventArgs e)
 {
     if (lbAvsnitt.SelectedItems.Count == 0)
     {
         return;
     }
     if (lbAvsnitt.SelectedItems[0] != null)
     {
         var podcast = (Avsnitt)lbAvsnitt.SelectedItems[0];
         avsnitt = podcast;
         string titel       = avsnitt.avsnittTitel;
         string beskrivning = avsnitt.Beskrivning;
         lblAvsnittTitel.Text       = titel;
         wbBeskrivning.DocumentText = beskrivning;
     }
 }
Exemple #8
0
 public static void SkapaListaAvsnitt()
 {
     if (File.Exists("avsnitt.txt"))
     {
         XDocument xdoc = XDocument.Load("avsnitt.txt");
         xdoc.Descendants("Avsnitt").Select(p => new
         {
             podcastTitel = p.Element("PodcastTitel").Value,
             avsnittTitel = p.Element("AvsnittTitel").Value,
             beskrivning  = p.Element("Beskrivning").Value,
         }).ToList().ForEach(p =>
         {
             Avsnitt avsnitt = new Avsnitt(p.podcastTitel, p.avsnittTitel, p.beskrivning);
             AvsnittsLista.laggTill(avsnitt);
         });
     }
 }
        private void btnPlay_Click(object sender, EventArgs e)
        {
            try
            {
                if (Validation.comboBoxInteTomt(cbValjEnKategori, "Kategori") && Validation.comboBoxInteTomt(cbValjEnPodcast, "podcast") &&
                    Validation.lbInteTomt(lbAvsnitt, "Ett avsnitt"))
                {
                    var valtAvsnitt      = lbAvsnitt.Text;
                    var valdKategori     = cbValjEnKategori.Text;
                    var valdPod          = cbValjEnPodcast.Text;
                    var valtAvsnittIndex = lbAvsnitt.SelectedIndex;


                    Avsnitt avsnitt = new Avsnitt();
                    avsnitt.spelaAvsnitt(valdKategori, valdPod, valtAvsnitt, lbAvsnitt, valtAvsnittIndex);
                    avsnitt.fyllClbMedAvsnitt(valdKategori, valdPod, lbAvsnitt, lblAvsnitt);
                }
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
            }
        }