Esempio n. 1
0
        /// <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));
                }
            }
        }
Esempio n. 3
0
        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));
        }
Esempio n. 4
0
        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"));
            }
        }