airstream 0.3.2 → 0.3.4
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.
- data/bin/airstream +16 -9
- data/lib/airstream.rb +1 -0
- data/lib/airstream/io.rb +46 -0
- data/lib/airstream/version.rb +1 -1
- metadata +35 -2
data/bin/airstream
CHANGED
@@ -70,23 +70,24 @@ begin
|
|
70
70
|
exit 68
|
71
71
|
end
|
72
72
|
|
73
|
+
io = Airstream::Io.new
|
74
|
+
io.quiet = options[:quiet]
|
75
|
+
io.verbose = options[:verbose]
|
73
76
|
server = Airstream::Server.new(options[:reciever])
|
74
77
|
|
75
78
|
puts "=> Ctrl-C to exit airstream"
|
76
79
|
ARGV.each do |file|
|
77
80
|
|
78
81
|
server.allow_local_httpd = options[:use_local_httpd]
|
79
|
-
|
82
|
+
io.info "sending video file #{file}"
|
80
83
|
server.video = file
|
81
84
|
|
82
|
-
print "loading
|
83
|
-
|
84
|
-
print
|
85
|
-
sleep(0.
|
86
|
-
print "\b" unless options[:quiet]
|
87
|
-
break unless server.loading?
|
85
|
+
io.print "loading"
|
86
|
+
while server.loading?
|
87
|
+
io.print "."
|
88
|
+
sleep(0.7)
|
88
89
|
end
|
89
|
-
puts "done"
|
90
|
+
io.puts " done"
|
90
91
|
|
91
92
|
video_title = File.basename(file, '.mp4')
|
92
93
|
pbar_options = {
|
@@ -94,14 +95,20 @@ begin
|
|
94
95
|
total: server.video_duration,
|
95
96
|
format: '%t |%b%i| %p%%'
|
96
97
|
}
|
98
|
+
|
99
|
+
io.hide_input
|
97
100
|
pbar = ProgressBar.create(pbar_options)
|
98
101
|
while (elapsed_time=server.video_position) < server.video_duration
|
102
|
+
io.catch_input
|
103
|
+
break if io.quit? || io.skip?
|
99
104
|
pbar.progress = elapsed_time
|
100
105
|
formatted_time = Time.at(elapsed_time).gmtime.strftime('%R:%S')
|
101
106
|
pbar.title = "#{video_title} #{formatted_time}"
|
102
|
-
sleep
|
107
|
+
sleep 0.5
|
103
108
|
end
|
109
|
+
io.show_input
|
104
110
|
pbar.finish
|
111
|
+
break if io.quit?
|
105
112
|
end
|
106
113
|
|
107
114
|
rescue Airplay::Protocol::InvalidMediaError
|
data/lib/airstream.rb
CHANGED
data/lib/airstream/io.rb
ADDED
@@ -0,0 +1,46 @@
|
|
1
|
+
|
2
|
+
require 'io/wait'
|
3
|
+
|
4
|
+
module Airstream
|
5
|
+
class Io
|
6
|
+
attr_writer :quiet, :verbose
|
7
|
+
attr_reader :key
|
8
|
+
|
9
|
+
def print(msg)
|
10
|
+
STDOUT.print msg unless @quiet
|
11
|
+
end
|
12
|
+
|
13
|
+
def puts(msg)
|
14
|
+
STDOUT.puts msg unless @quiet
|
15
|
+
end
|
16
|
+
|
17
|
+
def info(msg)
|
18
|
+
STDOUT.puts msg if @verbose
|
19
|
+
end
|
20
|
+
|
21
|
+
def hide_input
|
22
|
+
`stty raw -echo`
|
23
|
+
end
|
24
|
+
|
25
|
+
def show_input
|
26
|
+
`stty -raw echo`
|
27
|
+
end
|
28
|
+
|
29
|
+
def catch_input
|
30
|
+
@key = nil
|
31
|
+
if STDIN.ready?
|
32
|
+
@key = STDIN.getc
|
33
|
+
end
|
34
|
+
rescue
|
35
|
+
show_input
|
36
|
+
end
|
37
|
+
|
38
|
+
def quit?
|
39
|
+
@key == "q"
|
40
|
+
end
|
41
|
+
|
42
|
+
def skip?
|
43
|
+
@key == "s"
|
44
|
+
end
|
45
|
+
end
|
46
|
+
end
|
data/lib/airstream/version.rb
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: airstream
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.3.
|
4
|
+
version: 0.3.4
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2012-11-
|
12
|
+
date: 2012-11-12 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: airplay
|
@@ -43,6 +43,38 @@ dependencies:
|
|
43
43
|
- - ! '>='
|
44
44
|
- !ruby/object:Gem::Version
|
45
45
|
version: '0'
|
46
|
+
- !ruby/object:Gem::Dependency
|
47
|
+
name: rack
|
48
|
+
requirement: !ruby/object:Gem::Requirement
|
49
|
+
none: false
|
50
|
+
requirements:
|
51
|
+
- - ! '>='
|
52
|
+
- !ruby/object:Gem::Version
|
53
|
+
version: '0'
|
54
|
+
type: :runtime
|
55
|
+
prerelease: false
|
56
|
+
version_requirements: !ruby/object:Gem::Requirement
|
57
|
+
none: false
|
58
|
+
requirements:
|
59
|
+
- - ! '>='
|
60
|
+
- !ruby/object:Gem::Version
|
61
|
+
version: '0'
|
62
|
+
- !ruby/object:Gem::Dependency
|
63
|
+
name: webrick
|
64
|
+
requirement: !ruby/object:Gem::Requirement
|
65
|
+
none: false
|
66
|
+
requirements:
|
67
|
+
- - ! '>='
|
68
|
+
- !ruby/object:Gem::Version
|
69
|
+
version: '0'
|
70
|
+
type: :runtime
|
71
|
+
prerelease: false
|
72
|
+
version_requirements: !ruby/object:Gem::Requirement
|
73
|
+
none: false
|
74
|
+
requirements:
|
75
|
+
- - ! '>='
|
76
|
+
- !ruby/object:Gem::Version
|
77
|
+
version: '0'
|
46
78
|
- !ruby/object:Gem::Dependency
|
47
79
|
name: rake
|
48
80
|
requirement: !ruby/object:Gem::Requirement
|
@@ -72,6 +104,7 @@ files:
|
|
72
104
|
- bin/airimg
|
73
105
|
- lib/airstream.rb
|
74
106
|
- lib/airstream/version.rb
|
107
|
+
- lib/airstream/io.rb
|
75
108
|
- lib/airstream/network.rb
|
76
109
|
- lib/airstream/node.rb
|
77
110
|
- lib/airstream/video.rb
|