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

@jamesdanylik/gatsby-source-goodreads

v0.1.0

Published

A GatsbyJS source plugin for building websites using GoodReads

Downloads

12

Readme

gatsby-source-goodreads

Build Status npm package npm package

This is a source plugin for GatsbyJS to pull information from the GoodReads API. It is an alternative to gatsby-source-goodreads by Daniel Oliver, which predates it. While the original pulls these books in under a single node type, the goal in my version is to grabs all the books, author, and shelf information for a single user while preserving the links between data.

Notes on GoodReads API Structure

Note that good reads keeps the books and ratings as seperate data objects; these reviews are what are placed on shelves, not books, and I preserve this relation to provide the most transparant access possible. In short, your data is in the reviews nodes; data on the book itself is in the book node.

Install

npm install --save @jamesdanylik/gatsby-source-goodreads

Configuration

// In your gatsby-config.js
plugins: [
	{
	      resolve: "@jamesdanylik/gatsby-source-goodreads",
	      options: {
						key: '<<YOUR GOODREADS API KEY>>',
						id: '<<USER ID TO TRACK>>'
	      },
	},
	...
]

Provided Queries

Reviews

  allGoodreadsReview {
    edges {
      node {
        id
        rating
        votes
        spoiler_flag
        spoilers_state
        recommended_by
        recommended_for
        started_at
        read_at
        date_added
        date_updated
        read_count
        body
        comments_count
        url
        link
        owned
        book {
          id
          # book node here!
          # see book query for all fields
        }
        shelves {
          id
          # shelf nodes here!
          # see shelf query for all fields
        }
      }
    }
  }
  

Shelves

  allGoodreadsShelf {
    edges {
      node {
        id
        name
        exclusive
        review_shelf_id
        reviews {
          id
          # reviews nodes here!
          # see review query for all fields
        }
      }
    }
  }

Books

  allGoodreadsBook {
    edges {
      node {
        id, 
        isbn, 
        isbn13, 
        text_reviews_count, 
        uri, 
        title, 
        title_without_series, 
        image_url, 
        small_image_url, 
        large_image_url, 
        link, 
        num_pages, 
        format, 
        edition_information, 
        publisher, 
        publication_day, 
        publication_month, 
        publication_year, 
        average_rating, 
        ratings_count, 
        description,
        published,
        work {
          id
          uri
        }
        authors {
          id
          # author nodes here!
          # see author query for all fields
        }
        reviews {
          id
          # review nodes here!
          # see review query for all fields
        }
      }
    }
  }

Authors

  allGoodreadsAuthor {
    edges {
      node {
        id
        name
        role
        image_url
        small_image_url
        link
        average_rating
        ratings_count
        text_reviews_count
        books {
          id
          # book nodes here!
          # see book query for all available fields
        }
      }
    }
  }