# R34Api.js
- By [BulzyKrown](https://bulzyland.xyz)
- With the help of [Esponjosin](https://esponjosin.xyz) and Rickz

## Instalation
```js
// With NPM
$ npm install r34api.js --save

// With Yarn
$ yarn add r34api.js
```

### Using in your project:
```js
const r34api = new (require('r34api.js'));

console.log(r34api.methods);

// Output:
[ 'random', 'search', 'tags', 'help' ]
```

### Methods:

#### help:
- Show information about an method.
```js

/**
 * @param {String} [method] Name of the method you want to obtain information
 */

const data = await R34.help('method');

// Output example:
{
  base: '/random',
  alias: '/r',
  method: 'GET',
  description: 'Get random data from Rule34',
  query: {
    type: {
      description: 'It delivers images just like that in a random way',
      variable: [Array],
      example: 'type=png'
    },
    limit: {
      description: 'Obtain a limit of data from the database',
      example: 'limit=3'
    }
  },
  routes: {
    all: {
      base: '/all',
      method: 'GET',
      description: 'Obtains all the data stored on the DB',
      query: [Object]
    }
  }
}
```

#### tags:
- Provides a list of the most popular tags from highest to lowest.
```js

/**
 * @param {Number} [limit] The limit of data you want to obtain (By default 1)
 */

const data = await R34.tags(2);

// Output example:
{
  status: 200,
  msg: 'success',
  data: [ { post: 11111, name: 'xxxx', type: 'general' } ]
}
```

#### random:
- Get random data from Rule34.
```js

/**
 * @param {Number} [limit] The limit of data you want to obtain (By default 1)
 * @param {String} [type] Format of the image you want to obtain (Optional)
 */

const data = await R34.random(1, 'gif');

// Output example:
{
  status: 200,
  msg: 'success',
  data: [
    Image {
      id: 1,
      type: 'x',
      rating: 'x',
      dimension: '1 x 1',
      post: 'x',
      media: 'x',
      tags: [Array]
    }
  ]
}
//Note: Inside the data property there are objects that are an Image class that have a function called getBuffer that returns the image buffer.
```


#### search:
- Get data of the search randomnly.
```js

/**
 * @param {String} [tag] Tag from where you want to get an image
 */
const data = await R34.search('Anime');

// Output example:
{
  status: 200,
  msg: 'Success',
  data: Image {
    id: 1,
    type: 'PNG',
    rating: 'Explicit',
    dimension: '1 x 1',
    post: 'x',
    media: 'x',
    tags: []
  }
}
//Note: Inside the data property there are objects that are an Image class that have a function called getBuffer that returns the image buffer.
```