npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

quotable

v1.1.0

Published

The npm package for api.quotable.io

Downloads

19

Readme

Quotable

Quotable is free, open source quotations API. This package is built on top of Quotable project, to provide quick access to the quotable API directly into your project without calling any route yourself.

Servers

This package is directly connected to the Primary Server of the Quotable API.

Quotable provides two servers, Primary Server is always the more stable version, whilst staging gets features first. | Name | URL | Description | | :--------- | :------------------ | :----------------------------------------------- | | Staging | staging.quotable.io | Synced with the master branch of this repository (Not Available through this package) | | Production | api.quotable.io | The primary API server |

Installation

Using npm? Run the following command to install.

$ npm install quotable --save

In love with Yarn? Run the following command to install

$ yarn add quotable --save

Methods

In this version 1.1.0, only two methods are supported, but we're looking forward for more awesome way of fetching quotes from the quotable API.

All methods are available under the quotable object. Import the package in your project.

const quotable = require('quotable');

Get random Quote

Looking for a random quote for your project, want to greet user with some awesome but new quote everytime. Well this is the best way to achieve this.

Just call the getRandomQuote(), use the awesome async/await within your asynchronous functions.

const aNewQuote = await quotable.getRandomQuote();

console.log(aNewQuote);
/* 
{
    return: true
    //Request Succesfull
    _id: string
    // The quotation text
    content: string
    // The full name of the author
    author: string
    // The length of quote (number of characters)
    length: number
    // An array of tag names for this quote
    tags: string[]
}
*/

Not inside an asynchronous function? Pass a callback as the second argument to the getRandomQuote()

quotable.getRandomQuote({ /* Params here */}, (aNewQuote) => {
    console.log(aNewQuote);
    /* 
    {
        return: true
        //Request Succesfull
        _id: string
        // The quotation text
        content: string
        // The full name of the author
        author: string
        // The length of quote (number of characters)
        length: number
        // An array of tag names for this quote
        tags: string[]
    }
    */
});

You can get more control over the random quote you can get by passing the params as the first argument to getRandomQuote()

| param | type | Description | | :-------- | :------- | :--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | maxLength | Int | The maximum Length in characters ( can be combined with minLength ) | | minLength | Int | The minimum Length in characters ( can be combined with maxLength ) | | tags | String | Filter random quote by tag(s). Takes a list of one or more tag names, separated by a comma (meaning AND) or a pipe (meaning OR). A comma separated list will match quotes that have all of the given tags. While a pipe (\|) separated list will match quotes that have either of the provided tags. | authorId | String | Filter random quote by authorId(s). Takes a list of one or more authorId, separated by a pipe (meaning OR). A pipe (\|) separated list will match quotes that have either of the provided authorId. | author | String | Filter random quote by author(s). Takes a list of one or more author names, separated by a pipe (meaning OR). A pipe (\|) separated list will match quotes that have either of the provided author name. |

For Example:

const aNewQuote = await quotable.getRandomQuote({minLength: 45, maxLength: 50});

console.log(aNewQuote);
/* 
{
    return: true
    //Request Succesfull
    _id: string
    // The quotation text
    content: string
    // The full name of the author
    author: string
    // The length of quote (number of characters) >=45 && <=50
    length: number
    // An array of tag names for this quote
    tags: string[]
}
*/

List Quotes

Get a paginated list of all quotes. This method supports several filter and sorting options. getQuotes() is used to list the quotes.

const quotes = await quotable.getQuotes() //inside an async function

console.log(quotes)
/*
{
  // The number of quotes returned by this request
  count: number
  // The total number of quotes matching this request
  totalCount: number
  // The index of the last quote returned. When paginating through results,
  // this value would be used as the `skip` parameter when requesting the next
  // "page" of results.
  lastItemIndex: number
  // The array of quotes
  results: Array<{
    _id: string
    // The quotation text
    content: string
    // The full name of the author
    author: string
    // The length of quote (number of characters)
    length: number
    // An array of tag names for this quote
    tags: string[]
  }>
}
*/

It supports various options, listed below

| param | type | Description | | :-------- | :------- | :--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | authorId | String | Filter quotes by author ID. | | limit | Int | Min: 1 Max: 100 Default: 20 The number of quotes to return per request. (for pagination). | | skip | Int | Min: 0 Default: 0 The number of items to skip (for pagination). | | maxLength | Int | The maximum Length in characters ( can be combined with minLength ) | | minLength | Int | The minimum Length in characters ( can be combined with maxLength ) | | tags | String | Filter quotes by tag(s). Takes a list of one or more tag names, separated by a comma (meaning AND) or a pipe (meaning OR). A comma separated list will match quotes that have all of the given tags. While a pipe (\|) separated list will match quotes that have either of the provided tags. |

Author

👤 Ashutosh Kumar

🤝 Contributing

Contributions, issues and feature requests are welcome!Feel free to check issues page. You can also take a look at the contributing guide.