0.0.2 • Published 7 years ago

sfwbooru v0.0.2

Weekly downloads
3
License
GPL-3.0+
Repository
github
Last release
7 years ago

booru

A mode package for searching various boorus (with promises!)

Exact copy from booru just removed the nsfw sites

Features

  • Able to search 5 different boorus (check sites.json)
  • Also alias support so you can be lazy (sb for safebooru.org)
  • Promises because they're magical
  • Little utility to convert xml to json (and add a .common prop to each image)
  • Choose the amount of images to get
  • Random support for all sites, using order:random on sites that support it and using a bit of magic on sites that don't
  • Some other stuff I probably forgot

Installation

npm i --save sfwbooru

Usage

const booru = require('sfwbooru')

booru.search(site, [tag1, tag2], {limit: 1, random: false})
.then(booru.commonfy)
.then(images => {
  //Log the direct link to each image
  for (let image of images) {
    console.log(image.common.file_url)
  }
})
.catch(err => {
  if (err.name === 'booruError') {
    //It's a custom error thrown by the package
    console.log(err.message)
  } else {
    //This means I messed up. Whoops.
    console.log(err)
  }
})

Some docs

booru.search(site, tags, options)

ParameterTypeOptionalDefaultDescription
sitestringnoneThe site to search, supports aliases
tagsstring[]X[]The tags to search with
optionsSearchOptionsX{}For amount of images to fetch and if to return a random result or not (Check below table)

SearchOptions ({limit: 1, random: false})

ParameterTypeOptionalDefaultDescription
limitnumberX1The max amount of images to return
randombooleanXfalseIf the images returned should be random everytime

FAQ

who am i kidding nobody asks me questions

What the ".common prop" do?

Calling booru.commonfy not only transforms all the xml into json, it adds a .common prop to each image

common: {
  file_url: 'https://aaaa.com/image.jpg',  //The direct link to the image, ready to post
  id: '124125',                            //The image ID, as a string
  tags: ['cat', 'cute'],                   //The tags, split into an Array
  score: 5,                                //The score as a Number
  source: 'https://giraffedu.ck/aaaa.png', //source of the image, if supplied
  rating: 's'                              //rating of the image
}

License?

It's GPLv3