jekyll-indico 0.4.1 → 0.4.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 0dcfd6b6c484e7b1733fa6ac09b3b1835c64127f
4
- data.tar.gz: 71a26d70ac96e8a8c0b1d6110af6c9b24373680d
3
+ metadata.gz: 91bed0b6b864fa3f7a1b8dee140c9f9eb791823b
4
+ data.tar.gz: 6519f4dd2b0681d3961ce636733701342eed4a7d
5
5
  SHA512:
6
- metadata.gz: 22be7365dca3c8491af78d56164cc4b5eeffa4e969d2436792cd30ae3b2a2b79ed474198d00b9636b9fa2b9fa9bbf37b3e989b96b5026dc11faaeed010508b89
7
- data.tar.gz: eaa61758e36bf45ffd78ed807bd1acdd4e1d678a41d4c88765f057bf622391ec7bc4b90e41f5c2c72fc97637cba2581749304b59da78c76f6840b4715d0d80ea
6
+ metadata.gz: 1f5064ba79a8af25de947a654f5718e70b48a19533f05afa1cb6739ffd07a9c6c25d4296def57d50b00a5f34e57467629ad048b5d6ed6858d6fbb8811dca7d79
7
+ data.tar.gz: 260ecb6e6b9b1801928d0f6eeb204e71217db6f3e6d5fd77128fe750128b976d5401725556054c939cad347f2aebb7071540b35ac4dd08931584d121f35831c1
data/CHANGELOG.md CHANGED
@@ -1,3 +1,20 @@
1
+ # Version 0.4.5
2
+
3
+ Fix timeout being incorrectly called again.
4
+
5
+ # Version 0.4.4
6
+
7
+ Fix timeout being incorrectly called.
8
+
9
+ # Version 0.4.3
10
+
11
+ Fix warning message for classic tokens. Add time printout to help judge need for
12
+ timeout setting.
13
+
14
+ # Version 0.4.2
15
+
16
+ Remove broken support for classic tokens. Modern `INDICO_TOKEN` required.
17
+
1
18
  # Version 0.4.1
2
19
 
3
20
  Fix a few issues in Jekyll generator.
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- jekyll-indico (0.4.1)
4
+ jekyll-indico (0.4.5)
5
5
  jekyll (>= 3.8, < 5.0)
6
6
 
7
7
  GEM
