private void loadSuggestedTracks_backgroundWorker_DoWork(object sender, System.ComponentModel.DoWorkEventArgs e) { ReccommendTrackControl[] temp = new ReccommendTrackControl[10]; string[] songUrl = e.Argument as string[]; for (int i = 0; i < 10; i++) { string url = songUrl[i]; temp[i] = new ReccommendTrackControl(mainscr); string[] artists = GetSongData.GetSongArtist(url); string name = string.Empty; foreach (string artist in artists) { if (artists[artists.Length - 1] == artist) { name += artist; } else { name += artist + ";"; } } temp[i].setSongArtist(name); temp[i].Url = url; PictureBox tempbx = new PictureBox(); tempbx.Load(GetSongData.GetSongCover(url)); temp[i].setSongCover(tempbx.Image); temp[i].setSongName(GetSongData.GetSongName(url)); } e.Result = temp; }
static public string addTrackToDatabase(string trackUrl) { //string[0]=title,[1]=link string title = GetSongData.getTrackTitle(trackUrl); string sqlQuery = "insert into Track output inserted.trackID values(@trackTitle,@trackLink)"; DataTable Table = new DataTable(); SqlConnection sqlconnection = new SqlConnection(ConfigurationManager.ConnectionStrings["connectionString"].ConnectionString); sqlconnection.Open(); using (SqlCommand cmd = new SqlCommand(sqlQuery, sqlconnection)) { cmd.Parameters.AddWithValue("@trackTitle", title); cmd.Parameters.AddWithValue("@trackLink", trackUrl); using (SqlDataReader reader = cmd.ExecuteReader()) { Table.Load(reader); } } DataTable artistTable = new DataTable(); ThreadPool.QueueUserWorkItem(delegate(object obj) { string[] artist = GetSongData.GetSongArtist(trackUrl); foreach (string item in artist) { artistTable.Clear(); string temp = TiengVietKhongDau.TiengVietKhongDau.RemoveSign4VietnameseString(item); sqlQuery = "select * from Artist where artistName=@artistName"; using (SqlCommand cmd = new SqlCommand(sqlQuery, sqlconnection)) { cmd.Parameters.AddWithValue("@artistName", temp); using (SqlDataReader reader = cmd.ExecuteReader()) { artistTable.Load(reader); } } if (artistTable.Rows.Count != 0) { string artistID = artistTable.Rows[0]["artistID"].ToString(); sqlQuery = "insert into ArtistHasTrack values(@artistID,@trackID)"; using (SqlCommand cmd = new SqlCommand(sqlQuery, sqlconnection)) { cmd.Parameters.AddWithValue("@artistID", artistID); cmd.Parameters.AddWithValue("@trackID", Table.Rows[0][0].ToString()); cmd.ExecuteNonQuery(); } } } sqlconnection.Close(); }); return(Table.Rows[0][0].ToString()); }
private void load_worker_DoWork(object sender, DoWorkEventArgs e) { string lastTrackID = ""; foreach (DataRow track in trackTable.Rows) { if (track["trackID"].ToString() == lastTrackID && lastTrackID != "") { trackInfos[trackInfos.Count - 1].Artist += ";" + track["artistName"].ToString(); } else { TrackInfo temp = new TrackInfo(); temp.TrackID = track["trackID"].ToString(); temp.Artist = track["artistName"].ToString(); temp.Title = track["trackTitle"].ToString(); temp.TrackLink = track["trackLink"].ToString(); if (temp.Artist == "") { string[] artists = GetSongData.GetSongArtist(temp.TrackLink); for (int i = 0; i < artists.Length; i++) { if (i != artists.Length - 1) { temp.Artist += artists[i] + "; "; } else { temp.Artist += artists[i]; } } } if (Database.checkIfTrackLoved(temp.TrackID, AlbumForm.mainScr.CurrentUser.UserID)) { temp.IsLoved = true; } else { temp.IsLoved = false; } TimeSpan time = TimeSpan.FromSeconds(GetSongData.GetSongDuration(temp.TrackLink)); string timeString = time.ToString(@"mm\:ss"); temp.Time = timeString; timeInSec += (int)time.TotalSeconds; trackInfos.Add(temp); lastTrackID = track["trackID"].ToString(); } } isLoaded = true; }
public void loadTrack() { string lastTrackID = ""; trackTable = Database.loadTrackTableInTracks(mainScr.CurrentUser.UserID); foreach (DataRow item in trackTable.Rows) { if (lastTrackID == item["trackID"].ToString() && lastTrackID != "") { trackInfos[trackInfos.Count - 1].Artist += "; " + item["artistName"].ToString(); } else { TrackInfo tempTrack = new TrackInfo(); string trackLink = item["trackLink"].ToString(); tempTrack.TrackLink = trackLink; tempTrack.TrackID = item["trackID"].ToString(); using (PictureBox pb = new PictureBox()) { pb.Load(GetSongData.GetSongCover(trackLink)); tempTrack.Cover = pb.Image; } tempTrack.Title = item["trackTitle"].ToString(); tempTrack.Artist = item["artistName"].ToString(); if (tempTrack.Artist == "") { tempTrack.Artist = GetSongData.loadArtist(tempTrack.TrackLink); } DateTime dateAdded = DateTime.Parse(item["dateAdded"].ToString()); tempTrack.DateAdded = dateAdded.ToShortDateString(); if (Database.checkIfTrackLoved(tempTrack.TrackID, mainScr.CurrentUser.UserID)) { tempTrack.IsLoved = true; } else { tempTrack.IsLoved = false; } TimeSpan time = TimeSpan.FromSeconds(GetSongData.GetSongDuration(tempTrack.TrackLink)); string timeString = time.ToString(@"mm\:ss"); tempTrack.Time = timeString; lastTrackID = tempTrack.TrackID; trackInfos.Add(tempTrack); } } addTrackInfoToRow(trackInfos.ToArray()); }
public void addRow(TrackInfo track) { if (track.Cover == null) { PictureBox pb = new PictureBox(); pb.Load(GetSongData.GetSongCover(track.TrackLink)); track.Cover = pb.Image; } addTrackInfoToRow(new TrackInfo[1] { track }); track_gridView.Rows.Add(rows[rows.Count - 1]); }
public TrackInfo loadTrackInfo(string trackID) { TrackInfo track = new TrackInfo(); track.TrackID = trackID; DataTable infoTable = Database.getTrackBaseOnID(track.TrackID); string lastTrackID = ""; foreach (DataRow Track in infoTable.Rows) { if (Track["trackID"].ToString() == lastTrackID && lastTrackID != "") { track.Artist += ";" + Track["artistName"].ToString(); } else { track.Artist = Track["artistName"].ToString(); track.Title = Track["trackTitle"].ToString(); track.TrackLink = Track["trackLink"].ToString(); if (track.Artist == "") { track.Artist = GetSongData.loadArtist(track.TrackLink); } using (PictureBox pb = new PictureBox()) { pb.Load(GetSongData.GetSongCover(track.TrackLink)); track.Cover = pb.Image; } if (Database.checkIfTrackLoved(track.TrackID, homeScr.mainScr.CurrentUser.UserID)) { track.IsLoved = true; } else { track.IsLoved = false; } TimeSpan time = TimeSpan.FromSeconds(GetSongData.GetSongDuration(track.TrackLink)); string timeString = time.ToString(@"mm\:ss"); track.Time = timeString; lastTrackID = track.TrackID; } } return(track); }
public void addTrack(string trackID) { tempTrackTable = Database.getTrackBaseOnID(trackID); string lastTrackID = ""; foreach (DataRow track in tempTrackTable.Rows) { if (track["trackID"].ToString() == lastTrackID && lastTrackID != "") { trackInfos[trackInfos.Count - 1].Artist += ";" + track["artistName"].ToString(); } else { TrackInfo temp = new TrackInfo(); temp.TrackID = track["trackID"].ToString(); temp.Artist = track["artistName"].ToString(); temp.Title = track["trackTitle"].ToString(); temp.TrackLink = track["trackLink"].ToString(); if (temp.Artist == "") { temp.Artist = GetSongData.loadArtist(temp.TrackLink); } temp.DateAdded = DateTime.Now.ToShortDateString(); if (Database.checkIfTrackLoved(temp.TrackID, playlistFm.mainScr.CurrentUser.UserID)) { temp.IsLoved = true; } else { temp.IsLoved = false; } TimeSpan time = TimeSpan.FromSeconds(GetSongData.GetSongDuration(temp.TrackLink)); string timeString = time.ToString(@"mm\:ss"); temp.Time = timeString; timeInSec += (int)time.TotalSeconds; trackInfos.Add(temp); lastTrackID = track["trackID"].ToString(); } } loadCover(false); numberOfTracks_label.Text = ++trackCount + " Tracks"; if (playlistFm.playlistDetail.playlistContainer == this && !(playlistFm.mainScr.Controls[0] is SongDetail)) { playlistFm.playlistDetail.setDetailInfo(trackInfos, cover.ToArray(), this, isChart); } }
private void pic_time_Track_worker_DoWork(object sender, System.ComponentModel.DoWorkEventArgs e) { trackImg.Clear(); trackTime.Clear(); foreach (DataRow item in trackTable.Rows) { using (PictureBox pb = new PictureBox()) { pb.Load(GetSongData.GetSongCover(item["trackLink"].ToString())); trackImg.Add(pb.Image); } TimeSpan time = TimeSpan.FromSeconds(GetSongData.GetSongDuration(item["trackLink"].ToString())); string timeString = time.ToString(@"mm\:ss"); trackTime.Add(timeString); } }
//load các track trong playlist vào list trackinfos private void load_worker_DoWork(object sender, DoWorkEventArgs e) { string lastTrackID = ""; foreach (DataRow track in trackTable.Rows) { if (track["trackID"].ToString() == lastTrackID && lastTrackID != "") { trackInfos[trackInfos.Count - 1].Artist += ";" + track["artistName"].ToString(); } else { TrackInfo temp = new TrackInfo(); temp.TrackID = track["trackID"].ToString(); temp.Artist = track["artistName"].ToString(); temp.Title = track["trackTitle"].ToString(); temp.TrackLink = track["trackLink"].ToString(); if (temp.Artist == "") { temp.Artist = GetSongData.loadArtist(temp.TrackLink); } DateTime dateAdded = DateTime.Parse(track["dateAdded"].ToString()); temp.DateAdded = dateAdded.ToShortDateString(); if (Database.checkIfTrackLoved(temp.TrackID, playlistFm.mainScr.CurrentUser.UserID)) { temp.IsLoved = true; } else { temp.IsLoved = false; } TimeSpan time = TimeSpan.FromSeconds(GetSongData.GetSongDuration(temp.TrackLink)); string timeString = time.ToString(@"mm\:ss"); temp.Time = timeString; timeInSec += (int)time.TotalSeconds; trackInfos.Add(temp); lastTrackID = track["trackID"].ToString(); } } loadCover(true); isLoaded = true; }
private void load_worker_DoWork(object sender, DoWorkEventArgs e) { infoTable = Database.getTrackBaseOnID(track.TrackID); string lastTrackID = ""; foreach (DataRow Track in infoTable.Rows) { if (Track["trackID"].ToString() == lastTrackID && lastTrackID != "") { track.Artist += ";" + Track["artistName"].ToString(); } else { track.Artist = Track["artistName"].ToString(); track.Title = Track["trackTitle"].ToString(); track.TrackLink = Track["trackLink"].ToString(); if (track.Artist == "") { track.Artist = GetSongData.loadArtist(track.TrackLink); } using (PictureBox pb = new PictureBox()) { pb.Load(GetSongData.GetSongCover(track.TrackLink)); track.Cover = pb.Image; } if (Database.checkIfTrackLoved(track.TrackID, mainScr.CurrentUser.UserID)) { track.IsLoved = true; } else { track.IsLoved = false; } TimeSpan time = TimeSpan.FromSeconds(GetSongData.GetSongDuration(track.TrackLink)); string timeString = time.ToString(@"mm\:ss"); track.Time = timeString; lastTrackID = track.TrackID; } } }
private void detail_worker_DoWork(object sender, DoWorkEventArgs e) { #region load track detail foreach (DataRow track in trackTable.Rows) { //stop add at if (trackTable.Rows.Count > 15 && trackTable.Rows[15] == track) { break; } TrackInfo tempTrack = new TrackInfo(); tempTrack.Title = track["trackTitle"].ToString(); tempTrack.Artist = track["artistName"].ToString(); tempTrack.TrackLink = track["trackLink"].ToString(); tempTrack.TrackID = track["trackID"].ToString(); TimeSpan time = TimeSpan.FromSeconds(GetSongData.GetSongDuration(tempTrack.TrackLink)); string timeString = time.ToString(@"mm\:ss"); tempTrack.Time = timeString; using (PictureBox pb = new PictureBox()) { pb.Load(GetSongData.GetSongCover(tempTrack.TrackLink)); tempTrack.Cover = pb.Image; } if (Database.checkIfTrackLoved(tempTrack.TrackID, artistFm.mainScr.CurrentUser.UserID)) { tempTrack.IsLoved = true; } else { tempTrack.IsLoved = false; } trackInfos.Add(tempTrack); } #endregion load track detail isLoaded = true; }
private void load_worker_DoWork(object sender, DoWorkEventArgs e) { trackTable.Clear(); //load trackTable trackTable = Database.getTrackInMyMix(mixID); //duyet tung track trong trackTable string lastTrackID = ""; foreach (DataRow track in trackTable.Rows) { //neu trung trackID thi add them artist if (track["trackID"].ToString() == lastTrackID && lastTrackID != "") { trackInfos[trackInfos.Count - 1].Artist += ";" + track["artistName"].ToString(); } else { TrackInfo temp = new TrackInfo(); temp.TrackID = track["trackID"].ToString(); temp.Artist = track["artistName"].ToString(); temp.Title = track["trackTitle"].ToString(); temp.TrackLink = track["trackLink"].ToString(); if (Database.checkIfTrackLoved(temp.TrackID, mixForm.mainScr.CurrentUser.UserID)) { temp.IsLoved = true; } else { temp.IsLoved = false; } TimeSpan time = TimeSpan.FromSeconds(GetSongData.GetSongDuration(temp.TrackLink)); string timeString = time.ToString(@"mm\:ss"); temp.Time = timeString; trackInfos.Add(temp); lastTrackID = track["trackID"].ToString(); } } isLoaded = true; }
private void loadCover_worker_DoWork(object sender, DoWorkEventArgs e) { int trackInfosIndex = 0; while (cover.Count < 4 && trackInfosIndex < trackInfos.Count) { using (PictureBox pb = new PictureBox()) { pb.Load(GetSongData.GetSongCover(trackInfos[trackInfosIndex++].TrackLink)); cover.Add(pb.Image); } } while (cover.Count < 4) { cover.Add(Properties.Resources.emptyplaylist); } e.Result = e.Argument; }
private void info_worker_RunWorkerCompleted(object sender, RunWorkerCompletedEventArgs e) { if (e.Error != null) { return; } DataTable infoTable = e.Result as DataTable; if (infoTable.Rows.Count != 0) { artistName_Label.Text = infoTable.Rows[0]["artistName"].ToString(); ThreadPool.QueueUserWorkItem(delegate { PictureBox pb = new PictureBox(); pb.Load(GetSongData.getArtistCover(artistName_Label.Text)); this.BeginInvoke((Action) delegate { artistCover_panel.BackgroundImage = pb.Image; }); }); } }
private void setContainerUI() { //load cover,name,... cho album container albumName_label.Text = trackTable.Rows[0]["albumTitle"].ToString(); albumYear_label.Text = trackTable.Rows[0]["albumYear"].ToString(); if (albumYear_label.Text == "0") { albumYear_label.Text = ""; } ThreadPool.QueueUserWorkItem(delegate { PB.Load(GetData.GetSongData.GetSongCover(trackTable.Rows[0]["albumLink"].ToString())); string artistText = ""; DataTable albumArtistTable; if (trackTable.Rows[0]["artistID"].ToString() == "") { string[] artistArr = GetSongData.GetSongArtist(trackTable.Rows[0]["albumLink"].ToString()); foreach (string art in artistArr) { if (art != artistArr[artistArr.Length - 1]) { artistText += art + ";"; } else { artistText += art; } } } else { albumArtistTable = Database.getArtistBaseOnID(trackTable.Rows[0]["artistID"].ToString()); artistText = trackTable.Rows[0]["artistname"].ToString(); } this.BeginInvoke((Action) delegate { albumCover_panel.BackgroundImage = PB.Image; albumArtist_label.Text = artistText; }); }); }
private void suggestedSong_worker_DoWork(object sender, DoWorkEventArgs e) { mainTrack = loadTrackInfo(trackID); this.BeginInvoke((Action) delegate() { songName_label.Text = mainTrack.Title; songCover_picturebox.Image = (mainTrack.Cover); }); string[] songUrl = GetSongData.GetSuggetSongs(mainTrack.TrackLink); e.Result = songUrl; TrackInfo track = new TrackInfo(); for (int i = 0; i < 10; i++) { track.TrackLink = songUrl[i]; if (!Database.checkTrackExisted(track.TrackLink)) { track.TrackID = Database.addTrackToDatabase(track.TrackLink); track.IsLoved = false; } else { track.TrackID = Database.getTrackIdBaseOnTrackLink(track.TrackLink); } this.BeginInvoke((Action) delegate() { temp.Add(new TrackContainer_Home(track.TrackID, homeScr.mainScr)); mrse.Set(); }); mrse.WaitOne(); } }
private void createMixForUser(DataRow User) { int userID = int.Parse(User["userID"].ToString());; DataTable lovedArtist = Database.getArtistThatUserFollow(userID); if (lovedArtist.Rows.Count == 0) { richTextBox1.BeginInvoke((Action) delegate() { richTextBox1.Text += "User doesn't has loved artist : " + User["username"].ToString() + "\n"; }); return; } string mixID = createMixForUser(userID.ToString()); //the max number of tracks each artist int numberOfTrackEachArtist; if (lovedArtist.Rows.Count <= 3) { numberOfTrackEachArtist = 20 / lovedArtist.Rows.Count; } else { numberOfTrackEachArtist = 6; } int countTrackInMix = 0; Random randArtist = new Random(DateTime.Now.Second); List <int> randRes = new List <int>(); int loopCount = (lovedArtist.Rows.Count <= 3 ? lovedArtist.Rows.Count : 3); for (int a = 0; a < loopCount; a++) { int currentIndex = randArtist.Next(0, lovedArtist.Rows.Count); while (randRes.Contains(currentIndex)) { currentIndex = randArtist.Next(0, lovedArtist.Rows.Count); } randRes.Add(currentIndex); // string name = lovedArtist.Rows[currentIndex]["artistName"].ToString(); string id = lovedArtist.Rows[currentIndex]["spotifyID"].ToString(); //api url to get similar artist string url = "https://musicroamer.com/api/v1/spotify/similarArtists?artist=" + name + "&artistID=" + id + "&expandArtist=false"; JObject apiRes = getResponseJObject(url); JToken[] suggestedArtist = apiRes["artists"].ToArray(); List <string> availableArtistID = new List <string>(); //find available artist in database for (int i = 0; i < suggestedArtist.Length; i++) { Random randSuggestedArtist = new Random(DateTime.Now.Second); List <int> randSuggestRes = new List <int>(); int suggestArtistIndex = randSuggestedArtist.Next(0, suggestedArtist.Length); while (randSuggestRes.Contains(suggestArtistIndex)) { suggestArtistIndex = randSuggestedArtist.Next(0, suggestedArtist.Length); } randSuggestRes.Add(suggestArtistIndex); if (checkArtistExist(suggestedArtist[suggestArtistIndex]["id"].ToString())) { availableArtistID.Add(suggestedArtist[suggestArtistIndex]["id"].ToString()); } } //add track of available artist for (int f = 0; f < availableArtistID.Count; f++) { int numberOfTrackOfEachSuggestArtist; if (availableArtistID.Count <= numberOfTrackEachArtist) { numberOfTrackOfEachSuggestArtist = numberOfTrackEachArtist / availableArtistID.Count; } else { numberOfTrackOfEachSuggestArtist = 1; } int countTrackOfSuggestedArtist = 0; DataTable artist_Track = Database.getTrack_Artist(availableArtistID[f], 93939); Random rnd = new Random(DateTime.Now.Second); List <int> randomNum = new List <int>(); for (int j = 0; j < numberOfTrackOfEachSuggestArtist; j++) { int index = rnd.Next(0, artist_Track.Rows.Count); while (randomNum.Contains(index)) { index = rnd.Next(0, artist_Track.Rows.Count); } randomNum.Add(index); try { addTrackToMix(artist_Track.Rows[index]["trackID"].ToString(), mixID); countTrackInMix++; countTrackOfSuggestedArtist++; } catch (Exception) { } } // // } if (countTrackInMix > 20) { break; } } //khi chua du 20 bai, add them nhac trong track vao DataTable lovedTrack = new DataTable(); lovedTrack = Database.loadTrackTableInTracks(userID); for (int i = 0; i < lovedTrack.Rows.Count && countTrackInMix < 20; i++) { string[] suggestTrack = GetSongData.GetSuggetSongs(lovedTrack.Rows[i]["trackLink"].ToString()); try { string trackID = ""; if (!Database.checkTrackExisted(suggestTrack[0])) { trackID = Database.addTrackToDatabase(suggestTrack[0]); } else { trackID = Database.getTrackIdBaseOnTrackLink(suggestTrack[0]); } addTrackToMix(trackID, mixID); countTrackInMix++; } catch (Exception) { } } richTextBox1.BeginInvoke((Action) delegate() { richTextBox1.Text += "Created mix for : " + User["username"].ToString() + "\n"; }); }
public void loadTrack() { try { trackTable = Database.getTrackTable_Search(searchKeyWord); this.BeginInvoke((Action) delegate() { pic_time_Track_worker.RunWorkerAsync(); }); if (trackTable.Rows.Count == 0) { return; } else { foreach (DataRow item in trackTable.Rows) { TrackInfo tempTrack = new TrackInfo(); string trackLink = item["trackLink"].ToString(); tempTrack.TrackLink = trackLink; tempTrack.TrackID = item["trackID"].ToString(); artistTable = Database.getArtistOfTrack(item["trackID"].ToString()); string artist = ""; foreach (DataRow artistName in artistTable.Rows) { if (artistTable.Rows[artistTable.Rows.Count - 1] == artistName) { artist += artistName["artistName"].ToString(); } else { artist += artistName["artistName"].ToString() + ";"; } } tempTrack.Title = item["trackTitle"].ToString(); if (artist == "") { string[] artists = GetSongData.GetSongArtist(tempTrack.TrackLink); foreach (string artistName in artists) { if (artists[artists.Length - 1] == artistName) { artist += artistName; } else { artist += artistName + ";"; } } } tempTrack.Artist = artist; //check if loved if (Database.checkIfTrackLoved(tempTrack.TrackID, mainScr.CurrentUser.UserID)) { tempTrack.IsLoved = true; } else { tempTrack.IsLoved = false; } trackInfos.Add(tempTrack); } } } catch (Exception e) { MessageBox.Show(e.Message + "track"); } }