/// <summary> /// Get the Album Art /// </summary> /// <param name="mv"></param> /// <returns></returns> public bool GetAlbumArt(DBAlbumInfo mvAlbumObject) { Logger.Debug("In Method : GetAlbumArt(DBAlbumInfo mv)"); if (mvAlbumObject == null) return false; List<string> albumImageList = mvAlbumObject.ArtUrls; // Reload existing Artwork - Why springs to mind?? if (albumImageList.Count > 0) { // grab album art loading settings int maxAlbumArt = mvCentralCore.Settings.MaxAlbumArts; int albumartAdded = 0; int count = 0; foreach (string albumImage in albumImageList) { if (mvAlbumObject.AlternateArts.Count >= maxAlbumArt) break; if (mvAlbumObject.AddArtFromURL(albumImage) == ImageLoadResults.SUCCESS) albumartAdded++; count++; } // We added some artwork so commit if (count > 0) mvAlbumObject.Commit(); } // Now add any new art from this provider string strAlbumHTML; DBArtistInfo artist = null; List<DBTrackInfo> tracksOnAlbum = DBTrackInfo.GetEntriesByAlbum(mvAlbumObject); if (tracksOnAlbum.Count > 0) { artist = DBArtistInfo.Get(tracksOnAlbum[0]); if (GetAlbumHTML(artist.Artist, mvAlbumObject.Album, out strAlbumHTML)) { var albumInfo = new MusicAlbumInfo(); if (albumInfo.Parse(strAlbumHTML)) { ImageLoadResults imageLoadResults = mvAlbumObject.AddArtFromURL(albumInfo.ImageURL); if (imageLoadResults == ImageLoadResults.SUCCESS || imageLoadResults == ImageLoadResults.SUCCESS_REDUCED_SIZE) mvAlbumObject.Commit(); } } } // We always return sucess... return true; }
/// <summary> /// Add Track to a user selected album /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void createAlbumToolStripMenuItem_Click(object sender, EventArgs e) { DBBasicInfo selectedTrack = null; switch (tcMusicVideo.SelectedTab.Name) { case "tpTrack": selectedTrack = CurrentTrack; break; default: return; } if (mvLibraryTreeView.SelectedNode.Level == 2) { MessageBox.Show("Please move track to Artist level before creating an album", "Unable to Create Album", MessageBoxButtons.OKCancel, MessageBoxIcon.Information); return; } var activeTrack = DBTrackInfo.Get((int)selectedTrack.ID); var activeAtrist = DBArtistInfo.Get(CurrentTrack); var createAlbum = new CreateAlbumForTrack(activeTrack); createAlbum.ShowDialog(); if (!createAlbum.exitStatus) return; var albumCheck = DBAlbumInfo.Get(createAlbum.Album); if (albumCheck == null) { // No existing album - create, lookup details and add to track var sourceProviders = mvCentralCore.DataProviderManager.AlbumDetailSources.ToList(); var albumToAdd = new DBAlbumInfo { Album = createAlbum.Album, MdID = createAlbum.AlbumMBID, PrimarySource = sourceProviders[0] }; albumToAdd.Commit(); activeTrack.AlbumInfo.Add(albumToAdd); activeTrack.Commit(); albumToAdd.PrimarySource = sourceProviders[0]; albumToAdd.PrimarySource.Provider.GetAlbumDetails((DBBasicInfo) albumToAdd, createAlbum.Album, createAlbum.AlbumMBID); albumToAdd.Commit(); } else { // Album already exists - add to track activeTrack.AlbumInfo.Add(albumCheck); activeTrack.Commit(); } // Reload and display the library ReloadList(); // Select and expand the artist foreach (TreeNode tn in mvLibraryTreeView.Nodes.Cast<TreeNode>().Where(tn => tn.Text == activeAtrist.Artist)) { mvLibraryTreeView.SelectedNode = tn; tn.Expand(); } mvLibraryTreeView.Refresh(); // Do we already have this album.... }