public IEnumerator LoadChartTracks()
    {
        yield return(new WaitForSeconds(2));

        if (chartTracks == null || chartTracks.Count == 0)
        {
            Debug.LogError("Chart tracks is null/empty");
        }
        else
        {
            for (int i = 0; i < meshRenderers.Length; i++)
            {
                //i+1 because first row is header names
                ChartTrack chartTrack = (ChartTrack)chartTracks[i + 1];
                FullTrack  fullTrack  = spotifyManagerScript.GetTrack(chartTrack.apiUrl);

                if (fullTrack.HasError())
                {
                    Debug.LogError(fullTrack.Error.Status);
                    Debug.LogError(fullTrack.Error.Message);
                }
                else
                {
                    string chartTrackImageURL = fullTrack.Album.Images[0].Url;

                    GameObject meshRendererGameObject = meshRenderers[i].transform.gameObject;

                    PlaylistScript playlistScript = meshRendererGameObject.GetComponent <PlaylistScript>();

                    WWW imageURLWWW = new WWW(chartTrackImageURL);

                    yield return(imageURLWWW);

                    meshRenderers[i].material.mainTexture = imageURLWWW.texture;

                    AudioAnalysis audioAnalysis = spotifyManagerScript.GetAudioAnalysis(fullTrack.Id);

                    playlistScript.setFullTrack(fullTrack);
                    playlistScript.setPlaylistName(fullTrack.Name);
                    playlistScript.setPlaylistURI(fullTrack.Uri);
                    playlistScript.artistId            = fullTrack.Artists[0].Id;
                    playlistScript.artistName          = fullTrack.Artists[0].Name;
                    playlistScript.sprite              = ConvertWWWToSprite(imageURLWWW);
                    playlistScript.audioAnalysis       = audioAnalysis;
                    playlistScript.audioAnalysisCustom = new AudioAnalysisCustom(audioAnalysis);
                    playlistScript.trackId             = fullTrack.Id;
                    playlistScript.streams             = chartTrack.streams;
                    saveLoad.SaveTextureToFilePNG(Converter.ConvertWWWToTexture(imageURLWWW), "chartTrack" + i + ".png");
                    saveLoad.savedChartTracks.Add(new PlaylistScriptData(playlistScript));

                    Vector3 v = popCubes[i].transform.localScale;

                    if (chartTrack.streams != null)
                    {
                        popCubes[i].transform.localScale = new Vector3(v.x, float.Parse(chartTrack.streams) * streamsScaling, v.z);
                    }
                }
            }
        }
    }
    public void LoadChartTracksFromFilePNG()
    {
        spotifyManager = GameObject.Find("SpotifyManager");

        saveLoad = spotifyManager.GetComponent <SaveLoad>();

        quads = GetChildGameObjectWithTag("song");

        meshRenderers = GetMeshRenderers(quads);

        csvReader = spotifyManager.GetComponent <CSVReader>();

        chartTracks = csvReader.chartTrackList;

        if (saveLoad.savedChartTracks != null && saveLoad.savedChartTracks.Count != 0)
        {
            for (int i = 0; i < meshRenderers.Length; i++)
            {
                if (chartTracks != null || chartTracks.Count != 0)
                {
                    ChartTrack chartTrack = (ChartTrack)chartTracks[i + 1];
                }
                else
                {
                    Debug.LogError("chartTracks is null/empty");
                }

                PlaylistScriptData playlistScriptLoadedData = saveLoad.savedChartTracks[i];

                PlaylistScript playlistScriptLoaded = new PlaylistScript(playlistScriptLoadedData);

                GameObject meshRendererGameObject = meshRenderers[i].transform.gameObject;

                PlaylistScript playlistScript = meshRendererGameObject.GetComponent <PlaylistScript>();

                Texture2D texture = saveLoad.LoadTextureFromFilePNG("chartTrack" + i + ".png");

                meshRenderers[i].material.mainTexture = texture;

                playlistScript.setPlaylistName(playlistScriptLoaded.playlistName);
                playlistScript.setPlaylistURI(playlistScriptLoaded.playlistURI);
                playlistScript.artistName          = playlistScriptLoaded.artistName;
                playlistScript.artistId            = playlistScriptLoaded.artistId;
                playlistScript.sprite              = Converter.ConvertTextureToSprite(texture);
                playlistScript.trackId             = playlistScriptLoaded.trackId;
                playlistScript.audioAnalysisCustom = playlistScriptLoaded.audioAnalysisCustom;

                Vector3 v = popCubes[i].transform.localScale;

                if (playlistScriptLoaded.streams != null)
                {
                    popCubes[i].transform.localScale = new Vector3(v.x, float.Parse(playlistScriptLoaded.streams) * streamsScaling, v.z);
                }
            }
        }
        else
        {
            Debug.LogError("savedChartTracks is empty/null");
        }
    }
