trecs 0.1.21 → 0.2.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 +4 -4
- data/Gemfile.lock +1 -1
- data/bin/trecs +6 -1
- data/bin/trecs_record +3 -3
- data/lib/trecs/readers/json_reader.rb +1 -1
- data/lib/trecs/sources/tgz_source.rb +47 -83
- data/lib/trecs/version.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 9b6cb65a9817834ddc64593c4ba0904acb887f32
|
4
|
+
data.tar.gz: 07272efaeb6bde645cb54150deff7e9fff423143
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 149f1455fc76a1db2447414a975093dee98f2bd5849255b5b82530be9b8f50d015d3d47defd3d201b7b7e1d3b68cd5344e6b8bdf37dbac42bd2501085f5c31f8
|
7
|
+
data.tar.gz: 69059d77a1a0f0c1e09e79e6bc98e4458593f00822777ec9cf6f49f06a3510f8b5eafbc1bb650f631e86d54e90570b625f20f5a6fb035d4d8c18451057221983
|
data/Gemfile.lock
CHANGED
data/bin/trecs
CHANGED
@@ -80,7 +80,11 @@ player_options = {
|
|
80
80
|
}
|
81
81
|
|
82
82
|
|
83
|
-
|
83
|
+
audio_file = Array(source.audio_files).first
|
84
|
+
if audio_file
|
85
|
+
`notify-send #{audio_file}`
|
86
|
+
start_sound_player(audio_file)
|
87
|
+
end
|
84
88
|
player = TRecs::Player.new(player_options)
|
85
89
|
|
86
90
|
if opts[:duration]
|
@@ -99,3 +103,4 @@ end
|
|
99
103
|
player.play
|
100
104
|
|
101
105
|
finish(opts)
|
106
|
+
Pathname(source.tmpdir).rmtree
|
data/bin/trecs_record
CHANGED
@@ -19,7 +19,7 @@ opts = Trollop::options do
|
|
19
19
|
opt :terminal, "Launch terminal", default: true
|
20
20
|
opt :color, "Record colors", default: true
|
21
21
|
|
22
|
-
opt :audio, "Record audio"
|
22
|
+
opt :audio, "Record audio"
|
23
23
|
end
|
24
24
|
opts[:trecs_backend] = ARGV[0]
|
25
25
|
|
@@ -66,12 +66,12 @@ puts "Recording ..."
|
|
66
66
|
|
67
67
|
if strategy_class.to_s == "TRecs::TtyrecStrategy" || strategy_class.to_s == "TRecs::TmuxSessionStrategy"
|
68
68
|
opts[:height], opts[:width] = `stty size`.split(" ").map(&:to_i)
|
69
|
-
opts[:audio] && start_sound_recording(
|
69
|
+
opts[:audio] && start_sound_recording("/tmp/recording.ogg")
|
70
70
|
|
71
71
|
system "ttyrec #{opts[:input_file]}" if opts[:terminal]
|
72
72
|
end
|
73
73
|
|
74
|
-
opts[:audio_files] = [
|
74
|
+
opts[:audio_files] = ["/tmp/recording.ogg"] if opts[:audio]
|
75
75
|
|
76
76
|
recorder_options = {
|
77
77
|
writer: writer_class.new(opts),
|
@@ -19,7 +19,7 @@ module TRecs
|
|
19
19
|
def get_frames
|
20
20
|
frames = {}
|
21
21
|
source.read do
|
22
|
-
json_string = source.
|
22
|
+
json_string = source.read_entry("frames.json") || "{}"
|
23
23
|
parsed_json = JSON.parse(json_string)
|
24
24
|
parsed_json.each do |time, content|
|
25
25
|
frames[Integer(time)] = content
|
@@ -7,88 +7,11 @@ require "tmpdir"
|
|
7
7
|
require "pathname"
|
8
8
|
require "yaml"
|
9
9
|
|
10
|
-
#module TRecs
|
11
|
-
# class TgzSource
|
12
|
-
# include Archive::Tar
|
13
|
-
#
|
14
|
-
# def initialize(options={})
|
15
|
-
# @trecs_backend = options.fetch(:trecs_backend)
|
16
|
-
# end
|
17
|
-
#
|
18
|
-
# def create_recording
|
19
|
-
# in_tmp_dir do
|
20
|
-
# @tgz = Zlib::GzipWriter.new(trecs_backend)
|
21
|
-
#
|
22
|
-
# yield self if block_given?
|
23
|
-
#
|
24
|
-
# create_entry('manifest.yaml') do |f|
|
25
|
-
# f.write manifest.to_yaml
|
26
|
-
# end
|
27
|
-
#
|
28
|
-
# Minitar.pack(@files_to_add.flatten, @tgz)
|
29
|
-
# end
|
30
|
-
# end
|
31
|
-
#
|
32
|
-
# # TODO: Este es el punto de intersección entre read y create_recording
|
33
|
-
# def manifest
|
34
|
-
# @manifest ||= {}
|
35
|
-
# end
|
36
|
-
#
|
37
|
-
# def []=(key, value)
|
38
|
-
# manifest[key] = value
|
39
|
-
# end
|
40
|
-
#
|
41
|
-
# def [](key)
|
42
|
-
# manifest[key]
|
43
|
-
# end
|
44
|
-
#
|
45
|
-
# def read_file(file_name)
|
46
|
-
# File.read(file_name)
|
47
|
-
# end
|
48
|
-
#
|
49
|
-
# def create_entry(file_name)
|
50
|
-
# File.open(file_name, File::CREAT|File::TRUNC|File::RDWR, 0644) do |f|
|
51
|
-
# yield f
|
52
|
-
# end
|
53
|
-
# add_file(file_name)
|
54
|
-
# end
|
55
|
-
#
|
56
|
-
# def add_file(file_name)
|
57
|
-
# @files_to_add ||= []
|
58
|
-
# @files_to_add << file_name
|
59
|
-
# end
|
60
|
-
#
|
61
|
-
# def add_audio_file(file_name)
|
62
|
-
# Dir.mkdir("audio") unless File.exist? "audio"
|
63
|
-
#
|
64
|
-
# orig_file = file_name
|
65
|
-
# file_name = "./audio/" + Pathname(file_name).basename.to_s
|
66
|
-
# FileUtils.symlink(orig_file, file_name)
|
67
|
-
# add_file(file_name)
|
68
|
-
# end
|
69
|
-
#
|
70
|
-
# private
|
71
|
-
#
|
72
|
-
# attr_reader :trecs_backend
|
73
|
-
#
|
74
|
-
# #Investigar como hacer para descomprimir en memoria
|
75
|
-
# def in_tmp_dir
|
76
|
-
# Dir.mktmpdir("trecs_record") do |dir|
|
77
|
-
# Dir.chdir(dir) do
|
78
|
-
# yield
|
79
|
-
# end
|
80
|
-
# end
|
81
|
-
# end
|
82
|
-
# end
|
83
|
-
#end
|
84
|
-
#
|
85
|
-
|
86
10
|
module TRecs
|
87
11
|
class TgzSource
|
88
12
|
include Archive::Tar
|
89
13
|
|
90
14
|
attr_reader :trecs_backend
|
91
|
-
attr_reader :audio_files
|
92
15
|
|
93
16
|
def initialize(options={})
|
94
17
|
@trecs_backend = options.fetch(:trecs_backend)
|
@@ -121,7 +44,7 @@ module TRecs
|
|
121
44
|
reader = nil
|
122
45
|
options[:source] = self
|
123
46
|
read do |source|
|
124
|
-
@manifest = YAML.load(source.
|
47
|
+
@manifest = YAML.load(source.read_entry("manifest.yaml"))
|
125
48
|
|
126
49
|
format = manifest["format"]
|
127
50
|
reader_file = "readers/#{format}_reader"
|
@@ -139,14 +62,45 @@ module TRecs
|
|
139
62
|
|
140
63
|
# Investigar como hacer para descomprimir en memoria
|
141
64
|
def in_tmp_dir
|
142
|
-
|
143
|
-
|
144
|
-
|
145
|
-
|
65
|
+
unless tmpdir_exists?
|
66
|
+
p tmpdir
|
67
|
+
Pathname(tmpdir).mkdir
|
68
|
+
end
|
69
|
+
Dir.chdir(tmpdir) do
|
70
|
+
yield
|
146
71
|
end
|
147
72
|
end
|
148
73
|
|
149
|
-
def
|
74
|
+
def tmpdir_exists?
|
75
|
+
tmpdir && Pathname(tmpdir).exist?
|
76
|
+
end
|
77
|
+
|
78
|
+
def finalize
|
79
|
+
Pathname(tmpdir).delete if tmpdir_exists?
|
80
|
+
end
|
81
|
+
|
82
|
+
def tmpdir
|
83
|
+
@tmpdir ||= generate_tmpdir_name
|
84
|
+
end
|
85
|
+
|
86
|
+
def generate_tmpdir_name
|
87
|
+
"#{Dir.tmpdir}/#{timestamp}-#{file_name}"
|
88
|
+
end
|
89
|
+
|
90
|
+
def timestamp
|
91
|
+
Time.now.strftime("%Y%M%d%H%m%s")
|
92
|
+
end
|
93
|
+
|
94
|
+
def file_name
|
95
|
+
filename = Pathname(trecs_backend)
|
96
|
+
filename.basename.to_s.delete(filename.extname)
|
97
|
+
name = filename.basename.to_s
|
98
|
+
ext = filename.extname
|
99
|
+
name[ext] = ""
|
100
|
+
name
|
101
|
+
end
|
102
|
+
|
103
|
+
def read_entry(file_name)
|
150
104
|
File.read(file_name)
|
151
105
|
end
|
152
106
|
|
@@ -175,6 +129,16 @@ module TRecs
|
|
175
129
|
manifest[key.to_s] = value
|
176
130
|
end
|
177
131
|
|
132
|
+
def audio_files
|
133
|
+
return @audio_files if @audio_files
|
134
|
+
|
135
|
+
in_tmp_dir do
|
136
|
+
(Dir.open(tmpdir + "/audio").entries - %w[. ..]).map { |file|
|
137
|
+
Pathname("./audio/" + file).expand_path
|
138
|
+
}
|
139
|
+
|
140
|
+
end
|
141
|
+
end
|
178
142
|
private
|
179
143
|
|
180
144
|
# TODO: Este es el punto de intersección entre read y create_recording
|
data/lib/trecs/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: trecs
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.2.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Federico Iachetti
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2014-
|
11
|
+
date: 2014-09-01 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: trollop
|