ehbrs_ruby_utils 0.4.0 → 0.6.1
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/lib/ehbrs_ruby_utils/version.rb +1 -1
- data/lib/ehbrs_ruby_utils/videos/container.rb +30 -2
- data/lib/ehbrs_ruby_utils/videos/convert_job.rb +1 -1
- data/lib/ehbrs_ruby_utils/videos/stream.rb +19 -3
- data/lib/ehbrs_ruby_utils/web_utils/videos/files_list.rb +1 -1
- metadata +21 -15
- data/lib/ehbrs_ruby_utils/videos/container/file.rb +0 -44
- data/lib/ehbrs_ruby_utils/videos/container/info.rb +0 -21
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 86d2b7290ba8a20d4c3f8a87ed7d3fecb6d4fd877d700524ce7c467a40f96cf7
|
4
|
+
data.tar.gz: f3817effe28180094b3d6fd1182d9bea026f7de3c98debdc1b13fd855eb8486a
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 3fac516de86eb3e88e7cc30263d5b97a94e8fd542d75fda8b0e3f49604ada03a1897f9bac167da3dff88e7668583e6dca223d65a8bfd2f92b6b6f5aa78ba9c6b
|
7
|
+
data.tar.gz: 07c97a47c7e2b7ece00d7a1f2ed0d4f929b189139ad27c505f7231f4d6891bbfc9976908ff5105b3766b303f19b06215260bc114371de7861c2dbfd63aa3c4e0
|
@@ -1,11 +1,39 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
3
|
require 'eac_ruby_utils/core_ext'
|
4
|
+
require 'ehbrs_ruby_utils/executables'
|
5
|
+
require 'ehbrs_ruby_utils/videos/stream'
|
6
|
+
require 'json'
|
4
7
|
|
5
8
|
module EhbrsRubyUtils
|
6
9
|
module Videos
|
7
|
-
|
8
|
-
|
10
|
+
class Container
|
11
|
+
enable_simple_cache
|
12
|
+
common_constructor :path do
|
13
|
+
self.path = path.to_pathname
|
14
|
+
end
|
15
|
+
|
16
|
+
::EhbrsRubyUtils::Videos::Stream.lists.codec_type.each_value do |stream_type|
|
17
|
+
define_method stream_type.to_s.pluralize do
|
18
|
+
streams.select { |stream| stream.codec_type == stream_type }
|
19
|
+
end
|
20
|
+
end
|
21
|
+
|
22
|
+
private
|
23
|
+
|
24
|
+
def probe_data_uncached
|
25
|
+
::JSON.parse(
|
26
|
+
::EhbrsRubyUtils::Executables.ffprobe.command(
|
27
|
+
'-hide_banner', '-print_format', 'json', '-show_format', '-show_streams', path
|
28
|
+
).execute!
|
29
|
+
).deep_symbolize_keys.freeze
|
30
|
+
end
|
31
|
+
|
32
|
+
def streams_uncached
|
33
|
+
probe_data.fetch(:streams).map do |stream_ffprobe_data|
|
34
|
+
::EhbrsRubyUtils::Videos::Stream.new(stream_ffprobe_data)
|
35
|
+
end
|
36
|
+
end
|
9
37
|
end
|
10
38
|
end
|
11
39
|
end
|
@@ -8,13 +8,19 @@ module EhbrsRubyUtils
|
|
8
8
|
enable_simple_cache
|
9
9
|
enable_listable
|
10
10
|
|
11
|
-
lists.add_symbol :codec_type, :audio, :video, :subtitle, :
|
11
|
+
lists.add_symbol :codec_type, :audio, :video, :subtitle, :data, :attachment
|
12
12
|
|
13
13
|
common_constructor :ffprobe_data do
|
14
14
|
self.ffprobe_data = ffprobe_data.symbolize_keys.freeze
|
15
15
|
self.class.lists.codec_type.value_validate!(codec_type)
|
16
16
|
end
|
17
17
|
|
18
|
+
lists.codec_type.each_value do |v|
|
19
|
+
define_method "#{v}?" do
|
20
|
+
codec_type == v
|
21
|
+
end
|
22
|
+
end
|
23
|
+
|
18
24
|
def to_s
|
19
25
|
"#{index}|#{codec_type}|#{codec_name}|#{language}"
|
20
26
|
end
|
@@ -23,23 +29,33 @@ module EhbrsRubyUtils
|
|
23
29
|
ffprobe_data
|
24
30
|
end
|
25
31
|
|
26
|
-
%i[index
|
32
|
+
%i[index].each do |method_name|
|
27
33
|
define_method method_name do
|
28
34
|
ffprobe_data.fetch(method_name)
|
29
35
|
end
|
30
36
|
end
|
31
37
|
|
38
|
+
%i[codec_name codec_long_name].each do |method_name|
|
39
|
+
define_method method_name do
|
40
|
+
ffprobe_data[method_name]
|
41
|
+
end
|
42
|
+
end
|
43
|
+
|
32
44
|
def codec_type
|
33
45
|
ffprobe_data.fetch(:codec_type).to_sym
|
34
46
|
end
|
35
47
|
|
36
48
|
def tags
|
37
|
-
ffprobe_data
|
49
|
+
ffprobe_data[:tags].if_present({}, &:symbolize_keys)
|
38
50
|
end
|
39
51
|
|
40
52
|
def language
|
41
53
|
tags[:language]
|
42
54
|
end
|
55
|
+
|
56
|
+
def title
|
57
|
+
tags[:title]
|
58
|
+
end
|
43
59
|
end
|
44
60
|
end
|
45
61
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: ehbrs_ruby_utils
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.6.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Eduardo H. Bogoni
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2021-07-25 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: eac_ruby_utils
|
@@ -16,34 +16,42 @@ dependencies:
|
|
16
16
|
requirements:
|
17
17
|
- - "~>"
|
18
18
|
- !ruby/object:Gem::Version
|
19
|
-
version: '0.
|
19
|
+
version: '0.70'
|
20
20
|
type: :runtime
|
21
21
|
prerelease: false
|
22
22
|
version_requirements: !ruby/object:Gem::Requirement
|
23
23
|
requirements:
|
24
24
|
- - "~>"
|
25
25
|
- !ruby/object:Gem::Version
|
26
|
-
version: '0.
|
26
|
+
version: '0.70'
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
|
-
name:
|
28
|
+
name: aranha-parsers
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
30
30
|
requirements:
|
31
31
|
- - "~>"
|
32
32
|
- !ruby/object:Gem::Version
|
33
|
-
version: '0.
|
34
|
-
- - ">="
|
35
|
-
- !ruby/object:Gem::Version
|
36
|
-
version: 0.1.1
|
33
|
+
version: '0.8'
|
37
34
|
type: :development
|
38
35
|
prerelease: false
|
39
36
|
version_requirements: !ruby/object:Gem::Requirement
|
40
37
|
requirements:
|
41
38
|
- - "~>"
|
42
39
|
- !ruby/object:Gem::Version
|
43
|
-
version: '0.
|
44
|
-
|
40
|
+
version: '0.8'
|
41
|
+
- !ruby/object:Gem::Dependency
|
42
|
+
name: eac_ruby_gem_support
|
43
|
+
requirement: !ruby/object:Gem::Requirement
|
44
|
+
requirements:
|
45
|
+
- - "~>"
|
46
|
+
- !ruby/object:Gem::Version
|
47
|
+
version: '0.3'
|
48
|
+
type: :development
|
49
|
+
prerelease: false
|
50
|
+
version_requirements: !ruby/object:Gem::Requirement
|
51
|
+
requirements:
|
52
|
+
- - "~>"
|
45
53
|
- !ruby/object:Gem::Version
|
46
|
-
version: 0.
|
54
|
+
version: '0.3'
|
47
55
|
description:
|
48
56
|
email:
|
49
57
|
executables: []
|
@@ -55,8 +63,6 @@ files:
|
|
55
63
|
- lib/ehbrs_ruby_utils/version.rb
|
56
64
|
- lib/ehbrs_ruby_utils/videos.rb
|
57
65
|
- lib/ehbrs_ruby_utils/videos/container.rb
|
58
|
-
- lib/ehbrs_ruby_utils/videos/container/file.rb
|
59
|
-
- lib/ehbrs_ruby_utils/videos/container/info.rb
|
60
66
|
- lib/ehbrs_ruby_utils/videos/convert_job.rb
|
61
67
|
- lib/ehbrs_ruby_utils/videos/quality.rb
|
62
68
|
- lib/ehbrs_ruby_utils/videos/resolution.rb
|
@@ -84,7 +90,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
84
90
|
- !ruby/object:Gem::Version
|
85
91
|
version: '0'
|
86
92
|
requirements: []
|
87
|
-
rubygems_version: 3.
|
93
|
+
rubygems_version: 3.1.6
|
88
94
|
signing_key:
|
89
95
|
specification_version: 4
|
90
96
|
summary: Utilities for EHB/RS's Ruby projects.
|
@@ -1,44 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
|
-
require 'json'
|
4
|
-
require 'eac_ruby_utils/core_ext'
|
5
|
-
require 'ehbrs_ruby_utils/executables'
|
6
|
-
require 'ehbrs_ruby_utils/videos/container/info'
|
7
|
-
require 'ehbrs_ruby_utils/videos/stream'
|
8
|
-
|
9
|
-
module EhbrsRubyUtils
|
10
|
-
module Videos
|
11
|
-
module Container
|
12
|
-
class File
|
13
|
-
enable_simple_cache
|
14
|
-
common_constructor :path do
|
15
|
-
self.path = path.to_pathname
|
16
|
-
end
|
17
|
-
|
18
|
-
::EhbrsRubyUtils::Videos::Stream.lists.codec_type.each_value do |stream_type|
|
19
|
-
define_method stream_type.to_s.pluralize do
|
20
|
-
streams.select { |stream| stream.codec_type == stream_type }
|
21
|
-
end
|
22
|
-
end
|
23
|
-
|
24
|
-
private
|
25
|
-
|
26
|
-
def info_uncached
|
27
|
-
::EhbrsRubyUtils::Videos::Container::Info.new(
|
28
|
-
::JSON.parse(
|
29
|
-
::EhbrsRubyUtils::Executables.ffprobe.command(
|
30
|
-
'-hide_banner', '-print_format', 'json', '-show_format', '-show_streams', path
|
31
|
-
).execute!
|
32
|
-
)
|
33
|
-
)
|
34
|
-
end
|
35
|
-
|
36
|
-
def streams_uncached
|
37
|
-
info.ffprobe_data.fetch(:streams).map do |stream_ffprobe_data|
|
38
|
-
::EhbrsRubyUtils::Videos::Stream.new(stream_ffprobe_data)
|
39
|
-
end
|
40
|
-
end
|
41
|
-
end
|
42
|
-
end
|
43
|
-
end
|
44
|
-
end
|
@@ -1,21 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
|
-
require 'eac_ruby_utils/core_ext'
|
4
|
-
require 'ehbrs_ruby_utils/videos/container/info'
|
5
|
-
|
6
|
-
module EhbrsRubyUtils
|
7
|
-
module Videos
|
8
|
-
module Container
|
9
|
-
class Info
|
10
|
-
enable_simple_cache
|
11
|
-
common_constructor :ffprobe_data do
|
12
|
-
self.ffprobe_data = ffprobe_data.with_indifferent_access.freeze
|
13
|
-
end
|
14
|
-
|
15
|
-
def to_h
|
16
|
-
ffprobe_data
|
17
|
-
end
|
18
|
-
end
|
19
|
-
end
|
20
|
-
end
|
21
|
-
end
|