jekyll-get-books 0.0.1 → 0.0.4
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.md +15 -2
- data/examples/_config.yml +9 -0
- data/examples/_data/books.csv +3 -0
- data/examples/books.md +12 -0
- data/lib/jekyll-get-books/converter.rb +22 -1
- data/lib/jekyll-get-books/version.rb +1 -1
- metadata +6 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 1970f2eabd1d1e47cae22054a10fa0c276392f4f51b373f2e9dca86a2f39c717
|
4
|
+
data.tar.gz: 478fb83d3d145e79698b52f3ab5b13365bdf8489f5c8c197b6cd35e712fe745f
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 77c328483495806b45c85f150c73004a363e8b6f149e6603a0c79dee5206cbaa94edd1959dfa595f3e7ef849a1ec9517f9e31dc891dec99991eb6173bbcbaa87
|
7
|
+
data.tar.gz: dce851edef4f7e346a42b81d2b733ac9937dd4981e9df39c33f4c234a31fb253cf03b09df07b4e3b4a09e86eb29057045aa510b96cc0e411a86edccb94c2e918
|
data/README.md
CHANGED
@@ -1,16 +1,29 @@
|
|
1
1
|
# jekyll-get-books
|
2
2
|
> 💎 Fetch and safe meta information for books from the Google Book API for a Jekyll Site.
|
3
3
|
|
4
|
+
|
5
|
+
|
6
|
+
## Installation
|
7
|
+
|
8
|
+
1. Use `bundle add jekyll-get-books` to add this to your site's Gemfile.
|
9
|
+
2. Add this plugin to the `plugins` listed in your `_config.yml` file. For example:
|
10
|
+
```
|
11
|
+
plugins:
|
12
|
+
- jekyll-get-books
|
13
|
+
```
|
14
|
+
|
4
15
|
## Usage
|
5
16
|
|
6
17
|
Add a `jekyll_get_books` section to your `_config.yml` file. This section should be an array of objects containing `data`, `json` and `file` properties:
|
7
18
|
* The `data` property specifies where in the `site.data` you would like to put this data.
|
8
|
-
* The `json` property is the remote URL of the JSON file.
|
19
|
+
* The `json` property is the remote URL of the JSON file without specific data attributes.
|
20
|
+
* The `file` property is the path to the csv file with the ISBN numbers.
|
9
21
|
|
22
|
+
Examples can be found in the examples folder.
|
10
23
|
|
11
24
|
## Contributing
|
12
25
|
|
13
|
-
Bug reports and pull requests are welcome on GitHub at https://github.com/
|
26
|
+
Bug reports and pull requests are welcome on GitHub at https://github.com/c-leitner/jekyll-get-books.
|
14
27
|
|
15
28
|
## Credit
|
16
29
|
|
@@ -0,0 +1,9 @@
|
|
1
|
+
# Add this to your _config.yml file
|
2
|
+
|
3
|
+
plugins:
|
4
|
+
- jekyll-get-books
|
5
|
+
|
6
|
+
jekyll_get_books:
|
7
|
+
- data: test #arbitrary name where the data is being saved
|
8
|
+
json: 'https://www.googleapis.com/books/v1/volumes?q=isbn:' #link to a book API. In this case the Google Book API which returns a JSON
|
9
|
+
file: '_data/books.csv' # Path to the csv files with the ISBNs
|
data/examples/books.md
ADDED
@@ -0,0 +1,12 @@
|
|
1
|
+
In your Jekyll site you will be able to use:
|
2
|
+
|
3
|
+
```
|
4
|
+
{% for item in site.data.test.items %}
|
5
|
+
**{{item.volumeInfo.title}}** - {{item.volumeInfo.authors[0]}} <span style="float: right; ">{{item.volumeInfo.publisher}}</span><br />
|
6
|
+
{{item.volumeInfo.subtitle}}
|
7
|
+
|
8
|
+
{% endfor %}
|
9
|
+
|
10
|
+
```
|
11
|
+
|
12
|
+
|
@@ -22,6 +22,7 @@ module JekyllGetBooks
|
|
22
22
|
|
23
23
|
config.each do |d|
|
24
24
|
begin
|
25
|
+
warn "was here1".yellow
|
25
26
|
target = site.data[d['data']]
|
26
27
|
source = d['json']
|
27
28
|
file = d['file']
|
@@ -30,7 +31,27 @@ module JekyllGetBooks
|
|
30
31
|
warn "File does not exist / Path is incorrect".yellow
|
31
32
|
end
|
32
33
|
CSV.foreach((file), headers: true, col_sep: ",") do |row|
|
33
|
-
|
34
|
+
warn "was here2".yellow
|
35
|
+
begin
|
36
|
+
warn "was here3".yellow
|
37
|
+
connection = URI.open(source+row['isbn'])
|
38
|
+
rescue => e
|
39
|
+
case e
|
40
|
+
when OpenURI::HTTPError
|
41
|
+
warn "A HTTP Error occurred while accessing the API".yellow
|
42
|
+
when SocketError
|
43
|
+
warn "A Socket Error occurred while accessing the API".yellow
|
44
|
+
end
|
45
|
+
warn e.yellow
|
46
|
+
else
|
47
|
+
meta = connection.status[1]
|
48
|
+
output = JSON.load(connection)
|
49
|
+
if meta == "OK"
|
50
|
+
warn "JSON fetched succesfully"
|
51
|
+
else
|
52
|
+
warn "An HTTP erro occurred while fetching the JSON (" +meta+")"
|
53
|
+
end
|
54
|
+
end
|
34
55
|
results.deep_merge(output)
|
35
56
|
end
|
36
57
|
site.data[d['data']] = results
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: jekyll-get-books
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.4
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Clemens Leitner
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2022-02-23 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: jekyll
|
@@ -48,6 +48,9 @@ files:
|
|
48
48
|
- ".gitignore"
|
49
49
|
- LICENSE
|
50
50
|
- README.md
|
51
|
+
- examples/_config.yml
|
52
|
+
- examples/_data/books.csv
|
53
|
+
- examples/books.md
|
51
54
|
- jekyll-get-books.gemspec
|
52
55
|
- lib/jekyll-get-books.rb
|
53
56
|
- lib/jekyll-get-books/converter.rb
|
@@ -71,7 +74,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
71
74
|
- !ruby/object:Gem::Version
|
72
75
|
version: '0'
|
73
76
|
requirements: []
|
74
|
-
rubygems_version: 3.
|
77
|
+
rubygems_version: 3.3.5
|
75
78
|
signing_key:
|
76
79
|
specification_version: 4
|
77
80
|
summary: Fetch and safe meta information for books from the Google Book API for a
|