private async Task DownloadFromUrl(AudioQuality audioQuality) { string url = Helpers.TakeInput("Enter URL: "); string[] urlMatches = Regex.Split(url, @"https?:\/\/www\.deezer\..+\/(\w+)\/(\d+)"); // ty smloadr for the regex if (urlMatches.Length < 3) { Helpers.RedMessage("Invalid URL"); return; } string type = urlMatches[1]; string id = urlMatches[2]; var deezerDownloader = new DeezerDownloader(_deezerHttp, audioQuality); switch (type) { case "track": await deezerDownloader.ProcessTrack(id); Console.Write("\n"); break; case "artist": await deezerDownloader.ProcessArtist(id); break; case "playlist": await deezerDownloader.ProcessPlaylist(id); break; case "album": await deezerDownloader.ProcessAlbum(id); break; default: Helpers.RedMessage($"{type} is an unsupported type"); break; } }
private async Task DownloadFromSearch(AudioQuality quality) { var deezerDownloader = new DeezerDownloader(_deezerHttp, quality); var deezerSearcher = new DeezerSearcher(_deezerHttp); string searchType = Helpers.TakeInput(1, 4, "Track", "Album", "Artist", "Playlist"); string searchParam = Helpers.TakeInput("Enter search term: "); switch (searchType) { case "1": SearchResult trackResult = await deezerSearcher.Search(searchParam, SearchType.Track); if (trackResult != null) { var e = await deezerDownloader.ProcessTrack(trackResult.Id, trackResult.Json); } break; case "2": SearchResult albumId = await deezerSearcher.Search(searchParam, SearchType.Album); var i = await deezerDownloader.ProcessAlbum(albumId.Id); break; case "3": SearchResult artistId = await deezerSearcher.Search(searchParam, SearchType.Artist); break; case "4": SearchResult playlistId = await deezerSearcher.Search(searchParam, SearchType.Playlist); break; } }