data/README.md CHANGED
@@ -20,9 +20,9 @@ indico:
20
20
  ```
21
21
 
22
22
  This plugin will automatically use an API token if your environment contains
23
- `INDICO_TOKEN`. If you use the deprecated API, this plugin will automatically
24
- sign your requests if your environment contains `INDICO_API` and
25
- `INDICO_SECRET_KEY`.
23
+ `INDICO_TOKEN`. You should generate this and replace `INDICO_API_KEY` and
24
+ `INDICO_SECRET_KEY` with it. You'll want the "Classic API" read permissions set
25
+ on it.
26
26
 
27
27
  #### Usage: installing
28
28
 
@@ -63,36 +63,27 @@ module JekyllIndico
63
63
  private
64
64
 
65
65
  # Run a block over each item in the downloaded results
66
- def download_and_iterate(base_url, indico_id, **kargs, &block)
66
+ def download_and_iterate(base_url, indico_id, timeout: nil, **params, &block)
67
+ params[:pretty] = 'no'
67
68
  uri = URI.join(base_url, "/export/categ/#{indico_id}.json")
68
- params = build_params(**kargs)
69
69
  uri.query = URI.encode_www_form(params)
70
70
 
71
71
  req = Net::HTTP::Get.new(uri)
72
- req['Authorization'] = "Bearer #{ENV['INDICO_TOKEN']}" if ENV['INDICO_TOKEN']
72
+ if ENV['INDICO_TOKEN']
73
+ req['Authorization'] = "Bearer #{ENV['INDICO_TOKEN']}"
74
+ elsif ENV['INDICO_SECRET_KEY'] || ENV['INDICO_API_KEY']
75
+ raise Error, 'Use INDICO_TOKEN with a new-style token'
76
+ end
77
+
78
+ opts = { use_ssl: true }
79
+ opts[:read_timeout] = timeout if timeout
73
80
 
74
- response = Net::HTTP.start(uri.hostname, uri.port, use_ssl: true) { |http| http.request(req) }
81
+ response = Net::HTTP.start(uri.hostname, uri.port, **opts) { |http| http.request(req) }
75
82
 
76
83
  string = response.body
77
84
  parsed = JSON.parse(string) # returns a hash
78
85
 
79
86
  parsed['results'].each(&block)
80
87
  end
81
-
82
- # Automatically signs request if environment has INDICO_API/SECRET_KEY
83
- def build_params(**kargs)
84
- kargs[:pretty] = 'no'
85
-
86
- if ENV['INDICO_API_KEY'] && !ENV['INDICO_TOKEN']
87
- kargs[:ak] = ENV['INDICO_API_KEY']
88
- if ENV['INDICO_SECRET_KEY']
89
- kargs[:timestamp] = Time.new.to_i.to_s
90
- requeststr = join_url(indico_id, kargs)
91
- kargs[:signature] = OpenSSL::HMAC.hexdigest('SHA1', ENV['INDICO_SECRET_KEY'], requeststr)
92
- end
93
- end
94
-
95
- kargs
96
- end
97
88
  end
98
89
  end
@@ -1,13 +1,13 @@
1
1
  # frozen_string_literal: true
2
2
 
3
+ require 'benchmark'
4
+ require 'net/http'
3
5
  require 'yaml'
4
6
 
5
7
  require 'jekyll'
6
8
 
7
9
  require 'jekyll-indico/core'
8
10
 
9
- require 'net/http'
10
-
11
11
  module JekyllIndico
12
12
  # This is a Jekyll Generator
13
13
  class GetIndico < Jekyll::Generator
@@ -16,9 +16,6 @@ module JekyllIndico
16
16
  @site = site
17
17
  @cache_msg = @site.config.dig('indico', 'cache-command')
18
18
 
19
- timeout = @site.config.dig('indico', 'timeout')
20
- Net::HTTP.read_timeout = timeout if timeout
21
-
22
19
  meeting_ids = @site.config.dig('indico', 'ids')
23
20
  raise MissingIDs, 'indico: ids: MISSING from your config!' unless meeting_ids
24
21
  raise MissingIDs, 'indico: ids: must be a hash!' unless meeting_ids.is_a?(Hash)
@@ -37,13 +34,18 @@ module JekyllIndico
37
34
  data_path = @site.config.dig('indico', 'data') || 'indico'
38
35
  @site.data[data_path] = {} unless @site.data.key? data_path
39
36
 
37
+ timeout = @site.config.dig('indico', 'timeout')
38
+
40
39
  # Do nothing if already downloaded
41
40
  return if @site.data[data_path].key? name
42
41
 
43
42
  msg = @cache_msg ? " - run `#{@cache_msg}` to cache" : ''
44
- puts "Accessing Indico meeting API for #{name}:#{number}#{msg}"
45
- iris_meeting = Meetings.new(base_url, number)
46
- @site.data[data_path][name] = iris_meeting.dict
43
+ print "Accessing Indico meeting API for #{name}:#{number}#{msg}"
44
+ time = Benchmark.realtime do
45
+ iris_meeting = Meetings.new(base_url, number, timeout: timeout)
46
+ @site.data[data_path][name] = iris_meeting.dict
47
+ end
48
+ puts ", took #{time.round(1)} s"
47
49
  end
48
50
  end
49
51
  end
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module JekyllIndico
4
- VERSION = '0.4.1'
4
+ VERSION = '0.4.5'
5
5
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: jekyll-indico
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.4.1
4
+ version: 0.4.5
5
5
  platform: ruby
6
6
  authors:
7
7
  - Henry Schreiner
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2022-02-01 00:00:00.000000000 Z
11
+ date: 2022-02-02 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: jekyll