sleeproom 0.2.0 → 0.3.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 +7 -7
- data/bin/sleeproom +2 -1
- data/lib/sleeproom/record/api/streaming_api.rb +5 -1
- data/lib/sleeproom/record/record.rb +14 -3
- data/lib/sleeproom/utils.rb +29 -7
- data/lib/sleeproom/version.rb +1 -1
- data/sleeproom.gemspec +6 -6
- metadata +26 -26
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 176b96c36ba23668dfa2b208022214cf61fa3a3d25d206466ebc8f01ceb1e4e2
|
4
|
+
data.tar.gz: 3bc135a5913ccc38dd81e4f49a8e3c33e8db9986eb282c5a61014725fca3bb0b
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 1a907be22130df26ce7dd9a66c4753e06b31570724d4aaf4e90a62b0c147f6d86d010ce3dae31a7db32ab07600d99dbf302f1efb82473ef94dc6affe84cb3b0d
|
7
|
+
data.tar.gz: 06d08117b5c8c9c392619ba57c85f658e4fdf1a75902d163ed53e51b77234ef949fa8dd17ebedcc021ee5edfdd334f1193792fc5219ed27cbdb3fdae362f8150
|
data/Gemfile.lock
CHANGED
@@ -1,13 +1,13 @@
|
|
1
1
|
PATH
|
2
2
|
remote: .
|
3
3
|
specs:
|
4
|
-
sleeproom (0.
|
5
|
-
async
|
6
|
-
async-http-faraday
|
7
|
-
async-websocket
|
8
|
-
colorize
|
9
|
-
configatron
|
10
|
-
terminal-table
|
4
|
+
sleeproom (0.3.0)
|
5
|
+
async (~> 1.26.0)
|
6
|
+
async-http-faraday (~> 0.9.0)
|
7
|
+
async-websocket (~> 0.15.0)
|
8
|
+
colorize (~> 0.8.0)
|
9
|
+
configatron (~> 4.5.0)
|
10
|
+
terminal-table (~> 1.8.0)
|
11
11
|
|
12
12
|
GEM
|
13
13
|
remote: https://rubygems.org/
|
data/bin/sleeproom
CHANGED
@@ -15,7 +15,11 @@ module SleepRoom
|
|
15
15
|
end
|
16
16
|
|
17
17
|
def streaming_url
|
18
|
-
@json["streaming_url_list"].
|
18
|
+
if @json["streaming_url_list"].nil?
|
19
|
+
raise Error.new("streaming url is null.")
|
20
|
+
else
|
21
|
+
@json["streaming_url_list"].sort_by{|hash| -hash["quality"]}.first["url"]
|
22
|
+
end
|
19
23
|
end
|
20
24
|
end
|
21
25
|
end
|
@@ -159,7 +159,7 @@ module SleepRoom
|
|
159
159
|
api = API::StreamingAPI.new(@room_id)
|
160
160
|
streaming_url_list = api.streaming_url
|
161
161
|
rescue => e
|
162
|
-
SleepRoom.error(e.
|
162
|
+
SleepRoom.error(e.full_message)
|
163
163
|
log("[parseStreamingUrl] Retry...")
|
164
164
|
retry
|
165
165
|
end
|
@@ -187,7 +187,8 @@ module SleepRoom
|
|
187
187
|
})
|
188
188
|
task.async do |t|
|
189
189
|
while true
|
190
|
-
|
190
|
+
live = API::RoomAPI.new(@room).live?
|
191
|
+
if !SleepRoom.running?(pid) && !live
|
191
192
|
log("Download complete.")
|
192
193
|
@downlaoding = false
|
193
194
|
@queue.add({
|
@@ -198,9 +199,19 @@ module SleepRoom
|
|
198
199
|
status: :complete,
|
199
200
|
})
|
200
201
|
break
|
202
|
+
elsif live && !SleepRoom.running?(pid)
|
203
|
+
log("Minyami crash.")
|
204
|
+
streaming_url = parse_streaming_url
|
205
|
+
output = build_output
|
206
|
+
pid = SleepRoom::Record.call_minyami(url: streaming_url, output: output)
|
207
|
+
elsif !live && SleepRoom.running?(pid)
|
208
|
+
log("Live stop.")
|
201
209
|
end
|
202
|
-
t.sleep
|
210
|
+
t.sleep 120
|
203
211
|
end
|
212
|
+
rescue Faraday::ConnectionFailed
|
213
|
+
log("Network error.")
|
214
|
+
retry
|
204
215
|
end.wait
|
205
216
|
end
|
206
217
|
|
data/lib/sleeproom/utils.rb
CHANGED
@@ -4,6 +4,7 @@ require "configatron"
|
|
4
4
|
require "colorize"
|
5
5
|
require "fileutils"
|
6
6
|
require "yaml"
|
7
|
+
require "logger"
|
7
8
|
|
8
9
|
module SleepRoom
|
9
10
|
class Error < StandardError; end
|
@@ -111,10 +112,6 @@ module SleepRoom
|
|
111
112
|
file: {
|
112
113
|
use: true,
|
113
114
|
path: "#{sleeproom_dir}/log"
|
114
|
-
},
|
115
|
-
websocket: {
|
116
|
-
log: true,
|
117
|
-
ping_log: false
|
118
115
|
}
|
119
116
|
}
|
120
117
|
}
|
@@ -197,18 +194,43 @@ module SleepRoom
|
|
197
194
|
# @param string [String]
|
198
195
|
# @return [nil]
|
199
196
|
def self.info(string)
|
200
|
-
|
197
|
+
log(:info, "[INFO] #{string}".colorize(:white))
|
201
198
|
end
|
202
199
|
|
203
200
|
# @param string [String]
|
204
201
|
# @return [nil]
|
205
202
|
def self.warning(string)
|
206
|
-
|
203
|
+
log(:warning, "[WARN] #{string}".colorize(:yellow))
|
207
204
|
end
|
208
205
|
|
209
206
|
# @param string [String]
|
210
207
|
# @return [nil]
|
211
208
|
def self.error(string)
|
212
|
-
|
209
|
+
log(:error, "[ERROR] #{string}".colorize(:red))
|
210
|
+
end
|
211
|
+
|
212
|
+
def self.log(type, log)
|
213
|
+
case type
|
214
|
+
when :info
|
215
|
+
puts(log)
|
216
|
+
when :warning
|
217
|
+
warn(log)
|
218
|
+
when :error
|
219
|
+
puts(log)
|
220
|
+
end
|
221
|
+
file_logger(type, log) if configatron.logger.file.use == true
|
222
|
+
end
|
223
|
+
|
224
|
+
def self.file_logger(type, log)
|
225
|
+
path = configatron.logger.file.path
|
226
|
+
logger = Logger.new(path)
|
227
|
+
case type
|
228
|
+
when :info
|
229
|
+
logger.info(log)
|
230
|
+
when :warning
|
231
|
+
logger.warning(log)
|
232
|
+
when :error
|
233
|
+
logger.error(log)
|
234
|
+
end
|
213
235
|
end
|
214
236
|
end
|
data/lib/sleeproom/version.rb
CHANGED
data/sleeproom.gemspec
CHANGED
@@ -25,12 +25,12 @@ Gem::Specification.new do |spec|
|
|
25
25
|
spec.executables = ["sleeproom"]
|
26
26
|
spec.require_paths = ["lib"]
|
27
27
|
|
28
|
-
spec.add_runtime_dependency("colorize")
|
29
|
-
spec.add_runtime_dependency("async")
|
30
|
-
spec.add_runtime_dependency("async-websocket")
|
31
|
-
spec.add_runtime_dependency("configatron")
|
32
|
-
spec.add_runtime_dependency("async-http-faraday")
|
33
|
-
spec.add_runtime_dependency("terminal-table")
|
28
|
+
spec.add_runtime_dependency("colorize", "~> 0.8.0")
|
29
|
+
spec.add_runtime_dependency("async", "~> 1.26.0")
|
30
|
+
spec.add_runtime_dependency("async-websocket", "~> 0.15.0")
|
31
|
+
spec.add_runtime_dependency("configatron", "~> 4.5.0")
|
32
|
+
spec.add_runtime_dependency("async-http-faraday", "~> 0.9.0")
|
33
|
+
spec.add_runtime_dependency("terminal-table", "~> 1.8.0")
|
34
34
|
|
35
35
|
spec.post_install_message = <<~STR
|
36
36
|
SleepRoom 需要:
|
metadata
CHANGED
@@ -1,99 +1,99 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: sleeproom
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.3.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Koell
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2020-06-
|
11
|
+
date: 2020-06-14 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: colorize
|
15
15
|
requirement: !ruby/object:Gem::Requirement
|
16
16
|
requirements:
|
17
|
-
- - "
|
17
|
+
- - "~>"
|
18
18
|
- !ruby/object:Gem::Version
|
19
|
-
version:
|
19
|
+
version: 0.8.0
|
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:
|
26
|
+
version: 0.8.0
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
28
|
name: async
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
30
30
|
requirements:
|
31
|
-
- - "
|
31
|
+
- - "~>"
|
32
32
|
- !ruby/object:Gem::Version
|
33
|
-
version:
|
33
|
+
version: 1.26.0
|
34
34
|
type: :runtime
|
35
35
|
prerelease: false
|
36
36
|
version_requirements: !ruby/object:Gem::Requirement
|
37
37
|
requirements:
|
38
|
-
- - "
|
38
|
+
- - "~>"
|
39
39
|
- !ruby/object:Gem::Version
|
40
|
-
version:
|
40
|
+
version: 1.26.0
|
41
41
|
- !ruby/object:Gem::Dependency
|
42
42
|
name: async-websocket
|
43
43
|
requirement: !ruby/object:Gem::Requirement
|
44
44
|
requirements:
|
45
|
-
- - "
|
45
|
+
- - "~>"
|
46
46
|
- !ruby/object:Gem::Version
|
47
|
-
version:
|
47
|
+
version: 0.15.0
|
48
48
|
type: :runtime
|
49
49
|
prerelease: false
|
50
50
|
version_requirements: !ruby/object:Gem::Requirement
|
51
51
|
requirements:
|
52
|
-
- - "
|
52
|
+
- - "~>"
|
53
53
|
- !ruby/object:Gem::Version
|
54
|
-
version:
|
54
|
+
version: 0.15.0
|
55
55
|
- !ruby/object:Gem::Dependency
|
56
56
|
name: configatron
|
57
57
|
requirement: !ruby/object:Gem::Requirement
|
58
58
|
requirements:
|
59
|
-
- - "
|
59
|
+
- - "~>"
|
60
60
|
- !ruby/object:Gem::Version
|
61
|
-
version:
|
61
|
+
version: 4.5.0
|
62
62
|
type: :runtime
|
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:
|
68
|
+
version: 4.5.0
|
69
69
|
- !ruby/object:Gem::Dependency
|
70
70
|
name: async-http-faraday
|
71
71
|
requirement: !ruby/object:Gem::Requirement
|
72
72
|
requirements:
|
73
|
-
- - "
|
73
|
+
- - "~>"
|
74
74
|
- !ruby/object:Gem::Version
|
75
|
-
version:
|
75
|
+
version: 0.9.0
|
76
76
|
type: :runtime
|
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:
|
82
|
+
version: 0.9.0
|
83
83
|
- !ruby/object:Gem::Dependency
|
84
84
|
name: terminal-table
|
85
85
|
requirement: !ruby/object:Gem::Requirement
|
86
86
|
requirements:
|
87
|
-
- - "
|
87
|
+
- - "~>"
|
88
88
|
- !ruby/object:Gem::Version
|
89
|
-
version:
|
89
|
+
version: 1.8.0
|
90
90
|
type: :runtime
|
91
91
|
prerelease: false
|
92
92
|
version_requirements: !ruby/object:Gem::Requirement
|
93
93
|
requirements:
|
94
|
-
- - "
|
94
|
+
- - "~>"
|
95
95
|
- !ruby/object:Gem::Version
|
96
|
-
version:
|
96
|
+
version: 1.8.0
|
97
97
|
description:
|
98
98
|
email:
|
99
99
|
- i@wug.moe
|