Как изменить Radio Player для jQuery с помощью API spotify? - PullRequest
1 голос
/ 25 марта 2019

Мне нужна помощь для обновления Kast - экстраординарного радиоплеера SHOUTcast HTML5 для jQuery, созданного Манаром Камелем.

У меня уже есть идентификатор клиента, секрет клиента и URI перенаправления API Spotify.

Я провел тесты аутентификации на примере app.js, и все работает нормально.

Я не говорю по-английски, и все руководства разработчиков spotify на английском языке.Я использую гугл переводчик.

artwork: function (artist, track, callback) {
            // -- Pull album artwork from spotify API
            // -- or artist artwork as fallback
            // -- or Default art as fallback
            // -- return it

            var that = this,
                ot = this.opt;

            if (Array.isArray && Array.isArray(ot.artwork)) {
                return callback(ot.artwork)
            }

            if (artist === ot.language.unknownArtistText) { // If artist is unknown
                return callback(null)
            }

            var artistC = chaRe(artist),
                trackC = chaRe(track),
                processArtworkX = function (data) { // @retuns images array if found or null
                    var imgAr = null;
                    if (data.tracks && data.tracks.items[0]) {
                        var imagesArrayT = data.tracks.items[0].album.images || '',
                            imgLarge,
                            imgSmall = imagesArrayT[2].url || '';

                        if (that.mobileMedium) { // ** Mobile first :)
                            imgLarge = imagesArrayT[1].url || ''; // ** Medium quailty
                        } else {
                            imgLarge = imagesArrayT[0].url || '';
                        }

                        if (imgLarge && imgSmall) {
                            imgAr = [imgLarge, imgSmall];
                        }
                    } else if (data.artists && data.artists.items[0] && data.artists.items[0].images[0]) {
                        var imagesArrayA = data.artists.items[0].images || '',
                            imgLarge = null,
                            imgSmall = null;

                        if (data.artists.items[0].images.length === 4) { // ** Not normal artist images                       
                            if (that.mobileMedium) { // ** Mobile first :)
                                imgLarge = imagesArrayA[2].url || ''; // ** Medium quailty
                            } else {
                                imgLarge = imagesArrayA[1].url || '';
                            }

                            imgSmall = imagesArrayA[3].url || '';

                        } else {
                            if (that.mobileMedium) { // ** Mobile first :)
                                imgLarge = imagesArrayA[1].url || ''; // ** Medium quailty
                            } else {
                                imgLarge = imagesArrayA[0].url || '';
                            }

                            imgSmall = imagesArrayA[2].url || '';
                        }
                        if (imgLarge && imgSmall) {
                            imgAr = [imgLarge, imgSmall];
                        }
                    }

                    return imgAr
                },
                ajaxArtwork = function (artistN, trackN, noLuck) {
                    var spotifyTrackAPI = 'https://api.spotify.com/v1/search?q=artist:' + artistN + '%20track:' + trackN + '&limit=1&type=track',
                        spotifyArtistAPI = 'https://api.spotify.com/v1/search?q=artist:' + artistN + '&limit=1&type=artist',
                        spotifyAPI = noLuck ? spotifyArtistAPI : spotifyTrackAPI;

                    // Smart pulling
                    XHR({
                        url: spotifyAPI,
                        load: function (data) {
                            var dataJSON = JSON.parse(data);
                            var imgAr = processArtworkX(dataJSON); // @returns artwork array or null
                            if (imgAr) {
                                callback(imgAr)
                            } else {

                                if (noLuck) {
                                    callback(null)
                                } else {
                                    ajaxArtwork(artistN, trackN, true) // ** this time get artist art and if !imgAr return null
                                }

                            }
                        },
                        error: function () {
                            callback(null)
                        }
                    })
                },
                iW = ot.irrelevantWords;

            if (iW) {
                var iWL = iW.length;
                for (var i = 0; i < iWL; i++) {
                    artistC = artistC.replace(iW[i], '')
                    trackC = trackC.replace(iW[i], '')
                }

                ajaxArtwork(artistC, trackC) // smart artwork pulling

            } else {
                ajaxArtwork(artistC, trackC) // smart artwork pulling
            }



            return this
        },

Этот код в настоящее время не работает, потому что для API spotify требуется токен.

Я хочу знать, что мне нужно вставить этот код, чтобы он работалдля меня сейчас.

Я новичок, но я постараюсь.

Спасибо за терпение и помощь, которую вы можете оказать мне.

Хуан

...