コード例 #1
0
ファイル: app.js プロジェクト: spencexyz/angst-bot
    .then(function(data) {
      spotifyApi.setAccessToken(data.body['access_token']);
      if (data.body['refresh_token']) { 
        spotifyApi.setRefreshToken(data.body['refresh_token']);
      }

      spotifyApi.getPlaylistTracks(process.env.SPOTIFY_PLAYLIST_OWNER_ID, process.env.SPOTIFY_PLAYLIST_ID, { limit: 100 })
        .then(function(data) {
          //data contains the return from Spotify
          //here we pick the random song and return its URI

          var payload = data.body;
          var totalTracksInPlaylist = payload.total;
          var randomSongPosition = Math.floor(Math.random() * totalTracksInPlaylist);

          var songURL = payload.items[randomSongPosition].track.external_urls.spotify;

          return res.send({
            "response_type": "in_channel",
            "text": songURL,
            "unfurl_links": true,
            "unfurl_media": true 
          });

        }, function(err) {
          return res.send("ATTENTION: " + err.message);
        });
    }, function(err) {
コード例 #2
0
ファイル: app.js プロジェクト: abdelm/slackbox
app.post('/clear', checkSlackToken, (req, res) => {
    var playlistTracks,
        deleteTracks = [];

    spotify.getPlaylistTracks(process.env.SPOTIFY_USERNAME, process.env.SPOTIFY_PLAYLIST_ID)
        .then(data => {
            playlistTracks = data.body.items;

            for (var i = 0; i < Math.min(playlistTracks.length, 99); i++) {
                deleteTracks.push({uri: playlistTracks[i].track.uri});
            }

            return spotify.removeTracksFromPlaylist(
                process.env.SPOTIFY_USERNAME,
                process.env.SPOTIFY_PLAYLIST_ID,
                deleteTracks
            );
        })
        .then(data => {
            res.setHeader('Content-Type', 'application/json');
            res.send('Tracks successfully deleted: ' + JSON.stringify(deleteTracks));
        })
        .catch(err => res.send(err.message));
});
コード例 #3
0
ファイル: server.js プロジェクト: jeniferlopez/Projecte_final
http.createServer(function(request, response) {
    var pathname = url.parse(request.url).pathname;
    console.log("Petició per a  " + pathname + " rebuda.");

    if (pathname == '/twittertop') {

        twitterKey = 'Arr7YbSyFAKz7ihqkPQcqrF4B';
        twitterSecret = 'qEVFCWd3yojuvaYCXyyPEC2anHts0k5WsIaxEk8TFtWOGjUNad';
        token = '249649477-cFiAfHIpjOItU5fez7SFtkr3R9oedfMeII7y6vRd';
        secret = '0BAo0bZxTKOEIg9TpPoZdafazAxm68kycErwL2fIALkgk';
/**
 * [Mètode que permet la autentificació del usuari a twitter]
 * @param {[type]} https
 * @param {[type]} twitterKey [Key autentificació twitter]
 * @param {[String]} twitterSecret [Ḱey secreta twitter]
 * @param {[type]} 1.0A        [Versió Oauth]
 * @param {[type]} null          [description]
 * @param {[type]} HMAC-SHA1   [format]
 */
        var oauth = new OAuth.OAuth(
            'https://api.twitter.com/oauth/request_token',
            'https://api.twitter.com/oauth/access_token',
            twitterKey,
            twitterSecret,
            '1.0A',
            null,
            'HMAC-SHA1'
        );
        /**
         * Mètode que fa la petició GET
         * @param  {[type]} 'https:                         token,            secret,            function(error, data [description]
         * @return {[JSON]}         [data en format JSON]
         */
        oauth.get(
            'https://api.twitter.com/1.1/trends/place.json?id=1',
            token,
            secret,
            function(error, data) {
                cookedData = [];
                if (error) console.error(error);
                var dataObject = JSON.parse(data);
                try {
                    for (var index in dataObject[0].trends) {
                        if (dataObject[0].trends[index].tweet_volume != null) {
                            cookedData.push({
                                name: dataObject[0].trends[index].name,
                                y: dataObject[0].trends[index].tweet_volume,
                                drilldown: dataObject[0].trends[index].name
                            });
                        }

                    }

                } catch (err) {
                    console.error(err);
                }


                sortByKey(cookedData, 'y');

                response.writeHead(200, {
                    "Content-Type": "text/html; charset=utf-8",
                    "Access-Control-Allow-Origin": "*",
                    "Access-Control-Allow-Headers": "Accept, Access-Control-Allow-Headers, Access-Control-Allow-Origin, Content-Type",
                    "Access-Control-Allow-Methods": "GET,POST,OPTIONS"
                });
                response.end(JSON.stringify(cookedData));
            }
        );
    } else if (pathname == '/spotifytop') {

        var spotifyApi = new SpotifyWebApi({
            clientId: '310da85c32b946a4846b5b8fea802eae',
            clientSecret: '47cbf950a59b46bb8c82b08e8817e284',
            redirectUri: 'http://localhost:8888/spotifytop'
        });
        spotifyApi.setAccessToken('BQC3gpAJn14YHdm7QBvTBKtWZ9SEYhzqE6pC9OV1zRwytZ4-FS7Fx0ylD6x4ghmzg_u6lV-5iGLMfPzfff7qC77JZVEdPqc9A6EEO-d_dInubNvkO8RQhaoZFF6S52v0tdQ1StrX0GeJmfJtibnOX5LYkAKbkVkvacwhHjSaOVpiTm6MxAL-O0rPQBgnYjOdUeu8rdHnZZa27kqEdI89DsEu_pWzlvcCvRgoCxp7yqVac7A6yFOKjeI_melNjNpdo3MZzFPpqjohfP8uT5BbXjCmS0SnvDs-9xtrhY3J6TPKhqaA');
        spotifyApi.getPlaylistTracks('spotify', '4hOKQuZbraPDIfaGbM3lKI', {
            limit: 20,
            offset: 5
        }, function(err, data) {
            if (err) {
                console.error(err);
            } else {
                cookedData = [];
                for (var index in data.body.items) {
                    cookedData.push({
                        name: data.body.items[index].track.name,
                        y: data.body.items[index].track.popularity,
                        drilldown: data.body.items[index].track.name
                    });
                }


                sortByKey(cookedData, 'y');

                response.writeHead(200, {
                    "Content-Type": "text/html; charset=utf-8",
                    "Access-Control-Allow-Origin": "*",
                    "Access-Control-Allow-Headers": "Accept, Access-Control-Allow-Headers, Access-Control-Allow-Origin, Content-Type",
                    "Access-Control-Allow-Methods": "GET,POST,OPTIONS"
                });
                response.end(JSON.stringify(cookedData));
            }
        });

    } else {
        console.log("PATH ERROR");
    }
}).listen(8888);