spotify-quiz-questions
TypeScript icon, indicating that this package has built-in type declarations

0.1.3 • Public • Published

spotify-quiz-questions NPM version Build Status Dependency Status Coverage percentage

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

Readme

Keywords

Package Sidebar

Install

npm i spotify-quiz-questions

Weekly Downloads

4

Version

0.1.3

License

MIT

Unpacked Size

23.4 kB

Total Files

19

Last publish

Collaborators

  • simon-johansson