pandora 0.1.1 → 0.1.2
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/lib/pandora/user.rb +58 -26
- data/lib/pandora/version.rb +1 -1
- data/pandora.gemspec +2 -0
- metadata +55 -34
data/lib/pandora/user.rb
CHANGED
@@ -86,24 +86,24 @@ module Pandora
|
|
86
86
|
# description:: Description of the station
|
87
87
|
# date:: Date the station was created
|
88
88
|
# artwork:: Artwork of the station
|
89
|
-
#
|
90
|
-
#
|
91
|
-
#
|
92
|
-
# artistSeed:: Name of the artist used to create the station
|
89
|
+
# songSeed:: Array of hashes {:song => "..", :artist => ".."} representing songs used to create the station
|
90
|
+
# composerSeed:: Array of names of the composers used to create the station
|
91
|
+
# artistSeed:: Array of names of the artists used to create the station
|
93
92
|
#
|
94
93
|
def stations
|
95
94
|
doc = request(@user, "stations")
|
96
95
|
stations = []
|
97
96
|
doc.xpath('//rss/channel/item').each do |node|
|
98
|
-
|
99
|
-
|
100
|
-
|
101
|
-
:
|
102
|
-
:
|
103
|
-
:
|
104
|
-
:
|
105
|
-
:
|
106
|
-
:
|
97
|
+
seeds = parse_seeds(node)
|
98
|
+
|
99
|
+
stations << { :title => node.xpath('title').text.strip,
|
100
|
+
:link => node.xpath('link').text.strip,
|
101
|
+
:description => node.xpath('description').text.strip,
|
102
|
+
:date => node.xpath('pubDate').text.strip,
|
103
|
+
:artwork => node.xpath('pandora:stationAlbumArtImageUrl').text.strip,
|
104
|
+
:songSeed => seeds[:song],
|
105
|
+
:composerSeed => seeds[:composer],
|
106
|
+
:artistSeed => seeds[:artist]}
|
107
107
|
end
|
108
108
|
stations
|
109
109
|
end
|
@@ -119,24 +119,24 @@ module Pandora
|
|
119
119
|
# description:: Description of the station
|
120
120
|
# date:: Date the station was last played
|
121
121
|
# artwork:: Artwork of the station
|
122
|
-
#
|
123
|
-
#
|
124
|
-
#
|
125
|
-
# artistSeed:: Name of the artist used to create the station
|
122
|
+
# songSeed:: Array of hashes {:song => "..", :artist => ".."} representing songs used to create the station
|
123
|
+
# composerSeed:: Array of names of the composers used to create the station
|
124
|
+
# artistSeed:: Array of names of the artists used to create the station
|
126
125
|
#
|
127
126
|
def now_playing
|
128
127
|
doc = request(@user, "nowplaying")
|
129
128
|
station = []
|
130
129
|
doc.xpath('//rss/channel/item').each do |node|
|
131
|
-
|
132
|
-
|
133
|
-
|
134
|
-
:
|
135
|
-
:
|
136
|
-
:
|
137
|
-
:
|
138
|
-
:
|
139
|
-
:
|
130
|
+
seeds = parse_seeds(node)
|
131
|
+
|
132
|
+
station << { :title => node.xpath('title').text.strip,
|
133
|
+
:link => node.xpath('link').text.strip,
|
134
|
+
:description => node.xpath('description').text.strip,
|
135
|
+
:date => node.xpath('pubDate').text.strip,
|
136
|
+
:artwork => node.xpath('pandora:stationAlbumArtImageUrl').text.strip,
|
137
|
+
:songSeed => seeds[:song],
|
138
|
+
:composerSeed => seeds[:composer],
|
139
|
+
:artistSeed => seeds[:artist]}
|
140
140
|
end
|
141
141
|
station
|
142
142
|
end
|
@@ -173,5 +173,37 @@ module Pandora
|
|
173
173
|
end
|
174
174
|
items
|
175
175
|
end
|
176
|
+
|
177
|
+
private
|
178
|
+
def parse_seeds(node)
|
179
|
+
seeds = {
|
180
|
+
:song => [],
|
181
|
+
:composer => [],
|
182
|
+
:artist => []
|
183
|
+
}
|
184
|
+
|
185
|
+
if node.is_a? Nokogiri::XML::Node
|
186
|
+
node.xpath('pandora:seeds/pandora:songSeed').each do |s|
|
187
|
+
|
188
|
+
song = s.xpath("pandora:song").text.strip
|
189
|
+
artist = s.xpath("pandora:artist").text.strip
|
190
|
+
|
191
|
+
seeds[:song] << {
|
192
|
+
:song => song,
|
193
|
+
:artist => artist
|
194
|
+
}
|
195
|
+
end
|
196
|
+
|
197
|
+
node.xpath('pandora:seeds/pandora:composerSeed/pandora:composer').each do |c|
|
198
|
+
seeds[:composer] << c.text.strip
|
199
|
+
end
|
200
|
+
|
201
|
+
node.xpath('pandora:seeds/pandora:artistSeed/pandora:artist').each do |a|
|
202
|
+
seeds[:artist] << a.text.strip
|
203
|
+
end
|
204
|
+
end
|
205
|
+
|
206
|
+
seeds
|
207
|
+
end
|
176
208
|
end
|
177
209
|
end
|
data/lib/pandora/version.rb
CHANGED
data/pandora.gemspec
CHANGED
@@ -12,6 +12,8 @@ Gem::Specification.new do |s|
|
|
12
12
|
s.description = %q{A Ruby wrapper for the Pandora public user feeds}
|
13
13
|
|
14
14
|
s.add_runtime_dependency 'nokogiri','~> 1.4'
|
15
|
+
s.add_development_dependency 'rake'
|
16
|
+
s.add_development_dependency 'yard'
|
15
17
|
|
16
18
|
s.files = `git ls-files`.split("\n")
|
17
19
|
s.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
|
metadata
CHANGED
@@ -1,37 +1,55 @@
|
|
1
|
-
--- !ruby/object:Gem::Specification
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
2
|
name: pandora
|
3
|
-
version: !ruby/object:Gem::Version
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.1.2
|
4
5
|
prerelease:
|
5
|
-
version: 0.1.1
|
6
6
|
platform: ruby
|
7
|
-
authors:
|
7
|
+
authors:
|
8
8
|
- Anil
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
- !ruby/object:Gem::Dependency
|
12
|
+
date: 2011-11-16 00:00:00.000000000 Z
|
13
|
+
dependencies:
|
14
|
+
- !ruby/object:Gem::Dependency
|
16
15
|
name: nokogiri
|
17
|
-
|
18
|
-
requirement: &id001 !ruby/object:Gem::Requirement
|
16
|
+
requirement: &70178239905760 !ruby/object:Gem::Requirement
|
19
17
|
none: false
|
20
|
-
requirements:
|
18
|
+
requirements:
|
21
19
|
- - ~>
|
22
|
-
- !ruby/object:Gem::Version
|
23
|
-
version:
|
20
|
+
- !ruby/object:Gem::Version
|
21
|
+
version: '1.4'
|
24
22
|
type: :runtime
|
25
|
-
|
23
|
+
prerelease: false
|
24
|
+
version_requirements: *70178239905760
|
25
|
+
- !ruby/object:Gem::Dependency
|
26
|
+
name: rake
|
27
|
+
requirement: &70178239905340 !ruby/object:Gem::Requirement
|
28
|
+
none: false
|
29
|
+
requirements:
|
30
|
+
- - ! '>='
|
31
|
+
- !ruby/object:Gem::Version
|
32
|
+
version: '0'
|
33
|
+
type: :development
|
34
|
+
prerelease: false
|
35
|
+
version_requirements: *70178239905340
|
36
|
+
- !ruby/object:Gem::Dependency
|
37
|
+
name: yard
|
38
|
+
requirement: &70178239904740 !ruby/object:Gem::Requirement
|
39
|
+
none: false
|
40
|
+
requirements:
|
41
|
+
- - ! '>='
|
42
|
+
- !ruby/object:Gem::Version
|
43
|
+
version: '0'
|
44
|
+
type: :development
|
45
|
+
prerelease: false
|
46
|
+
version_requirements: *70178239904740
|
26
47
|
description: A Ruby wrapper for the Pandora public user feeds
|
27
48
|
email:
|
28
49
|
executables: []
|
29
|
-
|
30
50
|
extensions: []
|
31
|
-
|
32
51
|
extra_rdoc_files: []
|
33
|
-
|
34
|
-
files:
|
52
|
+
files:
|
35
53
|
- .gitignore
|
36
54
|
- .yardopts
|
37
55
|
- Gemfile
|
@@ -44,30 +62,33 @@ files:
|
|
44
62
|
- pandora.gemspec
|
45
63
|
homepage: http://github.com/anilv/pandora
|
46
64
|
licenses: []
|
47
|
-
|
48
65
|
post_install_message:
|
49
66
|
rdoc_options: []
|
50
|
-
|
51
|
-
require_paths:
|
67
|
+
require_paths:
|
52
68
|
- lib
|
53
|
-
required_ruby_version: !ruby/object:Gem::Requirement
|
69
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
54
70
|
none: false
|
55
|
-
requirements:
|
56
|
-
- -
|
57
|
-
- !ruby/object:Gem::Version
|
58
|
-
version:
|
59
|
-
|
71
|
+
requirements:
|
72
|
+
- - ! '>='
|
73
|
+
- !ruby/object:Gem::Version
|
74
|
+
version: '0'
|
75
|
+
segments:
|
76
|
+
- 0
|
77
|
+
hash: -1909941597842625503
|
78
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
60
79
|
none: false
|
61
|
-
requirements:
|
62
|
-
- -
|
63
|
-
- !ruby/object:Gem::Version
|
64
|
-
version:
|
80
|
+
requirements:
|
81
|
+
- - ! '>='
|
82
|
+
- !ruby/object:Gem::Version
|
83
|
+
version: '0'
|
84
|
+
segments:
|
85
|
+
- 0
|
86
|
+
hash: -1909941597842625503
|
65
87
|
requirements: []
|
66
|
-
|
67
88
|
rubyforge_project:
|
68
|
-
rubygems_version: 1.8.
|
89
|
+
rubygems_version: 1.8.10
|
69
90
|
signing_key:
|
70
91
|
specification_version: 3
|
71
92
|
summary: Get Music data from Pandora
|
72
93
|
test_files: []
|
73
|
-
|
94
|
+
has_rdoc:
|