Beispiel #1
0
        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;
            }
        }
Beispiel #2
0
        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;
            }
        }