ampt 0.2.0.pre3 → 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.
data/ampt.gemspec CHANGED
@@ -5,11 +5,11 @@
5
5
 
6
6
  Gem::Specification.new do |s|
7
7
  s.name = %q{ampt}
8
- s.version = "0.2.0.pre3"
8
+ s.version = "0.2.0"
9
9
 
10
- s.required_rubygems_version = Gem::Requirement.new("> 1.3.1") if s.respond_to? :required_rubygems_version=
10
+ s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
11
  s.authors = ["Rich"]
12
- s.date = %q{2010-01-10}
12
+ s.date = %q{2010-01-22}
13
13
  s.default_executable = %q{ampt}
14
14
  s.description = %q{This is a command line client for the Acoustics Media Player (amp).}
15
15
  s.email = %q{rich@interhacktive.com}
data/lib/ampt.rb CHANGED
@@ -2,7 +2,7 @@ require 'rubygems'
2
2
  require 'trollop'
3
3
 
4
4
  module Ampt
5
- VERSION = '0.2.0.pre3'
5
+ VERSION = '0.2.0'
6
6
  # This is the module that holds the API for the current music player. Defined in
7
7
  # ampt_api/acoustics.rb
8
8
  module API
@@ -301,73 +301,4 @@ module Ampt
301
301
  end
302
302
  end
303
303
  end
304
- class Song
305
- # Create from json
306
- def self.json_create o
307
- new o['data'] if o['data']
308
- end
309
- # Serialize to json
310
- def to_json(*a)
311
- {
312
- 'json_class' => self.class.name,
313
- 'data' => [self.instance_variables.reduce({}) do |d,v|
314
- d[v[1..-1]] = self.instance_variable_get v
315
- d
316
- end]
317
- }.to_json(*a)
318
- end
319
-
320
- # Takes a hash to set up the object
321
- def initialize h
322
- h.each do |k,v|
323
- (class << self; self; end).instance_eval do
324
- attr_reader k
325
- end
326
- instance_variable_set '@'+k, v
327
- end
328
- end
329
- end
330
-
331
- class Status
332
- attr_reader :playlist, :now_playing, :who
333
- def self.json_create(o)
334
- o = o['data']
335
- playlist = if o['playlist']
336
- playlist = o['playlist'].collect do |s|
337
- Song.json_create('data' => s)
338
- end
339
- else
340
- []
341
- end
342
- now_playing= Song.json_create('data' => o['now_playing'])
343
- new o['player'], o['can_skip'], o['who'], now_playing, playlist
344
- end
345
-
346
- def initialize player, can_skip, whoami, now_playing, playlist
347
- if player
348
- player.each do |k,v|
349
- meta_eval do
350
- attr_reader k
351
- end
352
- instance_variable_set '@'+k, v
353
- end
354
- end
355
- @can_skip = can_skip
356
- @who = whoami
357
- @playlist = playlist
358
- @now_playing = now_playing
359
- end
360
-
361
- def can_skip?
362
- @can_skip
363
- end
364
-
365
- private
366
- def metaclass
367
- (class << self; self; end)
368
- end
369
- def meta_eval &b
370
- metaclass.instance_eval &b
371
- end
372
- end
373
304
  end
@@ -8,7 +8,7 @@ module Ampt
8
8
  # Request the player's status. gets the session first so we can tell
9
9
  # whether or not we can skip the current song, which songs are ours, etc.
10
10
  def status
11
- auth
11
+ auth false
12
12
  player_status req
13
13
  end
14
14
 
@@ -31,7 +31,7 @@ module Ampt
31
31
 
32
32
  # Clears all of your votes.
33
33
  def reset
34
- player_status unvote '0'
34
+ unvote '0'
35
35
  end
36
36
 
37
37
  # Gets the most recently added songs. Takes a string count.
@@ -125,7 +125,7 @@ module Ampt
125
125
  end
126
126
 
127
127
  # Perform an authenticated request
128
- def auth
128
+ def auth fatal = true
129
129
  unless @sess
130
130
  c = Curl::Easy.new
131
131
  c.http_auth_types = Curl::CURLAUTH_GSSNEGOTIATE
@@ -135,10 +135,80 @@ module Ampt
135
135
  sessid = c.header_str[/CGISESSID=(.+);/]
136
136
  if sessid.nil?
137
137
  puts "Could not authenticate -- maybe you should kinit?"
