示例#1
0
        public void PobierzDaneZeSciezki()
        {
            const string wzorzecTestowy = @"<source>\<wykonawca>\<album>\<tytul>";
            UstawieniaProgramu.getInstance().wczytajUstawienia();
            var wzorce = Utwor.wzorceSciezki;
            try
            {
                Utwor.wzorceSciezki.Clear();
                Utwor.dodajWzorzecSciezki(wzorzecTestowy);
                var utwor =
                    new Utwor(SetAbsolutePath(@"muzyka\BlindGuardian\ANightAtTheOpera\") +
                              "07 Kristin Chenoweth-Popular.mp3")
                        {
                            dane =
                                {
                                    numer = 0,
                                    wykonawca = new[] {string.Empty},
                                    tytul = string.Empty,
                                    album = string.Empty
                                }
                        };
                utwor.pobierzTagiZeSciezki();

                Assert.AreEqual("ANightAtTheOpera", utwor.dane.album, "Album się nie zgadza.");
                Assert.AreEqual("BlindGuardian", utwor.dane.wykonawca[0], "Wykonawca się nie zgadza.");
            }
            finally
            {
                Utwor.wzorceSciezki = wzorce;
                UstawieniaProgramu.getInstance().zapiszUstawienia();
            }
        }
示例#2
0
 public void PobierzDaneZNazwy()
 {
     const string wzorzecTestowy = "<numer> <wykonawca>-<tytul>";
     UstawieniaProgramu.getInstance().wczytajUstawienia();
     var wzorce = Utwor.wzorceNazwy;
     try
     {
         Utwor.wzorceNazwy.Clear();
         Utwor.dodajWzorzecNazwy(wzorzecTestowy);
         var utwor =
             new Utwor(SetAbsolutePath(@"muzyka\BlindGuardian\ANightAtTheOpera\") +
                       "07 Kristin Chenoweth-Popular.mp3")
                 {
                     dane = {numer = 0, wykonawca = new[] {string.Empty}, tytul = string.Empty}
                 };
         utwor.pobierzTagiZNazwy();
         Assert.AreEqual("Popular", utwor.dane.tytul, "Nie zgadza się tytuł.");
         Assert.AreEqual((uint)7, utwor.dane.numer, "Nie zgadza się numer.");
         Assert.AreEqual("Kristin Chenoweth", utwor.dane.wykonawca[0], "Nie zgadza się wykonawca.");
     }
     finally
     {
         Utwor.wzorceNazwy = wzorce;
         UstawieniaProgramu.getInstance().zapiszUstawienia();
     }
 }
示例#3
0
        /// <summary>Tworzy nową instancję Pliku.</summary>
        /// <param name="sciezka"></param>
        /// <returns></returns>
        public static Plik Create(string sciezka, string source)
        {
            Plik wynik = null;
            string rozszerzenie = Path.GetExtension(sciezka).Substring(1);

            if (UstawieniaProgramu.getInstance().wspieraneRozszerzeniaAudio.Contains(rozszerzenie))
                wynik = new Utwor(sciezka,source);

            else if (UstawieniaProgramu.getInstance().wspieraneRozszerzeniaVideo.Contains(rozszerzenie))
                wynik = new Film(sciezka,source);

            return wynik;
        }
示例#4
0
        //#############################PUBLICZNE METODY KLASY############################################
        public EdycjaPliku(String path)
        {
            sciezka = path;
            dane = new Utwor(sciezka);
            daneWejsciowe = new Utwor(sciezka);
            InitializeComponent();

            wypelnijPola(dane);
            rozszerzenieBox.Enabled = false;
            zapiszButton.Enabled = true;
            przwrocButton.Enabled = false;
            zapisane = true;
        }
示例#5
0
        /// <summary>Tworzy nową instancję Pliku.</summary>
        /// <param name="sciezka">Ścieżka do pliku</param>
        /// <exception cref="ArgumentNullException">Jeśli podano null jako argument</exception>
        public static Plik Create(string sciezka)
        {
            if(sciezka==null)
                throw new ArgumentNullException();
            Plik wynik = null;
            string rozszerzenie = Path.GetExtension(sciezka).Substring(1);

            if (UstawieniaProgramu.getInstance().wspieraneRozszerzeniaAudio.Contains(rozszerzenie))
                wynik = new Utwor(sciezka);

            else if (UstawieniaProgramu.getInstance().wspieraneRozszerzeniaVideo.Contains(rozszerzenie))
                wynik = new Film(sciezka);

            return wynik;
        }
        public SzczegolyMuzyki(String x)
        {
            InitializeComponent();
            Utwor mojUtwor = new Utwor(x);
            String wykonawca = "";
            String album = "";
            try
            {
                System.Console.WriteLine(mojUtwor.dane.wykonawca.First() + " " + mojUtwor.dane.album);
                wykonawca = mojUtwor.dane.wykonawca.First();
                wykonawca = wykonawca.Replace(" ", "+");
                wykonawca = wykonawca.ToLower();
                album = mojUtwor.dane.album;
                album = album.Replace(" ", "_");
                //MessageBox.Show(album + wykonawca);
                album += "_(album)";

                pobierzdane(wykonawca, album);
            }
            catch (Exception ex)
            {
                MessageBox.Show("przed wykonaniem musisz wpisać do tagów wykonawcę oraz album");
            }
        }
        public DodawanieMuzyki(String s)
        {
            InitializeComponent();
            updateButton.Hide();
            zapiszButton.Show();
            anulujButton.Show();
            Utwor x = new Utwor(s);
            String album = "";
            album = x.dane.album;
            String[] wykonawca = { "" };
            wykonawca = x.dane.wykonawca;
            uint rok = x.dane.rok;
            String tytul = "";
            tytul = x.dane.tytul;
            String[] gatunek = { "" };
            gatunek = x.dane.gatunek;

            wykonawcaTextBox.Text = wykonawca[0];
            tytulTextBox.Text = tytul;
            AlbumTextBox.Text = album;
            rokTextBox.Text = rok.ToString();
            gatunekTextBox.Text = gatunek[0];
            sciezka = s;
        }
示例#8
0
        //pobiera i zapisuje dane do tagów, zwraca true jeśli się powiodło, pobrało coś
        bool PobierzDane(Utwor utwor)
        {
            //Sprawdzenie czy jest połączenie z internetem
            bool Polaczony = System.Net.NetworkInformation.NetworkInterface.GetIsNetworkAvailable();
            //Czy pobrano informacje
            bool Pobrano = false;
            //Zakończ jeżeli nie ma połączenia lub czego dodać do tagów
            if (!Polaczony && utwor.dane.album != "") return false;

            WebClient klient = new WebClient();
            klient.Encoding = Encoding.UTF8;
            string content = "";
            try
            {
                content = klient.DownloadString("http://www.lastfm.pl/music/" + utwor.dane.wykonawca[0].Replace(" ", "+") + "/_/" + utwor.dane.tytul.Replace(" ", "+"));
            }
            catch (Exception e)
            {
                MessageBox.Show("HTTP Connection Error: " + e.Message);
            }
            HtmlAgilityPack.HtmlDocument doc = new HtmlAgilityPack.HtmlDocument();
            doc.LoadHtml(content);
            IEnumerable<HtmlNode> links = from span in doc.DocumentNode.Descendants("span").Where(x => x.Attributes["itemprop"] != null && x.Attributes["itemprop"].Value == "inAlbum")
                                            from meta in span.Descendants("meta")
                                            where meta.Attributes["itemprop"] != null && meta.Attributes["itemprop"].Value == "name"
                                            select meta;
            utwor.dane.album = links.ElementAt<HtmlNode>(0).Attributes["content"].Value.Trim();

            try
            {
                //przejscie na strone albumu
                content = klient.DownloadString("http://www.lastfm.pl/music/" + utwor.dane.wykonawca[0].Replace(" ", "+") + "/" + utwor.dane.album.Replace(" ", "+"));
            }
            catch (Exception e)
            {
                MessageBox.Show("HTTP Connection Error: " + e.Message);
            }
            doc = new HtmlAgilityPack.HtmlDocument();
            doc.LoadHtml(content);

            //pobieranie daty produkcji oraz ilości piosenek w albumie
            links = from dl in doc.DocumentNode.Descendants("dl").Where(x => x.Attributes["class"] != null && x.Attributes["class"].Value == "detail")
                                                from dd in dl.Descendants("dd")
                                                select dd;
            IEnumerable<HtmlNode> linksName = from dl in doc.DocumentNode.Descendants("dl").Where(x => x.Attributes["class"] != null && x.Attributes["class"].Value == "detail")
                    from dt in dl.Descendants("dt")
                    select dt;

            for (int i = 0; i < linksName.Count(); i++)
            {
                string name = linksName.ElementAt<HtmlNode>(i).ToString();
                string[] tmp;
                if (name.Contains("Data wydania") && utwor.dane.rok != null)
                {
                    tmp = links.ElementAt<HtmlNode>(i).ToString().Split(' ');
                    utwor.dane.rok = UInt32.Parse(tmp[tmp.Length - 1]);
                }
                else if (name.Contains("Długość") && utwor.dane.liczbaPiosenek != null)
                {
                    tmp = links.ElementAt<HtmlNode>(i).ToString().Split(' ');
                    utwor.dane.liczbaPiosenek = UInt32.Parse(tmp[0]);
                }
            }

            //pobranie numeru utworu
            links = from tr in doc.DocumentNode.Descendants("tr")
                    where tr.Attributes["itemprop"] != null && tr.Attributes["itemprop"].Value == "tracks"
                    select tr;
            foreach (HtmlNode link in links)
            {
                if (link.SelectSingleNode(".//td[@class='subjectCell']/a/span[@itemprop='name']").InnerText == utwor.dane.tytul)
                {
                    utwor.dane.numer = UInt32.Parse(link.SelectSingleNode(".//td[@class='positionCell']").InnerText);
                }
            }

            utwor.zapiszTagi();
            return Pobrano;
        }
示例#9
0
 private void wypelnijPola(Utwor dane)
 {
     tytulBox.Text = dane.dane.tytul;
     albumBox.Text = dane.dane.album;
     rokWydaniaBox.Text = dane.dane.rok.ToString();
     numerBox.Text = dane.dane.numer.ToString();
     rozszerzenieBox.Text = System.IO.Path.GetExtension(sciezka);
     wykonawcaBox.Text = "";
     foreach (String s in dane.dane.wykonawca)
     {
         wykonawcaBox.Text += s + ", ";
     }
     wykonawcaBox.Text = wykonawcaBox.Text.Substring(0, wykonawcaBox.Text.Length - 2);
     gatunekBox.Text = "";
     foreach (String s in dane.dane.gatunek)
     {
         gatunekBox.Text += s + ", ";
     }
     if (gatunekBox.Text.Length > 0)
     {
         gatunekBox.Text = gatunekBox.Text.Substring(0, gatunekBox.Text.Length - 2);
     }
 }