partygoer-client 0.0.2 → 0.0.3

Sign up to get free protection for your applications and to get access to all the features.
Files changed (3) hide show
  1. checksums.yaml +4 -4
  2. data/lib/partygoer-client.rb +35 -30
  3. metadata +1 -1
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 4c5ca57411c87212b06b0fce0dce5c0fabeb1697
4
- data.tar.gz: 440a7c124eb0a86a40f40fc7897391fadd3aca52
3
+ metadata.gz: 4385f1fb04460ff257152c2cf070efe9cd1d39c8
4
+ data.tar.gz: 2e4be4a61f1c3bc50eb3331ca0930873d0b1cd77
5
5
  SHA512:
6
- metadata.gz: e239d5fea16aba03102fbaebdc38d82e51975497d607e56268011ca780f2bfc685792848bdc2912f6f2be2e690deed43ca2685305f5e43491e8392c090200963
7
- data.tar.gz: 149d555a84676292857b871182f4d8c2ff9fed89f483830df56f2295fd64e479d43e673901a60017e54cef4504087491af8a116a37bbcec5e15b6ff92eb5b2e5
6
+ metadata.gz: d0ef5c08bb3ec6e07fe926d213fbcd8f479233abcf52748f9af4bf5be6495f65ce5ab2cf5eb4acad2a0290856f5ff940179807f26ab516f35ebca0c2bd29931f
7
+ data.tar.gz: 9c0cd207d129bd4e6aaf3a04f8bef32debb9b6a4a6020e7117f48c9a28e21d719cc9530033cbb9fae08fc65ad247db527781eea894c8ccbb155bbdcbf7a5adb6
@@ -1,8 +1,9 @@
1
1
  #!/usr/bin/env ruby
2
2
  require 'faye'
3
3
  require 'eventmachine'
4
- require 'json'
5
4
  require 'rest-client'
5
+
6
+ require 'json'
6
7
  require 'logger'
7
8
 
8
9
  # Connects to a partygoer instance, performs an initial poll, and then polls
@@ -15,7 +16,7 @@ class PartyGoerClient
15
16
  @@logger.formatter = proc do |severity, datetime, _progname, msg|
16
17
  "\n\n#{datetime} #{severity}:\n\t#{msg}"
17
18
  end
18
- @@logger.level = Logger::DEBUG
19
+ @@logger.level = Logger::INFO
19
20
 
20
21
  def initialize(server)
21
22
  @server = server
@@ -33,7 +34,7 @@ class PartyGoerClient
33
34
  @api = RestClient::Resource.new("#{@server}/api/queue", headers:
34
35
  { content_type: 'application/json', accept: 'application/json' })
35
36
  @client = Faye::Client.new("#{@server}:9292/faye")
36
- @@logger.info { "Client initialized with server: #{server}" }
37
+ logger.info { "Client initialized with server: #{server}" }
37
38
  @is_playing = false
38
39
  start
39
40
  end
@@ -41,9 +42,9 @@ class PartyGoerClient
41
42
  def playing=(track)
42
43
  payload = { track: track }
43
44
  @api['/playing'].put(payload)
44
- @@logger.info { "Set now playing to #{track['name']}" }
45
+ logger.info { "Set now playing to #{track['name']}" }
45
46
  rescue