138
- abort
138
+ abort if fatal
139
+ return
139
140
  end
140
141
  @sess = sessid.chop
141
142
  end
142
143
  end
143
144
  end
145
+ class Song
146
+ # Create from json
147
+ def self.json_create o
148
+ new o['data'] if o['data']
149
+ end
150
+ # Serialize to json
151
+ def to_json(*a)
152
+ {
153
+ 'json_class' => self.class.name,
154
+ 'data' => [self.instance_variables.reduce({}) do |d,v|
155
+ d[v[1..-1]] = self.instance_variable_get v
156
+ d
157
+ end]
158
+ }.to_json(*a)
159
+ end
160
+
161
+ # Takes a hash to set up the object
162
+ def initialize h
163
+ h.each do |k,v|
164
+ (class << self; self; end).instance_eval do
165
+ attr_reader k
166
+ end
167
+ instance_variable_set '@'+k, v
168
+ end
169
+ end
170
+ end
171
+
172
+ class Status
173
+ attr_reader :playlist, :now_playing, :who
174
+ def self.json_create(o)
175
+ o = o['data']
176
+ playlist = if o['playlist']
177
+ playlist = o['playlist'].collect do |s|
178
+ Song.json_create('data' => s)
179
+ end
180
+ else
181
+ []
182
+ end
183
+ now_playing= Song.json_create('data' => o['now_playing'])
184
+ new o['player'], o['can_skip'], o['who'], now_playing, playlist
185
+ end
186
+
187
+ def initialize player, can_skip, whoami, now_playing, playlist
188
+ if player
189
+ player.each do |k,v|
190
+ meta_eval do
191
+ attr_reader k
192
+ end
193
+ instance_variable_set '@'+k, v
194
+ end
195
+ end
196
+ @can_skip = can_skip
197
+ @who = whoami
198
+ @playlist = playlist
199
+ @now_playing = now_playing
200
+ end
201
+
202
+ def can_skip?
203
+ @can_skip
204
+ end
205
+
206
+ private
207
+ def metaclass
208
+ (class << self; self; end)
209
+ end
210
+ def meta_eval &b
211
+ metaclass.instance_eval &b
212
+ end
213
+ end
144
214
  end
@@ -144,12 +144,12 @@ command 'remove' do
144
144
  elsif opts[:interactive]
145
145
  st = status
146
146
  me = st.who
147
- list = st.playlist.select do |s|
147
+ l = st.playlist.select do |s|
148
148
  s.who.include? me
149
149
  end
150
150
  s = []
151
151
  Tempfile.open("ampt") do |tempfile|
152
- songs_to_file(list, tempfile)
152
+ songs_to_file(l, tempfile)
153
153
  tempfile.fsync
154
154
  tempfile.flush
155
155
  path = tempfile.path
@@ -195,7 +195,7 @@ command 'add' do
195
195
  list_of[:album] = opts[:album]
196
196
  list_of[:title] = opts[:title]
197
197
  list_of[:search] = opts[:search]
198
- list = if opts[:search_given]
198
+ l = if opts[:search_given]
199
199
  list_of.collect do |k,v|
200
200
  v.collect do |v|
201
201
  search(v)
@@ -208,10 +208,10 @@ command 'add' do
208
208
  end
209
209
  end
210
210
  end
211
- list = list.flatten
211
+ l = l.flatten
212
212
  s = []
213
213
  Tempfile.open("ampt") do |tempfile|
214
- songs_to_file(list, tempfile)
214
+ songs_to_file(l, tempfile)
215
215
  tempfile.fsync
216
216
  tempfile.flush
217
217
  path = tempfile.path
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ampt
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.0.pre3
4
+ version: 0.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Rich
@@ -9,7 +9,7 @@ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
11
 
12
- date: 2010-01-10 00:00:00 -06:00
12
+ date: 2010-01-22 00:00:00 -06:00
13
13
  default_executable: ampt
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
@@ -81,9 +81,9 @@ required_ruby_version: !ruby/object:Gem::Requirement
81
81
  version:
82
82
  required_rubygems_version: !ruby/object:Gem::Requirement
83
83
  requirements:
84
- - - ">"
84
+ - - ">="
85
85
  - !ruby/object:Gem::Version
86
- version: 1.3.1
86
+ version: "0"
87
87
  version:
88
88
  requirements: []
89
89