public FullTrack GetSong()
        {
            var client = new SpotifyApiClient();
            var res    = client.GetSomeSong();

            return(res);
        }
Esempio n. 2
0
        static async Task Main(string[] args)
        {
            var configuration = new ConfigurationBuilder()
                                .AddJsonFile("appsettings.json")
                                .Build();

            var spotifyClientConfig = configuration.GetSection(nameof(SpotifyClientConfiguration)).Get <SpotifyClientConfiguration>();
            var spotifyAuthConfig   = configuration.GetSection(nameof(SpotifyAuthenticationConfiguration)).Get <SpotifyAuthenticationConfiguration>();

            Directory.SetCurrentDirectory(Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location));

            var cts = new CancellationTokenSource();

            Console.CancelKeyPress += (_, e) => {
                e.Cancel = true; // prevent the process from terminating.
                cts.Cancel();
            };

            var cache      = new MemoryCache(new MemoryCacheOptions());
            var logger     = new LoggerFactory();
            var authClient = new SpotifyAuthenticationCodeClient(spotifyAuthConfig, cache, logger);
            //var authClient = new SpotifyCredentialClient(spotifyAuthConfig, cache, logger);
            var client    = new SpotifyApiClient(spotifyClientConfig, authClient, logger);
            var service   = new SpotifyPlaylistService(client, logger);
            var generator = new ConsoleMenuGenerator(service, cache);
            await generator.GenerateMainMenu(cts.Token);
        }
Esempio n. 3
0
        public async Task <ActionResult> Search(string q)
        {
            var client       = new SpotifyApiClient();
            var searchResult = await client.Search(q);

            var model = new SearchResultViewModel
            {
                SearchResult = searchResult,
                SearchString = q
            };

            return(View("_SearchResult", model));
        }
Esempio n. 4
0
        public async Task <ActionResult> Index()
        {
            var client = new SpotifyApiClient();
            var genres = await client.GetGenreSeed();

            // Write a class for building viewmodels
            var model = new StartPageViewModel
            {
                Genres = genres.Genres
            };

            return(View("Index", model));
        }
Esempio n. 5
0
        public async Task <JsonResult> GetRecommendations(RecommendationsRequest recommendationsRequest)
        {
            var spotifyApiClient = new SpotifyApiClient();
            var recommendations  = await spotifyApiClient.SearchRecommendationsAsync(recommendationsRequest, 3);

            var returnHtml = new List <string>();

            foreach (var item in recommendations.Tracks)
            {
                returnHtml.Add($"{item.Type}/{item.Id}");
            }

            return(Json(returnHtml, JsonRequestBehavior.AllowGet));
        }
Esempio n. 6
0
        // GET: ApiTest
        public async Task <ActionResult> ShowRecommend(string searchString, string searchGenre)
        {
            if (!String.IsNullOrEmpty(searchString))
            {
                var client   = new SpotifyApiClient();
                var response = await client.SearchArtistsAsync(searchString, searchGenre);

                var artists = response.Artists.Items;
                return(View(artists));
            }
            else
            {
                return(View("Search"));
            }
        }
        public async Task <ActionResult> GetRecommendations(string genres, decimal danceability, decimal instrumentalness, decimal valence, int popularity)
        {
            // Must make genres mandatory
            var genreList = JsonConvert.DeserializeObject <List <string> >(genres);

            var client = new SpotifyApiClient();
            var recommendationsResponse = await client.GetRecommendationsByGenreSeed(genreList, danceability, instrumentalness, valence, popularity);

            var severalTrackResponse = await client.GetSeveralTracks(recommendationsResponse.Tracks.Select(x => x.Id).ToList());

            var model = new RecommendationResultViewModel
            {
                Tracks = severalTrackResponse.Tracks
            };

            return(View("_RecommendationResult", model));
        }
        public async Task <ActionResult> Create([Bind(Include = "Id, Artist, Tempo, Energy, Danceability, Mode")] RecommendationBasis basis)
        {
            if (ModelState.IsValid)
            {
                var client = new SpotifyApiClient();

                var response = await client.SearchArtistsAsync(basis.Artist);

                var artists = response.Artists;

                GetRecommendationsResponse recommendations = null;
                if (artists.Total > 0)
                {
                    var artist       = artists.Items[0];
                    var energy       = basis.Energy * 0.01f;
                    var danceability = 0.0f;
                    var mode         = 0;

                    if (basis.Danceability)
                    {
                        danceability = 1.0f;
                    }
                    if (basis.Mode)
                    {
                        mode = 1;
                    }

                    recommendations = await client.GetRecommendationsAsync(artist.Id, basis.Tempo, energy, danceability, mode);
                }
                else
                {
                    recommendations = await client.GetRecommendationsAsync("0OdUWJ0sBjDrqHygGUXeCF");
                }

                return(View("Details", recommendations.Tracks));
            }

            return(View(basis));
        }
Esempio n. 9
0
        public async Task <ActionResult> ShowMeMore()
        {
            float.TryParse(Request.QueryString["energy"], out float energy);
            float.TryParse(Request.QueryString["danceability"], out float danceability);
            float.TryParse(Request.QueryString["acousticness"], out float acousticness);
            float.TryParse(Request.QueryString["loudness"], out float loudness);
            float.TryParse(Request.QueryString["valence"], out float valence);
            var genre = Request.QueryString["genre"];

            RecommendationsRequest recomendationsRequest = new RecommendationsRequest
            {
                Energy       = energy,
                Danceability = danceability,
                Acousticness = acousticness,
                Loudness     = loudness,
                Valence      = valence,
                Genre        = genre
            };

            var spotifyApiClient = new SpotifyApiClient();
            var recommendations  = await spotifyApiClient.SearchRecommendationsAsync(recomendationsRequest, 24);

            return(View(recommendations));
        }
Esempio n. 10
0
 public HomeController(SpotifyApiClient repository, IMemoryCache cache)
 {
     this.repository = repository;
     this.cache      = cache;
 }
Esempio n. 11
0
 public SpotifyPlaylistService(SpotifyApiClient client, ILoggerFactory logger)
 {
     _client = client;
     _logger = logger.CreateLogger <SpotifyPlaylistService>();
 }
Esempio n. 12
0
 public TrackListModelBuilder(RecommendationModel recommendationModel)
 {
     _recommendationModel = recommendationModel;
     _client = new SpotifyApiClient();
 }
Esempio n. 13
0
        static void Main(string[] args)
        {
            var client = new SpotifyApiClient();

            client.GetSomeSong();
        }