spotify-quiz-questions
v0.1.3
Published
Generates questions for music quiz
Downloads
11
Maintainers
Readme
spotify-quiz-questions
Generates questions for music quiz
Fetches tracks from playlist of your choosing. Makes additional requests to fetch 'artists top tracks' or 'related artists' to construct question. Module uses spotify-web-api-node to make requests to Spotify API.
Installation
$ npm install --save spotify-quiz-questions
Usage
const SpotifyQuizQuestions = require('spotify-quiz-questions').default
const config = {
// client id for Spotify API
clientId: '',
// client id for Spotify API
clientSecret: '',
// if refresh token should auto update. defaults to false.
shouldUpdateRefreshToken: false,
}
const spotifyQuizQuestions = new SpotifyQuizQuestions(config)
const options = {
// playlist used to generate questions. defaults to 'Top 100 tracks currently on Spotify'
playlist: {
name: 'Top 100 tracks currently on Spotify',
id: '4hOKQuZbraPDIfaGbM3lKI',
owner: 'spotify'
},
// "guess the artist name" or "guess the track title" type of questions
// 'track title', 'artist name' or 'mix'. defaults to 'mix'
questionType: 'mix',
// number of questions, max is 12. defaults to 10.
amount: 10
}
spotifyQuizQuestions.getQuestions(options)
.then((questions) => {
const q = questions[0]
q.getChoices() // [ 'Kevin Lyttle', 'Machel Montano', 'Massari', 'Mavado' ]
q.getRightAnswer() // 'Kevin Lyttle'
q.evaluateAnswer('Kevin Lyttle') // true
const track = q.getTrack()
track.getArtist() // 'Kevin Lyttle'
track.getArtistId() // '1GaBsp1ICIp1e6udgE7fba'
track.getTitle() // 'Turn Me On'
track.getAudioPreview() // 'https://p.scdn.co/mp3-preview/...'
track.getImage() // { height: 300, width: 300, url: 'https://i.scdn.co/image/...' }
track.getMetaData() // { httpLink: 'https://open.spotify.com/track/...', uriLink: 'spotify:track:...' }
})
.catch((err) => console.log(err))
Typescript
Yes! Module comes bundled with declaration files.
import SpotifyQuizQuestions from 'spotify-quiz-questions';
import {
SpotifyClientConstructorOptions,
QuestionOptions,
QuestionType,
Playlist
} from 'spotify-quiz-questions/dist/interfaces';
const config: SpotifyClientConstructorOptions = {
clientId: '',
clientSecret: '',
shouldUpdateRefreshToken: false,
};
const spotifyQuizQuestions = new SpotifyQuizQuestions(config);
const options: QuestionOptions = {
playlist: <Playlist> {
name: 'Top 100 tracks currently on Spotify',
id: '4hOKQuZbraPDIfaGbM3lKI',
owner: 'spotify'
},
questionType: <QuestionType> 'mix',
amount: 10
}
spotifyQuizQuestions.getQuestions(options)
.then((questions) => {
...
})
.catch((err: any) => console.log(err));
License
MIT © Simon Johansson