oembed_proxy 0.2.0 → 0.2.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
  SHA256:
3
- metadata.gz: b687b1aea468ca341b4f37089e7da5aad1b574f75310367d34c7370fd27489b4
4
- data.tar.gz: 2fe9fa0767c3d78a01103e7d70da42f464191b0e14eeb0a0f297c40149c96d5f
3
+ metadata.gz: 63a465716cc2126538c5af5070e4cbc3b2bbae9ae0d5fbb5356e6755d8b900b8
4
+ data.tar.gz: 9400774dd8bbf9b86ebdb6d2a614252654b797d3fa13598da4a605876fa87ec5
5
5
  SHA512:
6
- metadata.gz: edb22346ed8c006aa9a16d5d299443b3bdc52e00a1984184bfd3c73bc76f0b1beae9d029ad8b103da93ed2aeac204fb8472ed909fc4dcb04301c0a3a72ae1612
7
- data.tar.gz: 61bde6dbebcb7e63db71ad35c270bcbbb6319a7b97b9044e3b1cdeb3fd26802fb9757fc6098b571915f820f1d25875a7899db0e33a8e36c899d752b8cd13bb52
6
+ metadata.gz: 100fe909ed6583855dd26cceef3930569332793fdd00f9afd789e3cbd0a8ae451949724bc844d23e70848f8c9ff526631be1d4ef72edb52b5ce1551a2380ca3b
7
+ data.tar.gz: c7cb4ac5db8ca61535b685442340b03c61ac5eb80752e0979db68265cd8eb1ac5175709e6fa1fd2f5c6f66156fc43707c74fd43a8b42437d719da697fbad287d
data/.gitignore CHANGED
@@ -11,3 +11,6 @@
11
11
 
12
12
  # rspec failure tracking
13
13
  .rspec_status
14
+
15
+ # gem file
16
+ *.gem
@@ -1,9 +1,9 @@
1
1
  AllCops:
2
- TargetRubyVersion: 2.3
2
+ TargetRubyVersion: 2.6
3
3
  Exclude:
4
4
  - 'bin/*'
5
5
 
6
- Metrics/LineLength:
6
+ Layout/LineLength:
7
7
  Enabled: false
8
8
 
9
9
  Metrics/BlockLength:
@@ -1,5 +1,37 @@
1
1
  # oEmbed Proxy Changelog
2
2
 
3
+ ## [`0.2.5`] (2020-07-30)
4
+
5
+ [`0.2.5`]: https://github.com/APMG/oembed_proxy/compare/v0.2.4...v0.2.5
6
+
7
+ This release contains no code changes.
8
+ The gem published for 0.2.4 contained files missing read-permissions
9
+ for "group" and "other", which could prevent loading of those files
10
+ in environments where gems are installed by a user who is not the
11
+ effective user at gem load time.
12
+
13
+ * Fix file permissions on `lib/oembed_proxy/*.rb` for published gem.
14
+
15
+ ## [`0.2.4`] (2020-07-30)
16
+
17
+ [`0.2.4`]: https://github.com/APMG/oembed_proxy/compare/v0.2.3...v0.2.4
18
+
19
+ * Move poll.fm from Embed.ly to First Party.
20
+
21
+ ## [`0.2.3`] (2020-02-03)
22
+
23
+ [`0.2.3`]: https://github.com/APMG/oembed_proxy/compare/v0.2.2...v0.2.3
24
+
25
+ * Move Facebook from Embed.ly to First Party.
26
+
27
+ ## [`0.2.2`] (2020-01-31)
28
+
29
+ [`0.2.2`]: https://github.com/APMG/oembed_proxy/compare/v0.2.0...v0.2.2
30
+
31
+ *Note: The 0.2.1 release had critical bugs and should not be used.*
32
+
33
+ * Add a new Fauxembed for NPR Sidechain embeds.
34
+
3
35
  ## [`0.2.0`] (2020-01-16)
4
36
 
5
37
  [`0.2.0`]: https://github.com/APMG/oembed_proxy/compare/v0.1.3...v0.2.0
data/README.md CHANGED
@@ -95,6 +95,13 @@ Once providers have been registered, calling `#handles_url?` and `#get_data` on
95
95
 
96
96
  You are able to easily implement additional providers by creating an object which implements the `#handles_url?(url)` and `#get_data(url, other_params)` methods. Take a look at the existing provider classes for examples.
97
97
 
