commonmeta-ruby 3.3.2 → 3.3.3

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 1ece0c59f3993f3ca9e94df678c97093e785135f431592850dd5505d3f910f72
4
- data.tar.gz: 948128ccbdb265d677531b68f7dd939e8e7723b5bb0b5bf8f751e606d4d58232
3
+ metadata.gz: 2eb50e7e66b90175ca4b2176de9bd89e7898e06efdb6a4dbae46532233f2736c
4
+ data.tar.gz: 8e8161a7bd4064a04956d47d3945f4165cf147a559488ad943c5e776c3c666d2
5
5
  SHA512:
6
- metadata.gz: ca2bf7e8edca004aa35c3009cda657a544db8f420546e067d86a7c4bfe5e8819373e341efc0f4b7490a74867e8e4b38e96423f8257100cf720513d1d49e92655
7
- data.tar.gz: 5c68deb59478f2b1c108bf42eaf24bd70b3218fecf4e76da731a6d4717997c75a037af55a36c6d0c4d4c1f270c0fed5efc24bd9dab5e7e25bc7c8855fc1b4c11
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.2)
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'
@@ -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
@@ -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
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Commonmeta
4
- VERSION = '3.3.2'
4
+ VERSION = '3.3.3'
5
5
  end
data/lib/commonmeta.rb CHANGED
@@ -8,6 +8,7 @@ require 'postrank-uri'
8
8
  require 'bibtex'
9
9
  require 'loofah'
10
10
  require 'json/ld'
11
+ require 'jwt'
11
12
  require 'rdf/turtle'
12
13
  require 'rdf/rdfxml'
13
14
  require 'logger'
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.2
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