video_info 3.0.1 → 3.1.0

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: 67a6553b4f475bfa408c26ce85d767137fc96929db2408b3d63d4ef001ccf3b7
4
- data.tar.gz: f13ce187227e4e9fb2b85005ff9ee2cb533d6daca85e435051a502c5ebfd8587
3
+ metadata.gz: d5bcfd93f9cf4782cb70fdaabbbfeb95b6e054e2403c772fce72834d1f302d81
4
+ data.tar.gz: 99614494315f07c9049b67a30ceb7410882b860030faa3290e0eab9ea1711938
5
5
  SHA512:
6
- metadata.gz: fdfc18c5585413157163efc32673fe12e25a2a6562be97135cb3c9bd5d0813ac51ed04b1b1607da2ba8c255a4a1bae622466717d0cae5b1bdc10cf16f8c72204
7
- data.tar.gz: e01f5f8358321e0c2e3e777f736341449c2929cabf351f0e5d5a918113635b130c34ec6e1e023689065207094dc147b90c14fb0171fa1e9124eb9bab8bd539b7
6
+ metadata.gz: dd789c89161544b5c10cca61e87f9ca1cb4ce42741bda74f22ccc0ffd47d3715c6954ce6b8581c23e3aa13f92f3d42ed3eea9053aca807a8415a74b41f2d0b43
7
+ data.tar.gz: a52184b867d403f45f703092a82b2ac9f1b059773cc9efbb596ebf3ede90707c10ceed9e1d58385b28ad8d46cf07a7ea47f90972d0d0bfa454e6053a991a09ba
data/README.md CHANGED
@@ -124,6 +124,17 @@ playlist = VideoInfo.new("http://www.youtube.com/playlist?p=PL9hW1uS6HUftLdHI6RI
124
124
  # playlist.videos => [VideoInfo.new('http://www.youtube.com/watch?v=_Bt3-WsHfB0'), VideoInfo.new('http://www.youtube.com/watch?v=9g2U12SsRns'), VideoInfo.new('http://www.youtube.com/watch?v=8b0aEoxqqC0'), VideoInfo.new('http://www.youtube.com/watch?v=6c3mHikRz0I'), VideoInfo.new('http://www.youtube.com/watch?v=OQVHWsTHcoc')]
125
125
  ```
126
126
 
127
+ You can also use the `valid_url?` helper to check if a given url is valid in some of the _enabled_ providers:
128
+
129
+ ```ruby
130
+ > VideoInfo.valid_url?('http://www.youtube.com/watch?v=AT_5xOGh6Ko')
131
+ => true
132
+ > VideoInfo.valid_url?('http://vimeo.com/898029')
133
+ => true
134
+ > VideoInfo.valid_url?('http://www.example.com/video/12345')
135
+ => false
136
+ ```
137
+
127
138
  Options
128
139
  -------
129
140
 
@@ -1,6 +1,8 @@
1
1
  class VideoInfo
2
2
  module Providers
3
3
  module VimeoAPI
4
+ THUMBNAIL_LINK_REGEX = /.*\/(\d+\-[^_]+)/
5
+
4
6
  def api_key
5
7
  VideoInfo.provider_api_keys[:vimeo]
6
8
  end
@@ -23,7 +25,7 @@ class VideoInfo
23
25
 
24
26
  def author_thumbnail_id
25
27
  author_uri = _video['user']['pictures']['uri']
26
- @author_thumbnail_id ||= _parse_picture_id(author_uri)
28
+ @author_thumbnail_id ||= parse_picture_id_from_user(author_uri)
27
29
  end
28
30
 
29
31
  def author_url
@@ -36,7 +38,7 @@ class VideoInfo
36
38
  end
37
39
 
38
40
  def thumbnail_id
39
- @thumbnail_id ||= _parse_picture_id(_video['pictures']['uri'])
41
+ @thumbnail_id ||= parse_picture_id(_video.dig("pictures", "sizes").first["link"])
40
42
  end
41
43
 
42
44
  def thumbnail_small
@@ -111,9 +113,13 @@ class VideoInfo
111
113
  "https://#{_api_base}#{_api_path}"
112
114
  end
113
115
 
114
- def _parse_picture_id(uri)
116
+ def parse_picture_id_from_user (uri)
115
117
  %r{\/pictures\/(\d+)}.match(uri)[1]
116
118
  end
119
+
120
+ def parse_picture_id(uri)
121
+ uri.match(THUMBNAIL_LINK_REGEX)[1]
122
+ end
117
123
  end
118
124
  end
119
125
  end
@@ -1,3 +1,3 @@
1
1
  class VideoInfo
2
- VERSION = '3.0.1'.freeze
2
+ VERSION = '3.1.0'.freeze
3
3
  end
data/lib/video_info.rb CHANGED
@@ -81,6 +81,16 @@ class VideoInfo
81
81
  disable_providers.map(&:downcase).include?(provider.downcase)
82
82
  end
83
83
 
84
+ def self.enabled_providers
85
+ PROVIDERS
86
+ .reject { |p| disabled_provider?(p) }
87
+ .map { |p| Providers.const_get(p) }
88
+ end
89
+
90
+ def self.valid_url?(url)
91
+ enabled_providers.any? { |p| p.usable?(url) }
92
+ end
93
+
84
94
  private
85
95
 
86
96
  def _select_provider(url, options)
data/video_info.gemspec CHANGED
@@ -23,8 +23,8 @@ Gem::Specification.new do |s|
23
23
  s.add_dependency 'oga', '~> 3.0'
24
24
  s.add_dependency 'net_http_timeout_errors', '~> 0.3.0'
25
25
 
26
- s.add_development_dependency 'bundler', '>= 1.3.5'
27
- s.add_development_dependency 'rake', '>= 12.3.3'
26
+ s.add_development_dependency 'bundler', '~> 2.3'
27
+ s.add_development_dependency 'rake', '~> 13.0'
28
28
  s.add_development_dependency 'rspec', '~> 3.4'
29
29
  s.add_development_dependency 'rspec-its', '~> 1.2'
30
30
  s.add_development_dependency 'rubocop', '~> 0.37'
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: video_info
3
3
  version: !ruby/object:Gem::Version
4
- version: 3.0.1
4
+ version: 3.1.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Thibaud Guillaume-Gentil
8
- autorequire:
8
+ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2021-02-17 00:00:00.000000000 Z
11
+ date: 2023-01-29 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: iso8601
@@ -56,30 +56,30 @@ dependencies:
56
56
  name: bundler
57
57
  requirement: !ruby/object:Gem::Requirement
58
58
  requirements:
59
- - - ">="
59
+ - - "~>"
60
60
  - !ruby/object:Gem::Version
61
- version: 1.3.5
61
+ version: '2.3'
62
62
  type: :development
63
63
  prerelease: false
64
64
  version_requirements: !ruby/object:Gem::Requirement
65
65
  requirements:
66
- - - ">="
66
+ - - "~>"
67
67
  - !ruby/object:Gem::Version
68
- version: 1.3.5
68
+ version: '2.3'
69
69
  - !ruby/object:Gem::Dependency
70
70
  name: rake
71
71
  requirement: !ruby/object:Gem::Requirement
72
72
  requirements:
73
- - - ">="
73
+ - - "~>"
74
74
  - !ruby/object:Gem::Version
75
- version: 12.3.3
75
+ version: '13.0'
76
76
  type: :development
77
77
  prerelease: false
78
78
  version_requirements: !ruby/object:Gem::Requirement
79
79
  requirements:
80
- - - ">="
80
+ - - "~>"
81
81
  - !ruby/object:Gem::Version
82
- version: 12.3.3
82
+ version: '13.0'
83
83
  - !ruby/object:Gem::Dependency
84
84
  name: rspec
85
85
  requirement: !ruby/object:Gem::Requirement
@@ -186,7 +186,7 @@ homepage: https://rubygems.org/gems/video_info
186
186
  licenses:
187
187
  - MIT
188
188
  metadata: {}
189
- post_install_message:
189
+ post_install_message:
190
190
  rdoc_options: []
191
191
  require_paths:
192
192
  - lib
@@ -201,8 +201,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
201
201
  - !ruby/object:Gem::Version
202
202
  version: '0'
203
203
  requirements: []
204
- rubygems_version: 3.1.4
205
- signing_key:
204
+ rubygems_version: 3.1.6
205
+ signing_key:
206
206
  specification_version: 4
207
207
  summary: Dailymotion, Vimeo and YouTube info parser.
208
208
  test_files: []