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(); } }
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(); } }
/// <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; }
//#############################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; }
/// <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; }
//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; }
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); } }