//Lấy thông tin bài hát Top 100 private void layThongTin(int stt, HtmlNode item, string what) { CauHinh.ThongTinBaiHat baiHat = new CauHinh.ThongTinBaiHat(); var khungThongTin = item.QuerySelector("div.box_info_field"); //Lấy thông tin chính var thongTin = khungThongTin.QuerySelector("a"); baiHat.urlBai = thongTin.Attributes["href"].Value; //Lấy hình, tên, ca sĩ var hinh = thongTin.QuerySelector("img"); if (what == "top100") { baiHat.urlHinh = hinh.Attributes["data-src"].Value; } else { baiHat.urlHinh = hinh.Attributes["src"].Value; } var arr = hinh.Attributes["title"].Value.Split('-'); baiHat.tenBaiHat = arr[0]; baiHat.tenCaSi = arr[1]; TableLayoutPanel panel = customView(stt, baiHat); fpnlMain.Controls.Add(panel); }
private void LblBai_Click(object sender, EventArgs e) { Label lbl = sender as Label; viTri = Convert.ToInt32(lbl.Parent.Parent.Controls[0].Text); CauHinh.ThongTinBaiHat baiHat = lbl.Parent.Parent.Tag as CauHinh.ThongTinBaiHat; choiNhac(baiHat); }
private void Picture_Click(object sender, EventArgs e) { PictureBox pic = sender as PictureBox; viTri = Convert.ToInt32(pic.Parent.Controls[0].Text); CauHinh.ThongTinBaiHat baiHat = pic.Parent.Tag as CauHinh.ThongTinBaiHat; choiNhac(baiHat); }
private void Panel_Click(object sender, EventArgs e) { TableLayoutPanel panel = sender as TableLayoutPanel; viTri = Convert.ToInt32(panel.Controls[0].Text); CauHinh.ThongTinBaiHat baiHat = panel.Tag as CauHinh.ThongTinBaiHat; choiNhac(baiHat); }
//Lấy thông tin bài hát theo thể loại private void layThongTinTheoTheLoai(int stt, HtmlNode item) { CauHinh.ThongTinBaiHat baiHat = new CauHinh.ThongTinBaiHat(); var khungThongTin = item.QuerySelector("div.item_content"); HtmlNode main; //Lấy thông tin chính main = khungThongTin.QuerySelector("h2"); if (main == null) { main = khungThongTin.QuerySelector("h3"); } var thongTin = main.QuerySelectorAll("a").ToList(); for (int i = 0; i < thongTin.Count; i++) { if (i == 0) { baiHat.urlBai = thongTin[i].Attributes["href"].Value; baiHat.tenBaiHat = thongTin[i].InnerText; continue; } if (thongTin.Count == 2) { baiHat.tenCaSi += thongTin[i].InnerText; continue; } else { if (i == thongTin.Count) { baiHat.tenCaSi += thongTin[i].InnerText; } else { baiHat.tenCaSi += thongTin[i].InnerText + ","; } } } //Lấy hình, tên, ca sĩ baiHat.urlHinh = null; TableLayoutPanel panel = customView(stt, baiHat); panel.Tag = baiHat; fpnlMain.Controls.Add(panel); }
//Choi nhac private void choiNhac(CauHinh.ThongTinBaiHat baiHat) { JSON = new Dictionary <string, string>(); WebClient client = new WebClient(); client.Encoding = Encoding.UTF8; string url; if (baiHat.urlBai.Contains("?")) { string viTri = baiHat.urlBai.Substring(baiHat.urlBai.LastIndexOf("=") + 1); htmlDocument = htmlWeb.Load(baiHat.urlBai); HtmlNode liID = htmlDocument.DocumentNode.QuerySelector("li#itemSong_" + viTri); var meta = liID.QuerySelectorAll("meta").ToList(); var link = meta[1].Attributes["content"].Value; url = CauHinh.urlAPI + link; } else { url = CauHinh.urlAPI + baiHat.urlBai; } try { string content = client.DownloadString(url); content = content.Substring(content.IndexOf("{") + 1); content = content.Substring(0, content.IndexOf("}")); var arr = content.Split(','); foreach (string line in arr) { string x = line.Replace("\"", "").Replace("\\", "") + "\n"; try { JSON.Add(x.Substring(0, x.IndexOf(":")), x.Substring(x.IndexOf(":") + 1)); } catch { JSON.Add(x, x); } } wmpMedia.URL = JSON["link128"]; //frm.wmpMedia.Ctlcontrols.play(); } catch (Exception ex) { MessageBox.Show(CauHinh.CString.loi + "\n Mở bài thất bại.", CauHinh.CString.thongBao, MessageBoxButtons.OK, MessageBoxIcon.Error); } //Load thong tin picHinh.ImageLocation = baiHat.urlHinh; lblTenBaiHat.Text = baiHat.tenBaiHat; lblTenCaSi.Text = baiHat.tenCaSi; //Load control btnPlayPause.BackgroundImage = NCTOnline.Properties.Resources.pausex48; thoiGianChay(); //Doi mau che do nhac doiMau(128); }
//Custom view private TableLayoutPanel customView(int stt, CauHinh.ThongTinBaiHat baiHat) { TableLayoutPanel panel = new TableLayoutPanel(); panel.BackColor = Color.White; panel.Size = new Size(fpnlMain.Size.Width - 30, panel.Size.Height); panel.RowCount = 1; panel.ColumnCount = 3; panel.ColumnStyles.Add(new ColumnStyle(SizeType.Percent, 15f)); panel.ColumnStyles.Add(new ColumnStyle(SizeType.Percent, 35f)); panel.ColumnStyles.Add(new ColumnStyle(SizeType.Percent, 50f)); panel.RowStyles.Add(new RowStyle(SizeType.Absolute, 100F)); Label lblSTT = new Label(); lblSTT.Text = stt.ToString(); lblSTT.Dock = DockStyle.Fill; lblSTT.TextAlign = ContentAlignment.MiddleCenter; lblSTT.AutoSize = false; if (stt == 1) { lblSTT.ForeColor = Color.Red; } else if (stt == 2) { lblSTT.ForeColor = Color.Green; } else if (stt == 3) { lblSTT.ForeColor = Color.Orange; } panel.Controls.Add(lblSTT, 0, 0); PictureBox picture = new PictureBox(); if (baiHat.urlHinh != null) { picture.ImageLocation = baiHat.urlHinh; } else { picture.Image = NCTOnline.Properties.Resources.musicx48; } picture.Dock = DockStyle.Fill; picture.SizeMode = PictureBoxSizeMode.CenterImage; picture.Click += Picture_Click; panel.Controls.Add(picture, 1, 0); TableLayoutPanel pnl = new TableLayoutPanel(); pnl.RowStyles.Add(new RowStyle(SizeType.Percent, 50f)); pnl.RowStyles.Add(new RowStyle(SizeType.Percent, 50f)); pnl.ColumnStyles.Add(new ColumnStyle(SizeType.Percent, 100f)); pnl.Dock = DockStyle.Fill; // Label lblBai = new Label { Text = baiHat.tenBaiHat, Dock = DockStyle.Fill, TextAlign = ContentAlignment.BottomLeft, AutoSize = false, }; lblBai.Click += LblBai_Click; pnl.Controls.Add(lblBai, 0, 0); Label lblCaSi = new Label { Text = baiHat.tenCaSi, Dock = DockStyle.Fill, TextAlign = ContentAlignment.TopLeft, AutoSize = false, ForeColor = Color.Gray }; lblCaSi.Click += LblCaSi_Click; pnl.Controls.Add(lblCaSi, 0, 1); panel.Controls.Add(pnl, 2, 0); panel.Tag = baiHat; panel.Click += Panel_Click; return(panel); }