commonmeta-ruby 3.3.1 → 3.3.3
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/Gemfile.lock +3 -1
- data/bin/commonmeta +1 -1
- data/commonmeta.gemspec +1 -0
- data/lib/commonmeta/cli.rb +7 -1
- data/lib/commonmeta/utils.rb +21 -1
- data/lib/commonmeta/version.rb +1 -1
- data/lib/commonmeta.rb +1 -0
- data/spec/cli_spec.rb +3 -3
- metadata +21 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 2eb50e7e66b90175ca4b2176de9bd89e7898e06efdb6a4dbae46532233f2736c
|
4
|
+
data.tar.gz: 8e8161a7bd4064a04956d47d3945f4165cf147a559488ad943c5e776c3c666d2
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 344a8db3f61bad8f9f9b289427d0de3d1ac685e7c93dd092ebb54055969986a76c3f5e763b2c5ccd37d73b4c9de5350c6009b5927d3f943f72b6c213436c598a
|
7
|
+
data.tar.gz: 432286ef1601030abcd7b76bd814c399a12c75f2f438e71c8f1a64dcc8a03008be26a5712eeeab4d38f30085f0e3e0bff832fa7a831c13a41d9e50214d53ff8a
|
data/Gemfile.lock
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
PATH
|
2
2
|
remote: .
|
3
3
|
specs:
|
4
|
-
commonmeta-ruby (3.3.
|
4
|
+
commonmeta-ruby (3.3.3)
|
5
5
|
activesupport (>= 4.2.5, < 8.0)
|
6
6
|
addressable (~> 2.8.1, < 2.8.2)
|
7
7
|
base32-url (>= 0.7.0, < 1)
|
@@ -16,6 +16,7 @@ PATH
|
|
16
16
|
json-ld-preloaded (~> 3.2, >= 3.2.2)
|
17
17
|
json_schemer (~> 1.0.1)
|
18
18
|
jsonlint (~> 0.3.0)
|
19
|
+
jwt (~> 2.7, >= 2.7.1)
|
19
20
|
loofah (~> 2.19)
|
20
21
|
namae (~> 1.0)
|
21
22
|
postrank-uri (~> 1.1)
|
@@ -111,6 +112,7 @@ GEM
|
|
111
112
|
jsonlint (0.3.0)
|
112
113
|
oj (~> 3)
|
113
114
|
optimist (~> 3)
|
115
|
+
jwt (2.7.1)
|
114
116
|
latex-decode (0.4.0)
|
115
117
|
link_header (0.0.8)
|
116
118
|
llhttp-ffi (0.4.0)
|
data/bin/commonmeta
CHANGED
@@ -2,7 +2,7 @@
|
|
2
2
|
|
3
3
|
require File.expand_path("../../lib/commonmeta", __FILE__)
|
4
4
|
|
5
|
-
if (ARGV & %w(--version -v help --help encode decode encode_id decode_id encode_by_blog encode_by_uuid json_feed_not_indexed json_feed_unregistered json_feed_by_blog)).empty?
|
5
|
+
if (ARGV & %w(--version -v help --help encode decode encode_id decode_id encode_by_blog encode_by_uuid json_feed_not_indexed json_feed_unregistered json_feed_by_blog ghost_token)).empty?
|
6
6
|
Commonmeta::CLI.start(ARGV.dup.unshift("convert"))
|
7
7
|
else
|
8
8
|
Commonmeta::CLI.start
|
data/commonmeta.gemspec
CHANGED
@@ -32,6 +32,7 @@ Gem::Specification.new do |s|
|
|
32
32
|
s.add_dependency 'json-ld-preloaded', '~> 3.2', '>= 3.2.2'
|
33
33
|
s.add_dependency 'jsonlint', '~> 0.3.0'
|
34
34
|
s.add_dependency 'json_schemer', '~> 1.0.1'
|
35
|
+
s.add_dependency 'jwt', '~> 2.7', '>= 2.7.1'
|
35
36
|
s.add_dependency 'loofah', '~> 2.19'
|
36
37
|
s.add_dependency 'namae', '~> 1.0'
|
37
38
|
s.add_dependency 'postrank-uri', '~> 1.1'
|
data/lib/commonmeta/cli.rb
CHANGED
@@ -59,7 +59,7 @@ module Commonmeta
|
|
59
59
|
desc "", "encode"
|
60
60
|
|
61
61
|
def encode(prefix)
|
62
|
-
return nil unless prefix.present?
|
62
|
+
return nil unless validate_prefix(prefix).present?
|
63
63
|
puts encode_doi(prefix)
|
64
64
|
end
|
65
65
|
|
@@ -115,6 +115,12 @@ module Commonmeta
|
|
115
115
|
puts get_json_feed_by_blog(id)
|
116
116
|
end
|
117
117
|
|
118
|
+
desc "", "ghost_token"
|
119
|
+
|
120
|
+
def ghost_token(admin_api_key)
|
121
|
+
puts generate_ghost_token(admin_api_key)
|
122
|
+
end
|
123
|
+
|
118
124
|
default_task :convert
|
119
125
|
end
|
120
126
|
end
|
data/lib/commonmeta/utils.rb
CHANGED
@@ -1385,7 +1385,7 @@ module Commonmeta
|
|
1385
1385
|
|
1386
1386
|
def encode_doi(prefix, options = {})
|
1387
1387
|
return nil unless prefix.present?
|
1388
|
-
|
1388
|
+
|
1389
1389
|
# DOI suffix is a generated from a random number, encoded in base32
|
1390
1390
|
# suffix has 8 digits plus two checksum digits. With base32 there are
|
1391
1391
|
# 32 possible digits, so 8 digits gives 32^8 possible combinations
|
@@ -1452,5 +1452,25 @@ module Commonmeta
|
|
1452
1452
|
def json_feed_item_by_uuid_url(uuid)
|
1453
1453
|
"https://rogue-scholar.org/api/posts/#{uuid}"
|
1454
1454
|
end
|
1455
|
+
|
1456
|
+
def generate_ghost_token(admin_api_key)
|
1457
|
+
# from https://ghost.org/docs/admin-api/
|
1458
|
+
|
1459
|
+
# Split the key into ID and SECRET
|
1460
|
+
id, secret = admin_api_key.split(":")
|
1461
|
+
|
1462
|
+
# Prepare header and payload
|
1463
|
+
iat = Time.now.to_i
|
1464
|
+
|
1465
|
+
header = { alg: "HS256", typ: "JWT", kid: id }
|
1466
|
+
payload = {
|
1467
|
+
iat: iat,
|
1468
|
+
exp: iat + 5 * 60,
|
1469
|
+
aud: "/admin/",
|
1470
|
+
}
|
1471
|
+
|
1472
|
+
# Create the token (including decoding secret)
|
1473
|
+
JWT.encode payload, [secret].pack("H*"), "HS256", header
|
1474
|
+
end
|
1455
1475
|
end
|
1456
1476
|
end
|
data/lib/commonmeta/version.rb
CHANGED
data/lib/commonmeta.rb
CHANGED
data/spec/cli_spec.rb
CHANGED
@@ -312,13 +312,13 @@ describe Commonmeta::CLI do
|
|
312
312
|
end
|
313
313
|
|
314
314
|
describe "encode", vcr: true do
|
315
|
-
it "
|
315
|
+
it "valid doi prefix" do
|
316
316
|
input = "10.53731"
|
317
317
|
expect { subject.encode input }.to output(/https:\/\/doi.org\/10.53731/).to_stdout
|
318
318
|
end
|
319
319
|
|
320
|
-
it "
|
321
|
-
input = ""
|
320
|
+
it "invalid doi prefix" do
|
321
|
+
input = "11.1234"
|
322
322
|
expect { subject.encode input }.to output("").to_stdout
|
323
323
|
end
|
324
324
|
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: commonmeta-ruby
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 3.3.
|
4
|
+
version: 3.3.3
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Martin Fenner
|
@@ -248,6 +248,26 @@ dependencies:
|
|
248
248
|
- - "~>"
|
249
249
|
- !ruby/object:Gem::Version
|
250
250
|
version: 1.0.1
|
251
|
+
- !ruby/object:Gem::Dependency
|
252
|
+
name: jwt
|
253
|
+
requirement: !ruby/object:Gem::Requirement
|
254
|
+
requirements:
|
255
|
+
- - "~>"
|
256
|
+
- !ruby/object:Gem::Version
|
257
|
+
version: '2.7'
|
258
|
+
- - ">="
|
259
|
+
- !ruby/object:Gem::Version
|
260
|
+
version: 2.7.1
|
261
|
+
type: :runtime
|
262
|
+
prerelease: false
|
263
|
+
version_requirements: !ruby/object:Gem::Requirement
|
264
|
+
requirements:
|
265
|
+
- - "~>"
|
266
|
+
- !ruby/object:Gem::Version
|
267
|
+
version: '2.7'
|
268
|
+
- - ">="
|
269
|
+
- !ruby/object:Gem::Version
|
270
|
+
version: 2.7.1
|
251
271
|
- !ruby/object:Gem::Dependency
|
252
272
|
name: loofah
|
253
273
|
requirement: !ruby/object:Gem::Requirement
|