/// <summary> /// Bind the users list of playlists to the view /// </summary> /// <returns></returns> private async Task BindPlaylists() { try { var page = await SpotifyService.GetPlaylists(AuthenticationService.User, AuthenticationService.AuthenticationToken); do { foreach (var playlist in page.Items) { Playlists.Add(playlist); } if (page.HasNextPage) { page = await SpotifyService.GetNextPage(page, AuthenticationService.AuthenticationToken); } else { page = null; } }while (page != null); } catch (Exception ex) { PageException = ex; } Loaded = true; StateHasChanged(); }
public JsonResult getPlayList() { //Se não houver sessão ativa, redireciona para o login if ((string)Session["Token"] == null) { return(Json(false, JsonRequestBehavior.AllowGet)); } else { try { _spotifyApi.Token = (string)Session["Token"]; SpotifyService spotifyService = new SpotifyService(_spotifyApi); //Get user_id and user displayName SpotifyUser spotifyUser = spotifyService.GetUserProfile(); ViewBag.UserName = spotifyUser.DisplayName; //Get user playlists ids Playlists playlists = spotifyService.GetPlaylists(spotifyUser.UserId); //Get all tracks from user List <string> tracks = spotifyService.GetTracksAndArtistsFromPlaylists(playlists); //Generate the new playlist List <string> newPlayList = spotifyService.GenerateNewPlaylist(spotifyUser.DisplayName, tracks); return(Json(newPlayList, JsonRequestBehavior.AllowGet)); } catch (Exception ex) { return(Json(false, JsonRequestBehavior.AllowGet)); } } }
public IActionResult Index(string id) { List <Track> tracks = HttpContext.Session.Get <List <Track> >("tracks"); Track selectedTrack = tracks.Where(t => t.ID == id).First(); HttpContext.Session.Set <Track>("track", selectedTrack); MusixMatchAPI api = new MusixMatchAPI(); Lyrics result = HttpContext.Session.Get <Lyrics>("lyrics"); if (result == null) { result = api.GetLyrics(new Models.Track() { ID = id }, ApiManager.GetKey(Constants.Services.MusixMatch)); HttpContext.Session.Set <Lyrics>("lyrics", result); } string token = ApiManager.GetKey(Constants.Services.Spotify); bool hasToken = !string.IsNullOrEmpty(token); List <Playlist> playlists = null; List <SelectListItem> playlistItems = new List <SelectListItem>(); if (hasToken) { SpotifyService spotifyService = new SpotifyService(); playlists = spotifyService.GetPlaylists(token); foreach (var pl in playlists) { playlistItems.Add(new SelectListItem() { Value = pl.ID, Text = pl.Name }); } } LyricsViewModel viewModel = new LyricsViewModel() { Lyrics = result, Playlists = playlistItems, HasToken = hasToken, TrackAdded = TempData["addedTrack"] != null }; return(View(viewModel)); }
static bool UserSearch() { var config = new ConfigurationService(); var console = new ConsoleService(config); var apirequest = new ApiRequestService(console, config); var spotify = new SpotifyService(console, config, apirequest); var analysis = new AnalysisService(); var username = console.PromptForUsername(); // get all public playlists for the provided username var playlists = spotify.GetPlaylists(username, out bool anyFound); // if the provided user has no public playlists, ask for another username if (!anyFound) { return(true); } // get metadata for each public playlist. This will give us a list of tracks. var playlistMetadatum = spotify.GetAllPlaylistMetadatum(playlists.items); // identify unique tracks from the playlist metadataum var tracks = analysis.IdentifyUniqueTracks(playlistMetadatum); // identify unique artists from the tracks. This just gets us artist names / IDs var artists = analysis.IdentifyUniqueArtists(tracks); // get the full artist info, which gets us genres. var fullArtists = spotify.GetAllArtists(artists); // identify unique genres var genres = analysis.IdentifyUniqueGenres(fullArtists); var audioFeatures = spotify.GetAudioFeaturesForAllTracks(tracks); var avgAudioFeatures = analysis.CalculateAverageAudioFeatures(audioFeatures); console.WriteMetrics( artists, genres, audioFeatures, avgAudioFeatures); return(true); }
public ActionResult Index(string access_token, string error) { if (error != null || error == "access_denied") { return(View("Error")); } if (string.IsNullOrEmpty(access_token)) { return(View()); } try { _spotifyApi.Token = access_token; SpotifyService spotifyService = new SpotifyService(_spotifyApi); //Get user_id and user displayName SpotifyUser spotifyUser = spotifyService.GetUserProfile(); ViewBag.UserName = spotifyUser.DisplayName; //Get user playlists ids Playlists playlists = spotifyService.GetPlaylists(spotifyUser.UserId); //Get all tracks from user List <string> tracks = spotifyService.GetTracksAndArtistsFromPlaylists(playlists); //Generate the new playlist List <string> newPlayList = spotifyService.GenerateNewPlaylist(spotifyUser.DisplayName, tracks); return(RedirectToAction("Index", "Home", new { token = access_token })); } catch (Exception) { return(View("Error")); } }