46
- @@logger.error {
47
+ logger.error {
47
48
  "Could not set now playing to #{track.inspect}:\n\t#{$!}\n\t#{$@.join("\n\t")}"
48
49
  }
49
50
  end
@@ -56,9 +57,9 @@ class PartyGoerClient
56
57
  payload = { track: track }
57
58
  end
58
59
  EM.defer(proc { @api['/tracks'].post(payload) })
59
- @@logger.info { "Suggested #{track.inspect}" }
60
+ logger.info { "Suggested #{track.inspect}" }
60
61
  rescue
61
- @@logger.error("Failed to suggest track: #{track.inspect}\n#{$!}\n#{$@.join("\n\t")}")
62
+ logger.error("Failed to suggest track: #{track.inspect}\n#{$!}\n#{$@.join("\n\t")}")
62
63
  end
63
64
 
64
65
  def skip?
@@ -68,19 +69,19 @@ class PartyGoerClient
68
69
  @playing['num_downvotes'] >= (2 * @playing['num_upvotes'])
69
70
  end
70
71
  rescue
71
- @@logger.error("Failed to check skip criteria:\n#{$!}\n#{$@.join("\n\t")}")
72
+ logger.error("Failed to check skip criteria:\n#{$!}\n#{$@.join("\n\t")}")
72
73
  end
73
74
 
74
75
  def up_next
75
76
  @queued[1]
76
77
  rescue
77
- @@logger.error("Failed to check up next:\n#{$!}\n#{$@.join("\n\t")}")
78
+ logger.error("Failed to check up next:\n#{$!}\n#{$@.join("\n\t")}")
78
79
  end
79
80
 
80
81
  def start
81
82
  pull_update
82
83
  return if @event_loop
83
- @@logger.info { 'Starting event loop' }
84
+ logger.info { 'Starting event loop' }
84
85
  start_event_loop
85
86
 
86
87
  at_exit do
@@ -90,13 +91,13 @@ class PartyGoerClient
90
91
 
91
92
  def stop
92
93
  return unless @event_loop
93
- @@logger.info { 'Stopping event loop' }
94
+ logger.info { 'Stopping event loop' }
94
95
  EM.stop_event_loop
95
96
  @event_loop.kill
96
97
  @event_loop = nil
97
98
  end
98
99
 
99
- # aliases
100
+ # Aliases
100
101
  def now_playing
101
102
  playing
102
103
  end
@@ -109,6 +110,10 @@ class PartyGoerClient
109
110
  played
110
111
  end
111
112
 
113
+ def logger
114
+ @@logger
115
+ end
116
+
112
117
  private
113
118
  def start_event_loop
114
119
  @event_loop = Thread.new do
@@ -129,13 +134,13 @@ class PartyGoerClient
129
134
  end
130
135
  end
131
136
  rescue
132
- @@logger.critical { "Could not start event loop:\n\t#{$!}\n\t#{$@.join("\n\t")}" }
137
+ logger.critical { "Could not start event loop:\n\t#{$!}\n\t#{$@.join("\n\t")}" }
133
138
  stop
134
139
  raise $!
135
140
  end
136
141
  end
137
142
  rescue
138
- @@logger.critical { "Could not start event loop:\n\t#{$!}\n\t#{$@.join("\n\t")}" }
143
+ logger.critical { "Could not start event loop:\n\t#{$!}\n\t#{$@.join("\n\t")}" }
139
144
  stop
140
145
  raise $!
141
146
  end
@@ -143,7 +148,7 @@ class PartyGoerClient
143
148
 
144
149
  def on_voted(track)
145
150
  proc {
146
- @@logger.debug { "Track voted on: #{track.inspect}" }
151
+ logger.debug { "Track voted on: #{track.inspect}" }
147
152
  begin
148
153
  @queued_lock.synchronize{
149
154
  index = @queued.find_index {
@@ -152,7 +157,7 @@ class PartyGoerClient
152
157
  @queued[index] = track
153
158
  }
154
159
  rescue
155
- @@logger.error { "Error in on_voted:\n\t#{$!}\n\t#{$@.join("\n\t")}" }
160
+ logger.error { "Error in on_voted:\n\t#{$!}\n\t#{$@.join("\n\t")}" }
156
161
  ensure
157
162
  sort!
158
163
  end
@@ -161,13 +166,13 @@ class PartyGoerClient
161
166
 
162
167
  def on_created(track)
163
168
  proc {
164
- @@logger.debug { "Track created: #{track.inspect}" }
169
+ logger.debug { "Track created: #{track.inspect}" }
165
170
  begin
166
171
  @queued_lock.synchronize{
167
172
  @queued << track
168
173
  }
169
174
  rescue
170
- @@logger.error { "Error in on_created:\n\t#{$!}\n\t#{$@.join("\n\t")}" }
175
+ logger.error { "Error in on_created:\n\t#{$!}\n\t#{$@.join("\n\t")}" }
171
176
  ensure
172
177
  sort!
173
178
  end
@@ -176,7 +181,7 @@ class PartyGoerClient
176
181
 
177
182
  def on_next(track)
178
183
  proc {
179
- @@logger.debug { "Next track called: #{track.inspect}" }
184
+ logger.debug { "Next track called: #{track.inspect}" }
180
185
  begin
181
186
  @playing_lock.synchronize {
182
187
  @playing['playing'] = false
@@ -193,7 +198,7 @@ class PartyGoerClient
193
198
  @playing = track
194
199
  }
195
200
  rescue
196
- @@logger.error { "Error in on_next:\n\t#{$!}\n\t#{$@.join("\n\t")}" }
201
+ logger.error { "Error in on_next:\n\t#{$!}\n\t#{$@.join("\n\t")}" }
197
202
  ensure
198
203
  sort!
199
204
  end
@@ -201,24 +206,24 @@ class PartyGoerClient
201
206
  end
202
207
 
203
208
  def pull_update
204
- @@logger.info { "Polling for update" }
209
+ logger.info { "Polling for update" }
205
210
  begin
206
211
  body = JSON.parse(@api['/recently_played'].get.body)
207
212
  @played_lock.synchronize { @played = body }
208
213
  rescue
209
- @@logger.error { "Could not fetch recently played:\n\t#{$!}\n\t#{$@.join("\n\t")}" }
214
+ logger.error { "Could not fetch recently played:\n\t#{$!}\n\t#{$@.join("\n\t")}" }
210
215
  end
211
216
  begin
212
217
  body = JSON.parse(@api['/tracks'].get.body)
213
218
  @queued_lock.synchronize { @queued = body }
214
219
  rescue
215
- @@logger.error { "Could not fetch queue:\n\t#{$!}\n\t#{$@.join("\n\t")}" }
220
+ logger.error { "Could not fetch queue:\n\t#{$!}\n\t#{$@.join("\n\t")}" }
216
221
  end
217
222
  begin
218
223
  body = JSON.parse(@api['/playing'].get.body)
219
224
  @playing_lock.synchronize { @playing = body }
220
225
  rescue
221
- @@logger.error { "Could not fetch now playing:\n\t#{$!}\n\t#{$@.join("\n\t")}" }
226
+ logger.error { "Could not fetch now playing:\n\t#{$!}\n\t#{$@.join("\n\t")}" }
222
227
  end
223
228
  sort!
224
229
  end
@@ -228,9 +233,9 @@ class PartyGoerClient
228
233
  @played_lock.synchronize{
229
234
  @played.sort_by! { |track| track['id'] }
230
235
  }
231
- @@logger.debug { 'Sorted recently played' }
236
+ logger.debug { 'Sorted recently played' }
232
237
  rescue
233
- @@logger.error { "Could not sort recently played:\n\t#{$!}\n\t#{$@.join("\n\t")}" }
238
+ logger.error { "Could not sort recently played:\n\t#{$!}\n\t#{$@.join("\n\t")}" }
234
239
  end
235
240
  begin
236
241
  @queued_lock.synchronize{
@@ -239,17 +244,17 @@ class PartyGoerClient
239
244
  [i, -1 * track['score'], track['id']]
240
245
  }
241
246
  }
242
- @@logger.debug { 'Sorted queued' }
247
+ logger.debug { 'Sorted queued' }
243
248
  rescue
244
- @@logger.error { "Could not sort the queue:\n\t#{$!}\n\t#{$@.join("\n\t")}" }
249
+ logger.error { "Could not sort the queue:\n\t#{$!}\n\t#{$@.join("\n\t")}" }
245
250
  end
246
251
  begin
247
252
  @playing_lock.synchronize{
248
253
  @playing = @queued.select { |track| track['playing'] }.first
249
254
  }
250
- @@logger.debug { 'Updated now playing' }
255
+ logger.debug { 'Updated now playing' }
251
256
  rescue
252
- @@logger.error { "Could not update now playing:\n\t#{$!}\n\t#{$@.join("\n\t")}" }
257
+ logger.error { "Could not update now playing:\n\t#{$!}\n\t#{$@.join("\n\t")}" }
253
258
  end
254
259
  end
255
260
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: partygoer-client
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.2
4
+ version: 0.0.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Andrew Hamon