Example #3
0
    private void ReadCSV()
    {
        List <List <string> > dataGrid = CsvFileReader.ReadAll("C:/Users/Public/Documents/Unity Projects/Spotify Oculus/Assets/Me/Resources/CSV/regional-global-daily-latest.csv", Encoding.GetEncoding("gbk"));

        foreach (var row in dataGrid)
        {
            ChartTrack chartTrack = new ChartTrack(row);
            chartTrackList.Add(chartTrack);
        }
    }
Example #4
0
        private static bool CheckUp(ChartTrack track)
        {
            if (!string.IsNullOrEmpty(track.Name) && !string.IsNullOrEmpty(track.ArtistName) &&
                !string.IsNullOrEmpty(track.album_name))
            {
                return(true);
            }

            else
            {
                return(false);
            }
        }
    private void ReadCSV()
    {
        List <List <string> > dataGrid = null;

        try
        {
            dataGrid = CsvFileReader.ReadAll(Application.persistentDataPath + "/regional-global-daily-latest.csv", Encoding.GetEncoding("utf-8"));
        }
        catch (Exception e)
        {
            textMeshPro.text = e.Message.ToString();
        }
        if (dataGrid != null)
        {
            foreach (var row in dataGrid)
            {
                ChartTrack chartTrack = new ChartTrack(row);
                chartTrackList.Add(chartTrack);
            }
        }
    }
Example #6
0
        public static async Task <SavingError> SaveSpotifyChartTrackLevel1(ChartTrack chartTrack)
        {
            //clean track only english letters
            chartTrack.Name       = SongSavingHelper.ToCleanQuery(chartTrack.Name);
            chartTrack.ArtistName = SongSavingHelper.ToCleanQuery(chartTrack.ArtistName);
            chartTrack.album_name = SongSavingHelper.ToCleanQuery(chartTrack.album_name);

            //check if it is track properties are noll or not;
            if (!CheckUp(chartTrack))
            {
                ShowResults(SavingError.Unknown, chartTrack.Name);
                return(SavingError.Unknown);
            }

            //checking for duplicate songs.
            if (App.Locator.CollectionService.SongAlreadyExists(chartTrack.Name, chartTrack.album_name, chartTrack.ArtistName))
            {
                ShowResults(SavingError.AlreadyExists, chartTrack.Name);
                return(SavingError.AlreadyExists);
            }


            //getting track metadata from spotify and search using viez.
            var track = await App.Locator.Spotify.GetTrack(chartTrack.track_id);

            if (track != null)
            {
                var album = await App.Locator.Spotify.GetAlbum(track.Album.Id);

                var result = await SaveSpotifyTrackLevel2(track, album);

                return(result);
            }

            //network fail
            ShowResults(SavingError.Network, chartTrack.Name);
            return(SavingError.Network);
        }
Example #7
0
        public static async Task SaveSpotifyChartTrackLevel1(ChartTrack track)
        {
            if (!App.Locator.Setting.IsLoggedIn)
            {
                if (_warningCount > 0)
                {
                    ToastManager.ShowError("Login required.");
                    return;
                }
                await MessageHelpers.LoginRequired();

                _warningCount += 1;
            }
            var fTrack = track;

            App.Locator.PBar.IsEnable = true;
            try
            {
                track.Name       = track.Name.GetSongNameFromMain();
                track.ArtistName = track.ArtistName.GetArtistName();
                if (track.Name == "Unknown Track")
                {
                    track.Name = fTrack.Name;
                }
                if (track.ArtistName == "Unknown Artist" && fTrack.ArtistName != "Unknown Artist")
                {
                    track.ArtistName = fTrack.ArtistName;
                }

                await SpotifySavingHelper.SaveSpotifyChartTrackLevel1(track);
            }
            catch
            {
                await SpotifySavingHelper.SaveSpotifyChartTrackLevel1(track);
            }
            App.Locator.PBar.IsEnable = false;
        }