Swift APIs for getting book information from popular web services

Related tags

Utility BookKit
Overview

BookKit

BookKit contains helper routines for dealing with common book-related services. It will help you:

  1. Issue a query to Google Books and parse the result. (Note: You must have your own Google Books API key for this.)
  2. Download cover images from OpenLibrary
  3. Parse the JSON files from LibraryThing
  4. Load a CSV file from Goodreads

Code Overview

  • Book is the core abstration of a "book" made available from any of the common book-tracking sites / services. The properties on Book are meant to be about the book itself, as opposed to the relationship between the book and a person (like when the book was added to a library, or how a reader rates the book).
  • AugmentedBook extends Book to add the metadata that are personal to a particular person, like review/rating.
  • AugmentedBook+CSV.swift contains utilities for loading AugmentedBook structs from CSV files saved from Goodreads.
  • LibraryThing contains utilities for loading AugmentedBook structs from a JSON file saved from LibraryThing.
  • GoogleBooks contains utilities for searching for books from Google Books.
  • OpenLibrary contains utilities for downloading book covers from Open Library.

Changelog

Version 0.5 - 2021-09-25

  • When parsing LibraryThing JSON, "date" is now truly optional.

Version 0.4 - 2021-09-10

  • Add an async OpenLibrary.coverImage method

Version 0.3 - 2021-08-13

  • Persist Google "categories" & LibraryThing "genres" as tags on the Book.

Version 0.2.1 - 2021-07-07

Bugfix: Calling ReadingHistory.finishReading() now sets hasRead to true

Version 0.2 - 2021-07-05

Added ReadingHistory

Version 0.1 - 2021-06-27

Initial version.

You might also like...
Swift - ✏️Swift 공부 저장소✏️

Swift 스위프트의 기초 1. Swift의 기본 2. 변수와 상수 [3. 데이터 타입 기본] [4. 데이터 타입 고급] 5. 연산자 6. 흐름 제어 7. 함수 8. 옵셔널 객체지향 프로그래밍과 스위프트 9. 구조체와 클래스 10. 프로퍼티와 메서드 11. 인스턴스 생

Swift-ndi - Swift wrapper around NewTek's NDI SDK

swift-ndi Swift wrapper around NewTek's NDI SDK. Make sure you extracted latest

__.swift is a port of Underscore.js to Swift.

__.swift Now, __.swift is version 0.2.0! With the chain of methods, __.swift became more flexible and extensible. Documentation: http://lotz84.github.

SNTabBarDemo-Swift - Cool TabBar With Swift
SNTabBarDemo-Swift - Cool TabBar With Swift

SNTabBarDemo-Swift Cool TabBar How To Use // MARK: - setup private func setu

Swift-when - Expression switch support in Swift

Swift When - supporting switch expressions in Swift! What is it? Basically, it a

Swift-compute-runtime - Swift runtime for Fastly Compute@Edge

swift-compute-runtime Swift runtime for Fastly Compute@Edge Getting Started Crea

Swift-HorizontalPickerView - Customizable horizontal picker view component written in Swift for UIKit/iOS

Horizontal Picker View Customizable horizontal picker view component written in

swift-highlight a pure-Swift data structure library designed for server applications that need to store a lot of styled text

swift-highlight is a pure-Swift data structure library designed for server applications that need to store a lot of styled text. The Highlight module is memory-efficient and uses slab allocations and small-string optimizations to pack large amounts of styled text into a small amount of memory, while still supporting efficient traversal through the Sequence protocol.

Sovran-Swift: Small, efficient, easy. State Management for Swift

Sovran-Swift: Small, efficient, easy. State Management for Swift

Releases(v0.5.0)
Owner
Brian Dewey
Brian Dewey
AnalyticsKit for Swift is designed to combine various analytical services into one simple tool.

?? AnalyticsKit AnalyticsKit for Swift is designed to combine various analytical services into one simple tool. To send information about a custom eve

Broniboy 6 Jan 14, 2022
Swift Server Implementation - RESTful APIs, AWS Lambda Serverless For Swift Runtime amazonlinux: AWS Lambda + API Gateway

Swift Server Implementation - RESTful APIs, AWS Lambda Serverless For Swift Runtime amazonlinux: AWS Lambda + API Gateway deployed on Graviton arm64 build swift:5.6.2-amazonlinux2-docker image

Furqan 2 Aug 16, 2022
It makes a preview from an URL, grabbing all the information such as title, relevant texts and images.

Link Previewer for iOS, macOS, watchOS and tvOS It makes a preview from an URL, grabbing all the information such as title, relevant texts and images.

Leonardo Cardoso 1.3k Jan 2, 2023
Weather and forecasts for humans. Information you can act on.

Tropos Weather and forecasts for humans. Information you can act on. Most weather apps throw a lot of information at you but that doesn't answer the q

thoughtbot, inc. 1.5k Dec 28, 2022
Aplikacja iOS dla Gakko (web dziekanat w PJATK/PJAIT)

Mini Gakko Uproszczony klient dla Gakko (webowy dziekanat PJATK/PJAIT/PJWSTK/PEJOT). Na pewno działa lepiej niż plan lekcji w safari. 100% swift, SPM

Krystian Postek 3 Feb 21, 2022
Steps and files needed to reproduce a CSP bug in Safari Web Extensions

CSP Safari bug repro There appears to be a discrepancy between how Safari handles CSP policies for extension pages compared to how other browsers do s

Brian Birtles 0 Nov 6, 2021
BCSwiftTor - Opinionated pure Swift controller for Tor, including full support for Swift 5.5 and Swift Concurrency

BCSwiftTor Opinionated pure Swift controller for Tor, including full support for

Blockchain Commons, LLC — A “not-for-profit” benefit corporation 4 Oct 6, 2022
Swift Markdown is a Swift package for parsing, building, editing, and analyzing Markdown documents.

Swift Markdown is a Swift package for parsing, building, editing, and analyzing Markdown documents.

Apple 2k Dec 28, 2022
Swift-DocC is a documentation compiler for Swift frameworks and packages aimed at making it easy to write and publish great developer documentation.

Swift-DocC is a documentation compiler for Swift frameworks and packages aimed at making it easy to write and publish great developer docum

Apple 833 Jan 3, 2023
Cross-Platform, Protocol-Oriented Programming base library to complement the Swift Standard Library. (Pure Swift, Supports Linux)

SwiftFoundation Cross-Platform, Protocol-Oriented Programming base library to complement the Swift Standard Library. Goals Provide a cross-platform in

null 620 Oct 11, 2022