コード例 #1
0
 // event för att kunna ta bort en kategori
 private void btnRemoveCategory_Click(object sender, RoutedEventArgs e)
 {
     HanteraRss.removeCategory(cbCategory.SelectedItem.ToString());
     //HanteraRss.removeFeedCategory(cbCategory.SelectedItem.ToString());
     //HanteraRss.removeFeedCategory("komedi");
     showSavedFeeds();
     fillCategory();
 }
コード例 #2
0
ファイル: UpdateSavedFeeds.cs プロジェクト: psaxin/PsJf
 // fyller alla listor i minTabell med index 2, med en frekvens
 private void collectFrek()
 {
     string[] filePaths = Directory.GetFiles(@"savedFeeds\");
     for (int i = 0; i < filePaths.Length; i++)
     {
         minTabell[i, 1] = HanteraRss.getFrek(filePaths[i]);
     }
 }
コード例 #3
0
        // Denna metod fyller en lista med items från en xml-fil som konverteras från en rss-url genom HanterRss.
        private void fillListFromUrl()
        {
            string rssUrl = tbUrl.Text;

            listViewDetails.Items.Clear();
            items = HanteraRss.toXml(rssUrl);
            foreach (var i in items)
            {
                this.listViewDetails.Items.Add(i);
            }
        }
コード例 #4
0
ファイル: UpdateSavedFeeds.cs プロジェクト: psaxin/PsJf
        // Syftet med denna metod är att möjliggöra att en podcast hämtas efter användares angivna frekvens.
        private void OnTimedEvent(object source, ElapsedEventArgs e)
        {
            itteration++;
            collectSavedFiles();
            collectFrek();
            addCurrentToAll();

            string[]   filePaths = Directory.GetFiles(@"savedFeeds\src\");
            string     temp;
            FileStream fs;
            int        theTime = time;

            for (int i = 0; i < filePaths.Length; i++)
            {
                filepath = minTabell[i, 0];
                url      = HanteraRss.getURL(filepath);
                temp     = HanteraRss.ParseToString(url);

                if (Int32.Parse(minTabell[i, 1]) == Int32.Parse(minTabell[i, 2]))
                {
                    try
                    {
                        fs = new FileStream(filepath, FileMode.Create, FileAccess.Write);
                        StreamWriter writer = new StreamWriter(fs);
                        writer.Write(temp);
                        writer.Flush();
                        writer.Close();
                        fs.Close();

                        mainForm.Dispatcher.BeginInvoke(new Action(delegate()
                        {
                            //fs.Name är hela filepath, så vi kallar på metoden getName för att trimma strängen till filnamnet
                            mainForm.printStatusMessage("Uppdaterade " + getName(fs.Name));
                        }));
                    }
                    catch (FileNotFoundException x)
                    {
                        throw x;
                    }
                    catch (IOException x)
                    {
                        throw x;
                    }
                    catch (Exception ege)
                    {
                        throw ege;
                    }
                    //otroligt viktig kodrad.  :)
                    minTabell[i, 2] = "0";
                }
            }
        }
コード例 #5
0
 // Metod skapad för att kunna spela upp en fil via dubbelklick på en lista, samt att "flaggar" i objektet att filen spelats.
 private void listViewDetails_MouseDoubleClick(object sender, MouseButtonEventArgs e)
 {
     if (listViewDetails.SelectedItem != null)
     {
         string chosenItemOwner = (listViewDetails.SelectedItem as ListItems).Stamp;
         string chosenItemUrl   = (listViewDetails.SelectedItem as ListItems).URL;
         string itemTitle       = (listViewDetails.SelectedItem as ListItems).Title;
         if (chosenItemOwner != "none")
         {
             HanteraRss.addPlayed(@"SavedFeeds\" + chosenItemOwner + ".xml", itemTitle);
             setPlayed(@"savedFeeds/src/" + chosenItemOwner + ".xml", chosenItemOwner);
         }
         playMedia(chosenItemUrl);
         lblFileName.Content = itemTitle;
     }
 }
コード例 #6
0
        // Anropas i updatefeed, den fill en lista med "feeds". Chosenfile är källan, filestamp används som markör för att se ifall listan redan hämtats. Playlist är en lista av alla sparade profiler.
        private void fillFeedList(string chosenFile, string fileStamp, List <string> playlist)
        {
            try
            {
                listViewDetails.Items.Clear();
                xDoc = XDocument.Load(chosenFile);
                //hämtar ut element från xDoc till en lista av objekt
                var newItems = (from x in xDoc.Descendants("item")
                                select new
                {
                    // hämtar ut title element ur xdoc och ger objektet med namn title det värdet.
                    title = x.Element("title").Value,
                    pubDate = x.Element("pubDate").Value,
                    url = (string)x.Element("enclosure").Attribute("url").Value,
                });
                //så länge items inte är tom..
                if (newItems != null)
                {
                    listViewDetails.Items.Clear();
                    foreach (var i in newItems)
                    {
                        bool played = false;
                        if (HanteraRss.checkPlayedExist(playlist, i.title))
                        {
                            played = true;
                        }
                        this.listViewDetails.Items.Add(new FeedItems {
                            Title = i.title, Date = i.pubDate, URL = i.url, Played = played, Stamp = fileStamp
                        });
                    }
                }
            }

            catch (System.Net.WebException)
            {
                MessageBox.Show("URL fungerade ej");
            }

            catch (FileNotFoundException)
            {
                printStatusMessage("Den URL som du angivit är felaktig");
            }
        }
コード例 #7
0
 private void btnSaveCategory_Click(object sender, EventArgs e)
 {
     if (oldName != null)
     {
         editCategory(oldName);
     }
     else
     {
         if (validate.isLetters(tbAddCategory.Text))
         {
             HanteraRss.addCategory(tbAddCategory.Text);
             mainForm.fillCategory();
             this.Dispose();
         }
         else
         {
             mainForm.printStatusMessage("Kategori får bara bestå av bokstäver!");
         }
     }
 }
コード例 #8
0
        // Metod för att kunna ta bort en sparad feed.
        private void btnRemove_Click(object sender, RoutedEventArgs e)
        {
            string path    = "";
            string pathSrc = "";

            try
            {
                string chosenFile = (lwSavedFeeds.SelectedItem as ListItems).Namn;
                path    = @"savedFeeds/" + chosenFile + ".XML";
                pathSrc = @"savedFeeds/src/" + chosenFile + ".xml";
            }
            catch
            {
                printStatusMessage("Välj en fil att radera");
            }
            HanteraRss.removeFile(path, pathSrc);
            printStatusMessage("Raderade filen: " + path);
            fillListFromUrl();
            showSavedFeeds();
        }
コード例 #9
0
        // Metod används för att uppdatera listViewDetails. Om källan till uppdateringen är annorlunda mot den nuvarande så refreshas listan. Bakgrunden till refreshen är att man vill ha aktuella värden på t.ex played om en fil spelats.
        private void updateFeed(string chosenFile, string fileStamp)
        {
            List <string> played = new List <string>();

            played = HanteraRss.getPlayed(@"savedFeeds/" + fileStamp + ".xml");
            //körs om den inte är tom, detta är för att GetItemAt nedanför inte ska vara null och ge error.
            if ((listViewDetails.Items.IsEmpty) == false)
            {
                //körs om den har en en annorlunda stamp
                if ((listViewDetails.Items.GetItemAt(0) as ListItems).Stamp != fileStamp)
                {
                    fillFeedList(chosenFile, fileStamp, played);
                }
            }
            // körs den är tom
            else if (listViewDetails.Items.Count == 0)
            {
                fillFeedList(chosenFile, fileStamp, played);
            }

            // denna kommer gå igenom om listan inte är tom och Stamp är lika. Det betyder att listan bara behöver uppdateras.
            // tex om en låt är spelad och behöver få sin nya färg.
            else
            {
                listViewDetails.Items.Clear();

                foreach (var i in items)
                {
                    foreach (var x in played)
                    {
                        if (i.Title == x)
                        {
                            i.Played = true;
                        }
                    }

                    this.listViewDetails.Items.Add(i);
                }
            }
        }
コード例 #10
0
        // Metod som anropas när ett objekt har spelats, och markerar det som "spelat".
        private void setPlayed(string chosenFile, string fileStamp)
        {
            List <string> playlist = new List <string>();

            playlist = HanteraRss.getPlayed(@"savedFeeds/" + fileStamp + ".xml");
            try
            {
                listViewDetails.Items.Clear();
                xDoc = XDocument.Load(chosenFile);
                var newItems = (from x in xDoc.Descendants("item")
                                select new
                {
                    title = x.Element("title").Value,
                    pubDate = x.Element("pubDate").Value,
                    url = (string)x.Element("enclosure").Attribute("url").Value,
                });

                if (newItems != null)
                {
                    listViewDetails.Items.Clear();
                    foreach (var i in newItems)
                    {
                        bool played = false;
                        if (HanteraRss.checkPlayedExist(playlist, i.title))
                        {
                            played = true;
                        }
                        this.listViewDetails.Items.Add(new FeedItems {
                            Title = i.title, Date = i.pubDate, URL = i.url, Stamp = fileStamp, Played = played
                        });
                    }
                }
            }

            catch (System.Net.WebException)
            {
                MessageBox.Show("URL fungerade ej");
            }
        }
コード例 #11
0
 private void editCategory(string s)
 {
     HanteraRss.editCategory(s, tbAddCategory.Text);
     mainForm.fillCategory();
     this.Dispose();
 }