partygoer-client 0.0.2 → 0.0.3

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.
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