public Detail(Playlist playlist) { Data = playlist; Title = playlist.Title; Intro = $"by {TimeHelper.ConverIntToString(playlist.Duration)} {Language.Get("strTRACK")}-{playlist.NumberOfTracks} {Language.Get("strVIDEO")}-{playlist.NumberOfVideos}"; CoverUrl = playlist.CoverUrl; ReleaseDate = $"{Language.Get("strDescription")} {playlist.Description}"; for (int i = 0; i < playlist.Tracks.Count; i++) { Items.Add(new Item() { Title = playlist.Tracks[i].Title, Type = "Track", Flag = playlist.Tracks[i].FlagShort, Duration = playlist.Tracks[i].DurationStr, Album = playlist.Tracks[i].Album.Title, Data = playlist.Tracks[i] }); } for (int i = 0; i < playlist.Videos.Count; i++) { Items.Add(new Item() { Title = playlist.Videos[i].Title, Type = "Video", Flag = playlist.Videos[i].FlagShort, Duration = playlist.Videos[i].DurationStr, Album = playlist.Videos[i].Album == null ? null : playlist.Videos[i].Album.Title, Data = playlist.Videos[i] }); } }
public void Load(SearchResult SearchInfo) { ShowWait = Visibility.Hidden; ArtistList = new List <SearchItem>(); AlbumList = new List <SearchItem>(); TrackList = new List <SearchItem>(); VideoList = new List <SearchItem>(); this.SearchInfo = SearchInfo; foreach (Artist item in SearchInfo.Artists) { ArtistList.Add(new SearchItem(item.Name, item.ID, "")); } foreach (Album item in SearchInfo.Albums) { AlbumList.Add(new SearchItem(item.Title, item.Artists[0].Name, TimeHelper.ConverIntToString(item.Duration))); } foreach (Track item in SearchInfo.Tracks) { TrackList.Add(new SearchItem(item.Title, item.Artists[0].Name, TimeHelper.ConverIntToString(item.Duration))); } foreach (Video item in SearchInfo.Videos) { VideoList.Add(new SearchItem(item.Title, item.Artists[0].Name, TimeHelper.ConverIntToString(item.Duration))); } }
public Detail(Album album) { Data = album; Title = album.Title; Intro = $"by {album.ArtistsName}-{TimeHelper.ConverIntToString(album.Duration)} {Language.Get("strTRACK")}-{album.NumberOfTracks} {Language.Get("strVIDEO")}-{album.NumberOfVideos}"; CoverUrl = album.CoverUrl; ReleaseDate = $"{Language.Get("strReleaseDate")} {album.ReleaseDate}"; Flag = album.Flag; for (int i = 0; i < album.NumberOfTracks && i < album.Tracks.Count; i++) { Items.Add(new Item() { Title = album.Tracks[i].DisplayTitle, Type = "Track", Flag = album.Tracks[i].FlagShort, Duration = album.Tracks[i].DurationStr, Album = album.Tracks[i].Album.Title, Data = album.Tracks[i] }); } for (int i = 0; i < album.Videos.Count; i++) { Items.Add(new Item() { Title = album.Videos[i].Title, Type = "Video", Flag = album.Videos[i].FlagShort, Duration = TimeHelper.ConverIntToString(album.Videos[i].Duration), Album = album.Videos[i].Album == null ? null : album.Videos[i].Album.Title, Data = album.Videos[i] }); } }
public MainListItemViewModel(object data, BindableCollection <MainListItemViewModel> parents) { AddYear = Config.AddYear(); Parents = parents; DLItemList = new ObservableCollection <DownloadItem>(); if (data.GetType() == typeof(Album)) { Album album = (Album)data; Title = album.Title; BasePath = TidalTool.getAlbumFolder(Config.OutputDir(), album, AddYear); Desc = string.Format("by {0}-{1} Tracks-{2} Videos-{3}", album.Artist.Name, TimeHelper.ConverIntToString(album.Duration), album.NumberOfTracks, album.NumberOfVideos); Cover = AIGS.Common.Convert.ConverByteArrayToBitmapImage(album.CoverData); AddAlbum(album); } else if (data.GetType() == typeof(Video)) { Video video = (Video)data; Title = video.Title; BasePath = TidalTool.getVideoFolder(Config.OutputDir()); Desc = string.Format("by {0}-{1}", video.Artist.Name, TimeHelper.ConverIntToString(video.Duration)); Cover = AIGS.Common.Convert.ConverByteArrayToBitmapImage(video.CoverData); DLItemList.Add(new DownloadItem(DLItemList.Count + 1, null, video, null)); } else if (data.GetType() == typeof(Artist)) { Artist artist = (Artist)data; Title = artist.Name; BasePath = TidalTool.getArtistFolder(Config.OutputDir(), artist); Desc = string.Format("by {0} Albums-{1}", artist.Name, artist.Albums.Count); Cover = AIGS.Common.Convert.ConverByteArrayToBitmapImage(artist.CoverData); foreach (var item in artist.Albums) { AddAlbum(item); } } else if (data.GetType() == typeof(Playlist)) { Playlist plist = (Playlist)data; Title = plist.Title; BasePath = TidalTool.getPlaylistFolder(Config.OutputDir(), plist); //Desc = string.Format("by {0}-{1} Tracks-{2} Videos-{3}", plist.Created, TimeHelper.ConverIntToString(plist.Duration), plist.NumberOfTracks, plist.NumberOfVideos); Desc = string.Format("{0} Tracks-{1} Videos-{2}", TimeHelper.ConverIntToString(plist.Duration), plist.NumberOfTracks, plist.NumberOfVideos); Cover = AIGS.Common.Convert.ConverByteArrayToBitmapImage(plist.CoverData); foreach (Track item in plist.Tracks) { DLItemList.Add(new DownloadItem(DLItemList.Count + 1, item, null, album: null, plist: plist)); } foreach (Video item in plist.Videos) { DLItemList.Add(new DownloadItem(DLItemList.Count + 1, null, item, album: null, plist: plist)); } } PathHelper.Mkdirs(BasePath); }
public object Load(object data) { if (data.GetType() == typeof(Artist)) { Artist artist = (Artist)data; Header = "ARTISTINFO"; Title = artist.Name; Intro = string.Format("by {0} Albums-{1}", artist.Name, artist.Albums.Count); Cover = AIGS.Common.Convert.ConverByteArrayToBitmapImage(artist.CoverData); ReleaseDate = ""; ItemList = new ObservableCollection <InfoItem>(); if (artist.Albums != null) { foreach (Album item in artist.Albums) { ItemList.Add(new InfoItem(artist.Albums.IndexOf(item) + 1, item.Title, TimeHelper.ConverIntToString(item.Duration), item.Title)); } } } if (data.GetType() == typeof(Album)) { Album album = (Album)data; Header = "ALBUMINFO"; Title = album.Title; Intro = string.Format("by {0}-{1} Tracks-{2} Videos-{3}", album.Artist.Name, TimeHelper.ConverIntToString(album.Duration), album.NumberOfTracks, album.NumberOfVideos); Cover = AIGS.Common.Convert.ConverByteArrayToBitmapImage(album.CoverData); ReleaseDate = "Release date " + album.ReleaseDate; ItemList = new ObservableCollection <InfoItem>(); if (album.Tracks != null) { foreach (Track item in album.Tracks) { ItemList.Add(new InfoItem(item.TrackNumber, item.Title, TimeHelper.ConverIntToString(item.Duration), item.Album.Title)); } } if (album.Videos != null) { foreach (Video item in album.Videos) { ItemList.Add(new InfoItem(item.TrackNumber, item.Title, TimeHelper.ConverIntToString(item.Duration), item.Album.Title, "VIDEO")); } } } else if (data.GetType() == typeof(Video)) { Video video = (Video)data; Header = "VIDEOINFO"; Title = video.Title; Cover = AIGS.Common.Convert.ConverByteArrayToBitmapImage(video.CoverData); Intro = string.Format("by {0}-{1}", video.Artist.Name, TimeHelper.ConverIntToString(video.Duration)); ReleaseDate = "Release date " + video.ReleaseDate; ItemList = new ObservableCollection <InfoItem>(); ItemList.Add(new InfoItem(0, video.Title, TimeHelper.ConverIntToString(video.Duration), video.Album == null ? "" : video.Album.Title, "VIDEO")); } return(data); }
public void Load(SearchResult SearchInfo) { this.SearchInfo = SearchInfo; foreach (Album item in SearchInfo.Albums) { AlbumList.Add(new SearchItem(item.Title, item.Artists[0].Name, TimeHelper.ConverIntToString(item.Duration))); } foreach (Track item in SearchInfo.Tracks) { TrackList.Add(new SearchItem(item.Title, item.Artists[0].Name, TimeHelper.ConverIntToString(item.Duration))); } foreach (Video item in SearchInfo.Videos) { VideoList.Add(new SearchItem(item.Title, item.Artists[0].Name, TimeHelper.ConverIntToString(item.Duration))); } }
public Detail(Track track) { Data = track; Title = track.Title; Intro = $"by {track.ArtistsName}-{TimeHelper.ConverIntToString(track.Duration)}"; CoverUrl = track.Album.CoverUrl; ReleaseDate = $"Release date {track.Album.ReleaseDate}"; Flag = track.Flag; Items.Add(new Item() { Title = track.DisplayTitle, Type = "Track", Flag = track.Flag, Duration = track.DurationStr, Album = track.Album == null ? null : track.Album.Title, Data = track }); }
public Detail(Video video) { Data = video; Title = video.Title; Intro = $"by {video.ArtistsName}-{TimeHelper.ConverIntToString(video.Duration)}"; CoverUrl = video.CoverUrl; ReleaseDate = $"Release date {video.ReleaseDate}"; Flag = video.Flag; Items.Add(new Item() { Title = video.Title, Type = "Video", Flag = video.FlagShort, Duration = TimeHelper.ConverIntToString(video.Duration), Album = video.Album == null ? null : video.Album.Title, Data = video }); }
public Detail(Artist artist) { Data = artist; Title = artist.Name; Intro = $"by {artist.Name} Albums-{artist.Albums.Count}"; CoverUrl = artist.CoverUrl; ReleaseDate = $"Artist types: {string.Join(" / ", artist.ArtistTypes)}"; for (int i = 0; i < artist.Albums.Count; i++) { Items.Add(new Item() { Title = artist.Albums[i].Title, Type = "Album", Flag = artist.Albums[i].FlagShort, Duration = TimeHelper.ConverIntToString(artist.Albums[i].Duration), Album = artist.Albums[i].Title, Data = artist.Albums[i] }); } }
public object Load(object data) { AllCheck = true; Data = data; FlagDetail = ""; Modes = ""; if (data.GetType() == typeof(Playlist)) { Playlist plist = (Playlist)data; Header = "PLAYLISTINFO"; Title = plist.Title; //Intro = string.Format("by {0}-{1} Tracks-{2} Videos-{3}", plist.Created, TimeHelper.ConverIntToString(plist.Duration), plist.NumberOfTracks, plist.NumberOfVideos); Intro = string.Format("{0} Tracks-{1} Videos-{2}", TimeHelper.ConverIntToString(plist.Duration), plist.NumberOfTracks, plist.NumberOfVideos); Cover = AIGS.Common.Convert.ConverByteArrayToBitmapImage(plist.CoverData); ReleaseDate = ""; ItemList = new ObservableCollection <InfoItem>(); if (plist.Tracks != null) { foreach (Track item in plist.Tracks) { ItemList.Add(new InfoItem(plist.Tracks.IndexOf(item) + 1, item.Title, TimeHelper.ConverIntToString(item.Duration), item.Album.Title, item, flag: TidalTool.getFlag(item))); } } if (plist.Videos != null) { foreach (Video item in plist.Videos) { ItemList.Add(new InfoItem(plist.Tracks.Count + plist.Videos.IndexOf(item) + 1, item.Title, TimeHelper.ConverIntToString(item.Duration), item.Title, item, "VIDEO")); } } } else if (data.GetType() == typeof(Artist)) { Artist artist = (Artist)data; Header = "ARTISTINFO"; Title = artist.Name; Intro = string.Format("by {0} Albums-{1}", artist.Name, artist.Albums.Count); Cover = AIGS.Common.Convert.ConverByteArrayToBitmapImage(artist.CoverData); ReleaseDate = ""; ItemList = new ObservableCollection <InfoItem>(); if (artist.Albums != null) { foreach (Album item in artist.Albums) { ItemList.Add(new InfoItem(artist.Albums.IndexOf(item) + 1, item.Title, TimeHelper.ConverIntToString(item.Duration), item.Title, item, "ALBUM", flag: TidalTool.getFlag(item))); } } } else if (data.GetType() == typeof(Album)) { Album album = (Album)data; Header = "ALBUMINFO"; Title = album.Title; Intro = string.Format("by {0}-{1} Tracks-{2} Videos-{3}", album.Artist.Name, TimeHelper.ConverIntToString(album.Duration), album.NumberOfTracks, album.NumberOfVideos); Cover = AIGS.Common.Convert.ConverByteArrayToBitmapImage(album.CoverData); ReleaseDate = "Release date " + album.ReleaseDate; ItemList = new ObservableCollection <InfoItem>(); if (album.Tracks != null) { foreach (Track item in album.Tracks) { ItemList.Add(new InfoItem(item.TrackNumber, item.Title, TimeHelper.ConverIntToString(item.Duration), item.Album.Title, item, flag: TidalTool.getFlag(item))); } } if (album.Videos != null) { foreach (Video item in album.Videos) { ItemList.Add(new InfoItem(item.TrackNumber, item.Title, TimeHelper.ConverIntToString(item.Duration), item.Album.Title, item, "VIDEO")); } } //FlagDetail if (album.AudioQuality == "HI_RES") { FlagDetail += "Master "; } if (album.Explicit) { FlagDetail += "Explicit"; } //Modes if (album.AudioModes != null && album.AudioModes.Count() > 0) { foreach (var item in album.AudioModes) { Modes += item + " "; } } } else if (data.GetType() == typeof(Video)) { Video video = (Video)data; Header = "VIDEOINFO"; Title = video.Title; Cover = AIGS.Common.Convert.ConverByteArrayToBitmapImage(video.CoverData); Intro = string.Format("by {0}-{1}", video.Artist.Name, TimeHelper.ConverIntToString(video.Duration)); ReleaseDate = "Release date " + video.ReleaseDate; ItemList = new ObservableCollection <InfoItem>(); ItemList.Add(new InfoItem(0, video.Title, TimeHelper.ConverIntToString(video.Duration), video.Album == null ? "" : video.Album.Title, data, "VIDEO")); } return(data); }
public object Load(object data) { if (data.GetType() == typeof(ArtistAlbumList)) { ArtistAlbumList artistAlbumList = (ArtistAlbumList)data; Header = "ARTISTALBUMLIST"; Title = artistAlbumList.Albums[0].Artist.Name; Intro = string.Format("Albums {0}", artistAlbumList.TotalAlbums); ReleaseDate = ""; ItemList = new ObservableCollection <InfoItem>(); QualityWidth = 90; // Add every track from every album! foreach (Album album in artistAlbumList.Albums) { if (album.Tracks != null) { foreach (Track item in album.Tracks) { ItemList.Add(new InfoItem(item.TrackNumber, item.Title, item.SDuration, item.Album.Title)); } } } } else if (data.GetType() == typeof(Album)) { Album album = (Album)data; Header = "ALBUMINFO"; Title = album.Title; Intro = string.Format("by {0}-{1} Tracks-{2} Videos-{3}", album.Artist.Name, TimeHelper.ConverIntToString(album.Duration), album.NumberOfTracks, album.NumberOfVideos); Cover = AIGS.Common.Convert.ConverByteArrayToBitmapImage(album.CoverData); ReleaseDate = "Release date " + album.ReleaseDate; ItemList = new ObservableCollection <InfoItem>(); if (album.Tracks.Count > 0) { QualityWidth = 90; } if (album.Tracks != null) { foreach (Track item in album.Tracks) { ItemList.Add(new InfoItem(item.TrackNumber, item.Title, item.SDuration, item.Album.Title)); } } if (album.Videos != null) { foreach (Video item in album.Videos) { ItemList.Add(new InfoItem(item.TrackNumber, item.Title, item.SDuration, item.Album.Title, "VIDEO")); } } } else if (data.GetType() == typeof(Video)) { Video video = (Video)data; Header = "VIDEOINFO"; Title = video.Title; Intro = string.Format("by {0}-{1}", video.Artist.Name, video.SDuration); Cover = AIGS.Common.Convert.ConverByteArrayToBitmapImage(video.CoverData); ReleaseDate = "Release date " + video.ReleaseDate; ItemList = new ObservableCollection <InfoItem>(); QualityWidth = 0; ItemList.Add(new InfoItem(0, video.Title, video.SDuration, video.Album == null? "" : video.Album.Title, "VIDEO")); } //Init QualityList QualityList = Config.QualityList(); SelectQualityIndex = Config.QualityIndex(); //Read OutputPath OutputDir = Config.OutputDir(); return(data); }
public void Load(SearchResult SearchInfo) { ShowWait = Visibility.Hidden; PlayList = new List<SearchItem>(); ArtistList = new List<SearchItem>(); AlbumList = new List<SearchItem>(); TrackList = new List<SearchItem>(); VideoList = new List<SearchItem>(); this.SearchInfo = SearchInfo; foreach (Playlist item in SearchInfo.Playlists) PlayList.Add(new SearchItem(SearchInfo.Playlists.IndexOf(item) + 1, item.Title, item.Title, TimeHelper.ConverIntToString(item.Duration))); foreach (Artist item in SearchInfo.Artists) ArtistList.Add(new SearchItem(SearchInfo.Artists.IndexOf(item) + 1, item.Name, item.Name, "")); foreach (Album item in SearchInfo.Albums) AlbumList.Add(new SearchItem(SearchInfo.Albums.IndexOf(item) + 1, item.Title, item.Artists[0].Name, TimeHelper.ConverIntToString(item.Duration))); foreach (Track item in SearchInfo.Tracks) TrackList.Add(new SearchItem(SearchInfo.Tracks.IndexOf(item) + 1, item.Title, item.Artists[0].Name, TimeHelper.ConverIntToString(item.Duration))); foreach (Video item in SearchInfo.Videos) VideoList.Add(new SearchItem(SearchInfo.Videos.IndexOf(item) + 1, item.Title, item.Artists[0].Name, TimeHelper.ConverIntToString(item.Duration))); }
public void LoadDetail(object data) { if (data == null) { return; } Detail = new DetailRecord(); Detail.Data = data; if (data.GetType() == typeof(Album)) { Album album = (Album)data; Detail.Header = "ALBUMINFO"; Detail.Title = album.Title; Detail.Intro = string.Format("by {0}-{1} Tracks-{2} Videos-{3}", album.Artist.Name, TimeHelper.ConverIntToString(album.Duration), album.NumberOfTracks, album.NumberOfVideos); Detail.Cover = AIGS.Common.Convert.ConverByteArrayToBitmapImage(album.CoverData); Detail.ReleaseDate = "Release date " + album.ReleaseDate; Detail.ItemList = new ObservableCollection <DetailRecord.Item>(); if (album.Tracks != null) { foreach (Track item in album.Tracks) { item.WaitDownload = true; Detail.ItemList.Add(new DetailRecord.Item(item.Title, TimeHelper.ConverIntToString(item.Duration), item.Album.Title, item, flag: TidalTool.getFlag(item))); } } if (album.Videos != null) { foreach (Video item in album.Videos) { item.WaitDownload = true; Detail.ItemList.Add(new DetailRecord.Item(item.Title, TimeHelper.ConverIntToString(item.Duration), item.Album.Title, item, "VIDEO", flag: TidalTool.getFlag(item))); } } //FlagDetail if (album.AudioQuality == "HI_RES") { Detail.FlagDetail += "Master "; } if (album.Explicit) { Detail.FlagDetail += "Explicit"; } //Modes if (album.AudioModes != null && album.AudioModes.Length > 0) { foreach (var item in album.AudioModes) { Detail.Modes += item + " "; } } } else if (data.GetType() == typeof(Video)) { Video video = (Video)data; video.WaitDownload = true; Detail.Header = "VIDEOINFO"; Detail.Title = video.Title; Detail.Cover = AIGS.Common.Convert.ConverByteArrayToBitmapImage(video.CoverData); Detail.Intro = string.Format("by {0}-{1}", video.Artist.Name, TimeHelper.ConverIntToString(video.Duration)); Detail.ReleaseDate = "Release date " + video.ReleaseDate; Detail.ItemList = new ObservableCollection <DetailRecord.Item>(); Detail.ItemList.Add(new DetailRecord.Item(video.Title, TimeHelper.ConverIntToString(video.Duration), video.Album == null ? "" : video.Album.Title, data, "VIDEO")); if (video.Explicit) { Detail.FlagDetail += "Explicit"; } //Detail.Modes += video.Quality; } else if (data.GetType() == typeof(Artist)) { Artist artist = (Artist)data; Detail.Header = "ARTISTINFO"; Detail.Title = artist.Name; Detail.Intro = string.Format("by {0} Albums-{1}", artist.Name, artist.Albums.Count); Detail.Cover = AIGS.Common.Convert.ConverByteArrayToBitmapImage(artist.CoverData); Detail.ReleaseDate = ""; Detail.ItemList = new ObservableCollection <DetailRecord.Item>(); if (artist.Albums != null) { foreach (Album item in artist.Albums) { item.WaitDownload = true; Detail.ItemList.Add(new DetailRecord.Item(item.Title, TimeHelper.ConverIntToString(item.Duration), item.Title, item, "ALBUM", flag: TidalTool.getFlag(item))); } } } else if (data.GetType() == typeof(Playlist)) { Playlist plist = (Playlist)data; Detail.Header = "PLAYLISTINFO"; Detail.Title = plist.Title; Detail.Intro = string.Format("{0} Tracks-{1} Videos-{2}", TimeHelper.ConverIntToString(plist.Duration), plist.NumberOfTracks, plist.NumberOfVideos); Detail.Cover = AIGS.Common.Convert.ConverByteArrayToBitmapImage(plist.CoverData); Detail.ReleaseDate = ""; Detail.ItemList = new ObservableCollection <DetailRecord.Item>(); if (plist.Tracks != null) { foreach (Track item in plist.Tracks) { item.WaitDownload = true; Detail.ItemList.Add(new DetailRecord.Item(item.Title, TimeHelper.ConverIntToString(item.Duration), item.Album.Title, item, flag: TidalTool.getFlag(item))); } } if (plist.Videos != null) { foreach (Video item in plist.Videos) { item.WaitDownload = true; Detail.ItemList.Add(new DetailRecord.Item(item.Title, TimeHelper.ConverIntToString(item.Duration), item.Title, item, "VIDEO")); } } } }
public AlbumInfo(Album info) { InitializeComponent(); m_Info = info; m_CTitle.Content = info.Title; m_CReleaseDate.Content = "Release date " + info.ReleaseDate; m_CIntro.Content = string.Format("by {0}-{1} Tracks-{2}", info.Artist.Name, info.NumberOfTracks, TimeHelper.ConverIntToString(info.Duration)); m_CList.ItemsSource = info.Tracks; m_CImage.Source = AIGS.Common.Convert.ConverByteArrayToBitmapImage(info.CoverData); }
public TaskViewModel(object data, DownloadViewModel parent) { VMParent = parent; if (data.GetType() == typeof(Album)) { Album album = (Album)data; Title = album.Title; BasePath = TidalTool.getAlbumFolder(Config.OutputDir(), album, Config.AddYear()); Desc = string.Format("by {0}-{1} Tracks-{2} Videos-{3}", album.Artist.Name, TimeHelper.ConverIntToString(album.Duration), album.NumberOfTracks, album.NumberOfVideos); Cover = AIGS.Common.Convert.ConverByteArrayToBitmapImage(album.CoverData); if (Config.SaveCovers()) { string CoverPath = TidalTool.getAlbumCoverPath(Config.OutputDir(), album, Config.AddYear()); FileHelper.Write(album.CoverData, true, CoverPath); } for (int i = 0; album.Tracks != null && i < album.Tracks.Count; i++) { if (album.Tracks[i].WaitDownload) { ItemList.Add(new TrackTask(album.Tracks[i], ItemList.Count + 1, RecieveDownloadOver, album)); } } for (int i = 0; album.Videos != null && i < album.Videos.Count; i++) { if (album.Videos[i].WaitDownload) { ItemList.Add(new VideoTask(album.Videos[i], ItemList.Count + 1, RecieveDownloadOver, album)); } } } else if (data.GetType() == typeof(Video)) { Video video = (Video)data; Title = video.Title; BasePath = TidalTool.getVideoFolder(Config.OutputDir()); Desc = string.Format("by {0}-{1}", video.Artist.Name, TimeHelper.ConverIntToString(video.Duration)); Cover = AIGS.Common.Convert.ConverByteArrayToBitmapImage(video.CoverData); if (video.WaitDownload) { ItemList.Add(new VideoTask(video, 1, RecieveDownloadOver)); } } else if (data.GetType() == typeof(Artist)) { Artist artist = (Artist)data; Title = artist.Name; BasePath = TidalTool.getArtistFolder(Config.OutputDir(), artist); Desc = string.Format("by {0} Albums-{1}", artist.Name, artist.Albums.Count); Cover = AIGS.Common.Convert.ConverByteArrayToBitmapImage(artist.CoverData); foreach (var item in artist.Albums) { if (!item.WaitDownload) { continue; } for (int i = 0; item.Tracks != null && i < item.Tracks.Count; i++) { ItemList.Add(new TrackTask(item.Tracks[i], ItemList.Count + 1, RecieveDownloadOver, item)); } for (int i = 0; item.Videos != null && i < item.Videos.Count; i++) { ItemList.Add(new VideoTask(item.Videos[i], ItemList.Count + 1, RecieveDownloadOver, item)); } } } else if (data.GetType() == typeof(Playlist)) { Playlist plist = (Playlist)data; Title = plist.Title; BasePath = TidalTool.getPlaylistFolder(Config.OutputDir(), plist); Desc = string.Format("{0} Tracks-{1} Videos-{2}", TimeHelper.ConverIntToString(plist.Duration), plist.NumberOfTracks, plist.NumberOfVideos); Cover = AIGS.Common.Convert.ConverByteArrayToBitmapImage(plist.CoverData); for (int i = 0; plist.Tracks != null && i < plist.Tracks.Count; i++) { if (plist.Tracks[i].WaitDownload) { ItemList.Add(new TrackTask(plist.Tracks[i], ItemList.Count + 1, RecieveDownloadOver, null, plist)); } } for (int i = 0; plist.Videos != null && i < plist.Videos.Count; i++) { if (plist.Videos[i].WaitDownload) { ItemList.Add(new VideoTask(plist.Videos[i], ItemList.Count + 1, RecieveDownloadOver, null, plist)); } } } }