commonmeta-ruby 3.3.1 → 3.3.3
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 +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
|