98
+ ### Note on the NPR
99
+
100
+ The NPR embed is what we call a fauxembed. NPR does not implement the oembed
101
+ specification so we fake it by wrapping the embed url in a side-chain
102
+ element. Then you must load the NPR Sidechain library on your site. See
103
+ [Sidechain](https://github.com/nprapps/sidechain).
104
+
98
105
  ## Development
99
106
 
100
107
  After checking out the repo, run `bin/setup` to install dependencies. Then, run `bin/rspec` to run the tests. You can also run `bin/console` for an interactive prompt that will allow you to experiment. Before sending a pull request, you will want to run `bin/rubocop` to lint your work.
@@ -10,6 +10,7 @@ require 'oembed_proxy/google_document'
10
10
  require 'oembed_proxy/google_mapsengine'
11
11
  require 'oembed_proxy/google_spreadsheet'
12
12
  require 'oembed_proxy/tableau'
13
+ require 'oembed_proxy/npr'
13
14
 
14
15
  # Gem namespace
15
16
  module OembedProxy
@@ -0,0 +1,32 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'oembed_proxy/inactive_support'
4
+
5
+ module OembedProxy
6
+ # NPR Fauxembed
7
+ class Npr
8
+ using InactiveSupport
9
+ NPR_REGEX = %r{\Ahttps:\/\/(?:[a-z0-9-]+\.)+npr\.org\/.+}.freeze
10
+
11
+ def handles_url?(url)
12
+ !NPR_REGEX.match(url).nil?
13
+ end
14
+
15
+ def get_data(url, _other_params = {}) # rubocop:disable Metrics/MethodLength
16
+ return nil unless handles_url? url
17
+
18
+ escaped_url = url.gsub('"', '"')
19
+ {
20
+ 'type' => 'rich',
21
+ 'version' => '1.0',
22
+ 'provider_name' => 'NPR',
23
+ 'provider_url' => 'https://www.npr.org/',
24
+ 'html' => <<~HTML,
25
+ <div class='sidechain-wrapper'>
26
+ <side-chain src="#{escaped_url}"></side-chain>
27
+ </div>
28
+ HTML
29
+ }
30
+ end
31
+ end
32
+ end
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module OembedProxy
4
- VERSION = '0.2.0'
4
+ VERSION = '0.2.5'
5
5
  end
@@ -283,7 +283,6 @@
283
283
  #\Ahttps?://(.+\.)?polldaddy\.com/poll/.*#i
284
284
  #\Ahttps?://polldaddy\.com/poll/.*#i
285
285
  #\Ahttps?://(.+\.)?polldaddy\.com/.*#i
286
- #\Ahttp://poll\.fm/.*#i
287
286
  #\Ahttp://answers\.polldaddy\.com/poll/.*#i
288
287
  #\Ahttp://www\.5min\.com/Video/.*#i
289
288
  #\Ahttp://www\.howcast\.com/videos/.*#i
@@ -600,13 +599,6 @@
600
599
  #\Ahttp://boston\.com/video.*#i
601
600
  #\Ahttp://www\.boston\.com/.*video.*#i
602
601
  #\Ahttp://boston\.com/.*video.*#i
603
- #\Ahttp://www\.facebook\.com/photo\.php.*#i
604
- #\Ahttp://www\.facebook\.com/video/video\.php.*#i
605
- #\Ahttp://www\.facebook\.com/v/.*#i
606
- #\Ahttps://www\.facebook\.com/photo\.php.*#i
607
- #\Ahttps://www\.facebook\.com/video/video\.php.*#i
608
- #\Ahttps://www\.facebook\.com/v/.*#i
609
- #\Ahttps://www\.facebook\.com/video.php\?v=.*#i
610
602
  #\Ahttp://cnbc\.com/id/.*\?.*video.*#i
611
603
  #\Ahttp://www\.cnbc\.com/id/.*\?.*video.*#i
612
604
  #\Ahttp://cnbc\.com/id/.*/play/1/video/.*#i
@@ -58,6 +58,10 @@ polldaddy:
58
58
  endpoint: "https://polldaddy.com/oembed/"
59
59
  pattern_list: ["#\\Ahttps?://(?:[^.]+\\.)?polldaddy\\.com/.+#i"]
60
60
 
61
+ crowdsignal:
62
+ endpoint: "https://api.crowdsignal.com/oembed"
63
+ pattern_list: ["#\\Ahttps?://poll.fm/.+#i"]
64
+
61
65
  funnyordie:
62
66
  endpoint: "http://www.funnyordie.com/oembed"
63
67
  pattern_list: ["#\\Ahttps?://(?:www\\.)?funnyordie\\.com/videos/.+#i"]
@@ -89,3 +93,14 @@ audio-api:
89
93
  documentcloud:
90
94
  endpoint: "https://www.documentcloud.org/api/oembed.json"
91
95
  pattern_list: ["#\\Ahttps?://www\\.documentcloud\\.org/documents?/.+#i"]
96
+
97
+
98
+ # Facebook oEmbed documentation: https://developers.facebook.com/docs/plugins/oembed-endpoints/
99
+
100
+ facebook-video:
101
+ endpoint: "https://www.facebook.com/plugins/video/oembed.json"
102
+ pattern_list: ["#https://www\\.facebook\\.com/.+/videos/.+/#i", "#https://www\\.facebook\\.com/.+/videos/.+/#i", "#https://www\\.facebook\\.com/video\\.php\\?id=.+#i", "#https://www\\.facebook\\.com/video\\.php\\?v=.+#i"]
103
+
104
+ facebook-post:
105
+ endpoint: "https://www.facebook.com/plugins/post/oembed.json"
106
+ pattern_list: ["#https://www\\.facebook\\.com/.+/posts/.+#i", "#https://www\\.facebook\\.com/.+/posts/.+#i", "#https://www\\.facebook\\.com/.+/activity/.+#i", "#https://www\\.facebook\\.com/photo\\.php\\?fbid=.+#i", "#https://www\\.facebook\\.com/photos/.+#i", "#https://www\\.facebook\\.com/permalink\\.php\\?story_fbid=.+#i", "#https://www\\.facebook\\.com/media/set\\?set=.+#i", "#https://www\\.facebook\\.com/questions/.+#i", "#https://www\\.facebook\\.com/notes/.+/.+/.+#i"]
@@ -7,8 +7,7 @@ require 'oembed_proxy/version'
7
7
  Gem::Specification.new do |spec|
8
8
  spec.name = 'oembed_proxy'
9
9
  spec.version = OembedProxy::VERSION
10
- spec.authors = ['William Johnston']
11
- spec.email = ['wjohnston@mpr.org']
10
+ spec.authors = ['APM Digital Products Group']
12
11
 
13
12
  spec.summary = 'Simple library to manage first party, embedly, and custom oembeds'
14
13
  # spec.description = %q{TODO: Write a longer description or delete this line.}
@@ -23,6 +22,6 @@ Gem::Specification.new do |spec|
23
22
  spec.require_paths = ['lib']
24
23
 
25
24
  spec.add_development_dependency 'bundler', '~> 2.0'
26
- spec.add_development_dependency 'rake', '~> 10.0'
25
+ spec.add_development_dependency 'rake', '~> 12.3', '>= 12.3.3'
27
26
  spec.add_development_dependency 'rspec', '~> 3.0'
28
27
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: oembed_proxy
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.0
4
+ version: 0.2.5
5
5
  platform: ruby
6
6
  authors:
7
- - William Johnston
8
- autorequire:
7
+ - APM Digital Products Group
8
+ autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2020-01-17 00:00:00.000000000 Z
11
+ date: 2020-07-31 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -30,14 +30,20 @@ dependencies:
30
30
  requirements:
31
31
  - - "~>"
32
32
  - !ruby/object:Gem::Version
33
- version: '10.0'
33
+ version: '12.3'
34
+ - - ">="
35
+ - !ruby/object:Gem::Version
36
+ version: 12.3.3
34
37
  type: :development
35
38
  prerelease: false
36
39
  version_requirements: !ruby/object:Gem::Requirement
37
40
  requirements:
38
41
  - - "~>"
39
42
  - !ruby/object:Gem::Version
40
- version: '10.0'
43
+ version: '12.3'
44
+ - - ">="
45
+ - !ruby/object:Gem::Version
46
+ version: 12.3.3
41
47
  - !ruby/object:Gem::Dependency
42
48
  name: rspec
43
49
  requirement: !ruby/object:Gem::Requirement
@@ -52,9 +58,8 @@ dependencies:
52
58
  - - "~>"
53
59
  - !ruby/object:Gem::Version
54
60
  version: '3.0'
55
- description:
61
+ description:
56
62
  email:
57
- - wjohnston@mpr.org
58
63
  executables: []
59
64
  extensions: []
60
65
  extra_rdoc_files: []
@@ -82,6 +87,7 @@ files:
82
87
  - lib/oembed_proxy/google_spreadsheet.rb
83
88
  - lib/oembed_proxy/handler.rb
84
89
  - lib/oembed_proxy/inactive_support.rb
90
+ - lib/oembed_proxy/npr.rb
85
91
  - lib/oembed_proxy/oembed_exception.rb
86
92
  - lib/oembed_proxy/tableau.rb
87
93
  - lib/oembed_proxy/utility.rb
@@ -93,7 +99,7 @@ homepage: https://github.com/APMG/oembed_proxy
93
99
  licenses:
94
100
  - MIT
95
101
  metadata: {}
96
- post_install_message:
102
+ post_install_message:
97
103
  rdoc_options: []
98
104
  require_paths:
99
105
  - lib
@@ -109,7 +115,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
109
115
  version: '0'
110
116
  requirements: []
111
117
  rubygems_version: 3.0.3
112
- signing_key:
118
+ signing_key:
113
119
  specification_version: 4
114
120
  summary: Simple library to manage first party, embedly, and custom oembeds
115
121
  test_files: []