Skip to content

wrapi/genius

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Genius API Wrapper

Client interface for accessing Genius API.

Installation

Install via npm

npm install genius-wrapi --save

Usage

Create a client object with the access_token to connect to Genius API endpoints.

var geniusWrapi = require('genius-wrapi');

var client = new geniusWrapi(GENIUS_ACCESS_TOKEN);

// Now you are ready to make API calls to Genius.

Provide parameters and a callback.

API calls follow this syntax:

client.apimethod(param1, ..., queryString, post_payload, callback);

  • param - (if required) url parameters - eg: For annotations.get the value for :id.
  • queryString - (as required) API method parameters as key-value pairs.
  • post_payload - (as required) payload for POST requests - eg annotations.create

Examples

Get data for a specific annotation.

client.annotations.get('6737668', function(err, data) {
  if (!err) {
    console.log(data);
  } 
});

Creates a new annotation on a public web page.

var payload = {
  "annotation": {
    "body": {
      "markdown": "hello **world!**"
    }
  },
  "referent": {
    "raw_annotatable_url": "http://seejohncode.com/2014/01/27/vim-commands-piping/",
    "fragment": "execute commands",
    "context_for_display": {
      "before_html": "You may know that you can ",
      "after_html": " from inside of vim, with a vim command:"
    }
  },
  "web_page": {
    "canonical_url": null,
    "og_url": null,
    "title": "Secret of Mana"
  }
};
client.annotations.create(payload, function(err, data) {
  if (!err) {
    console.log(data);
  }	
});

Songs for the specified artist.

client.artists.songs('16775', function(err, data) {
  if (!err) {
    console.log(data);
  } 
});

Retrieve information about a web page.

client.webpages.lookup(
  {
    aw_annotatable_url:'https://docs.genius.com'
  }, 
  function(err, data) {
    if (!err) {
      console.log(data);
    } 
  }
);

Search documents hosted on Genius.

client.search(
  {
    q:'Kendrick Lamar'
  }, 
  function(err, data) {
    if (!err) {
      console.log(data);
    } 
  }
);

API Functions

  • annotations.get
  • annotations.create
  • annotations.update
  • annotations.delete
  • annotations.upvote
  • annotations.unvote
  • annotations.downvote
  • referents
  • songs
  • artists
  • artists.songs
  • web_pages.lookup
  • search
  • account

License

MIT