Goodreads. eh.

Previously used to log reading activity. Later ditched in favor of the non-Amazon, open source Bookwyrm.

Below is a node.js script that can parse the the review.json file from a Goodreads user export, group the "read" books by year, and output them. This script was used to help form the output for the pre-2022 lists on the reading page.

const { readFileSync } = require('fs')
const data = readFileSync('./review.json')

let books = JSON.parse(data)
years = { }
books.forEach((b) => {
  if (b.read_status == 'read') {
    year = (new Date(b.read_at)).getFullYear()
    if (!years[year]) {
      years[year] = []
    }
    let bookText = b.book
    if (b.review != '(not provided)') {
      bookText += "— "+b.review
    }
    years[year].push(bookText)
  }
})

for (const year in years) {
  console.log("\n"+year+"\n")
  let books = years[year]
  books.forEach((book) => {
    console.log(book)
  })
}