scrapescrobbler 0.1.2 → 0.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/bin/dev_scrapes CHANGED
@@ -1,4 +1,5 @@
1
1
  #!/usr/bin/env ruby
2
+ require 'rubygems'
2
3
  # Executable with absolute path to lib for hacking and development
3
4
  require File.join('.', File.dirname(__FILE__), '..', 'lib', 'scrapescrobbler')
4
5
  Scrapescrobbler::CLI.invoke
@@ -19,6 +19,7 @@ module Scrapescrobbler
19
19
  if playlist and playlist.length > 0 then
20
20
  @now_playing = playlist.first
21
21
  playlist.each do |song|
22
+ next if song == nil
22
23
  saved = song.save
23
24
  self.scrobble(song) if saved
24
25
  end
@@ -27,8 +28,8 @@ module Scrapescrobbler
27
28
 
28
29
  def scrobble song
29
30
  puts "Scrobbling #{song} @ #{song.time || Time.now}"
30
- @lastfm.track.scrobble(song.artist, song.title, song.album,
31
- song.time.utc.to_i || Time.now.utc.to_i)
31
+ @lastfm.track.scrobble(song.artist, song.title,
32
+ song.time.utc.to_i || Time.now.utc.to_i, song.album)
32
33
  end
33
34
 
34
35
  def now_playing
@@ -44,7 +45,7 @@ module Scrapescrobbler
44
45
  end
45
46
 
46
47
  lastfm = Lastfm.new Config['api_key'], Config['api_secret']
47
- lastfm.session = Config['session']
48
+ lastfm.session = Config['session']['key']
48
49
  lastfm
49
50
  end
50
51
  end
@@ -13,19 +13,16 @@ module Scrapescrobbler
13
13
  def self.playlist
14
14
  doc = open(PLAYLIST_URL) { |f| Hpricot(f) }
15
15
 
16
- table = doc.at("div#center_right")
17
- breaks = table/"tr"/"td"
18
- songs = []
19
- [table/"td.now_playing", table/"td.odd_row" - breaks, table/"td.even_row" - breaks].each do |row|
20
- next unless row.length != 0
21
- playlist_entries = row.collect do |cell|
22
- cell.inner_html
23
- end
24
- songs = playlist_entries.chunk(5).collect do |entry|
25
- time = entry[0] == "NOW PLAYING" ? Time.now : Time.parse(entry[0])
26
- Scrapescrobbler::Song.new :time => time, :artist => entry[1],
27
- :title => entry[2], :album => entry[3], :station => Wyep::NAME
28
- end
16
+ table = doc.at("table.playlist")
17
+ breaks = Array.new(table/"tr"/"td.group")
18
+ songs = (table/"tr.odd" + table/"tr.even" - breaks).collect do |row|
19
+ fields = row/"td"
20
+ next if breaks.include? fields[0]
21
+ field_data = (fields/"p").collect do |field| field.inner_html end
22
+ time = field_data[0] == "NOW PLAYING" ? Time.now :
23
+ Time.parse(field_data[0])
24
+ Scrapescrobbler::Song.new :time => time, :artist => field_data[1],
25
+ :title => field_data[2], :album => field_data[3], :station => Wyep::NAME
29
26
  end
30
27
  songs
31
28
  end
@@ -1,3 +1,3 @@
1
1
  module Scrapescrobbler
2
- VERSION = "0.1.2" unless defined?(::Scrapescrobbler::VERSION)
2
+ VERSION = "0.2" unless defined?(::Scrapescrobbler::VERSION)
3
3
  end
@@ -19,13 +19,12 @@ Gem::Specification.new do |s|
19
19
  s.add_development_dependency "rspec"
20
20
  s.add_development_dependency "mocha"
21
21
  s.add_dependency "hpricot"
22
- s.add_dependency "lastfm", ">= 0.2.0"
22
+ s.add_dependency "lastfm", ">= 1.5.1"
23
23
  s.add_dependency "dm-core"
24
24
  s.add_dependency "dm-sqlite-adapter"
25
25
  s.add_dependency "dm-migrations"
26
26
  s.add_dependency "dm-validations"
27
27
  s.add_dependency "activesupport", ">= 3.0.0"
28
- s.add_dependency "i18n"
29
28
 
30
29
  s.files = `git ls-files`.split("\n")
31
30
  s.test_files = `git ls-files -- spec/*`.split("\n")
metadata CHANGED
@@ -1,138 +1,169 @@
1
- --- !ruby/object:Gem::Specification
1
+ --- !ruby/object:Gem::Specification
2
2
  name: scrapescrobbler
3
- version: !ruby/object:Gem::Version
3
+ version: !ruby/object:Gem::Version
4
+ version: '0.2'
4
5
  prerelease:
5
- version: 0.1.2
6
6
  platform: ruby
7
- authors:
7
+ authors:
8
8
  - Christopher Peplin
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
-
13
- date: 2011-05-01 00:00:00 -04:00
14
- default_executable: scrapescrobble
15
- dependencies:
16
- - !ruby/object:Gem::Dependency
12
+ date: 2012-05-27 00:00:00.000000000 Z
13
+ dependencies:
14
+ - !ruby/object:Gem::Dependency
17
15
  name: rspec
18
- prerelease: false
19
- requirement: &id001 !ruby/object:Gem::Requirement
16
+ requirement: !ruby/object:Gem::Requirement
20
17
  none: false
21
- requirements:
22
- - - ">="
23
- - !ruby/object:Gem::Version
24
- version: "0"
18
+ requirements:
19
+ - - ! '>='
20
+ - !ruby/object:Gem::Version
21
+ version: '0'
25
22
  type: :development
26
- version_requirements: *id001
27
- - !ruby/object:Gem::Dependency
28
- name: mocha
29
23
  prerelease: false
30
- requirement: &id002 !ruby/object:Gem::Requirement
24
+ version_requirements: !ruby/object:Gem::Requirement
25
+ none: false
26
+ requirements:
27
+ - - ! '>='
28
+ - !ruby/object:Gem::Version
29
+ version: '0'
30
+ - !ruby/object:Gem::Dependency
31
+ name: mocha
32
+ requirement: !ruby/object:Gem::Requirement
31
33
  none: false
32
- requirements:
33
- - - ">="
34
- - !ruby/object:Gem::Version
35
- version: "0"
34
+ requirements:
35
+ - - ! '>='
36
+ - !ruby/object:Gem::Version
37
+ version: '0'
36
38
  type: :development
37
- version_requirements: *id002
38
- - !ruby/object:Gem::Dependency
39
- name: hpricot
40
39
  prerelease: false
41
- requirement: &id003 !ruby/object:Gem::Requirement
40
+ version_requirements: !ruby/object:Gem::Requirement
41
+ none: false
42
+ requirements:
43
+ - - ! '>='
44
+ - !ruby/object:Gem::Version
45
+ version: '0'
46
+ - !ruby/object:Gem::Dependency
47
+ name: hpricot
48
+ requirement: !ruby/object:Gem::Requirement
42
49
  none: false
43
- requirements:
44
- - - ">="
45
- - !ruby/object:Gem::Version
46
- version: "0"
50
+ requirements:
51
+ - - ! '>='
52
+ - !ruby/object:Gem::Version
53
+ version: '0'
47
54
  type: :runtime
48
- version_requirements: *id003
49
- - !ruby/object:Gem::Dependency
50
- name: lastfm
51
55
  prerelease: false
52
- requirement: &id004 !ruby/object:Gem::Requirement
56
+ version_requirements: !ruby/object:Gem::Requirement
57
+ none: false
58
+ requirements:
59
+ - - ! '>='
60
+ - !ruby/object:Gem::Version
61
+ version: '0'
62
+ - !ruby/object:Gem::Dependency
63
+ name: lastfm
64
+ requirement: !ruby/object:Gem::Requirement
53
65
  none: false
54
- requirements:
55
- - - ">="
56
- - !ruby/object:Gem::Version
57
- version: 0.2.0
66
+ requirements:
67
+ - - ! '>='
68
+ - !ruby/object:Gem::Version
69
+ version: 1.5.1
58
70
  type: :runtime
59
- version_requirements: *id004
60
- - !ruby/object:Gem::Dependency
61
- name: dm-core
62
71
  prerelease: false
63
- requirement: &id005 !ruby/object:Gem::Requirement
72
+ version_requirements: !ruby/object:Gem::Requirement
64
73
  none: false
65
- requirements:
66
- - - ">="
67
- - !ruby/object:Gem::Version
68
- version: "0"
74
+ requirements:
75
+ - - ! '>='
76
+ - !ruby/object:Gem::Version
77
+ version: 1.5.1
78
+ - !ruby/object:Gem::Dependency
79
+ name: dm-core
80
+ requirement: !ruby/object:Gem::Requirement
81
+ none: false
82
+ requirements:
83
+ - - ! '>='
84
+ - !ruby/object:Gem::Version
85
+ version: '0'
69
86
  type: :runtime
70
- version_requirements: *id005
71
- - !ruby/object:Gem::Dependency
72
- name: dm-sqlite-adapter
73
87
  prerelease: false
74
- requirement: &id006 !ruby/object:Gem::Requirement
88
+ version_requirements: !ruby/object:Gem::Requirement
75
89
  none: false
76
- requirements:
77
- - - ">="
78
- - !ruby/object:Gem::Version
79
- version: "0"
90
+ requirements:
91
+ - - ! '>='
92
+ - !ruby/object:Gem::Version
93
+ version: '0'
94
+ - !ruby/object:Gem::Dependency
95
+ name: dm-sqlite-adapter
96
+ requirement: !ruby/object:Gem::Requirement
97
+ none: false
98
+ requirements:
99
+ - - ! '>='
100
+ - !ruby/object:Gem::Version
101
+ version: '0'
80
102
  type: :runtime
81
- version_requirements: *id006
82
- - !ruby/object:Gem::Dependency
83
- name: dm-migrations
84
103
  prerelease: false
85
- requirement: &id007 !ruby/object:Gem::Requirement
104
+ version_requirements: !ruby/object:Gem::Requirement
86
105
  none: false
87
- requirements:
88
- - - ">="
89
- - !ruby/object:Gem::Version
90
- version: "0"
106
+ requirements:
107
+ - - ! '>='
108
+ - !ruby/object:Gem::Version
109
+ version: '0'
110
+ - !ruby/object:Gem::Dependency
111
+ name: dm-migrations
112
+ requirement: !ruby/object:Gem::Requirement
113
+ none: false
114
+ requirements:
115
+ - - ! '>='
116
+ - !ruby/object:Gem::Version
117
+ version: '0'
91
118
  type: :runtime
92
- version_requirements: *id007
93
- - !ruby/object:Gem::Dependency
94
- name: dm-validations
95
119
  prerelease: false
96
- requirement: &id008 !ruby/object:Gem::Requirement
120
+ version_requirements: !ruby/object:Gem::Requirement
97
121
  none: false
98
- requirements:
99
- - - ">="
100
- - !ruby/object:Gem::Version
101
- version: "0"
122
+ requirements:
123
+ - - ! '>='
124
+ - !ruby/object:Gem::Version
125
+ version: '0'
126
+ - !ruby/object:Gem::Dependency
127
+ name: dm-validations
128
+ requirement: !ruby/object:Gem::Requirement
129
+ none: false
130
+ requirements:
131
+ - - ! '>='
132
+ - !ruby/object:Gem::Version
133
+ version: '0'
102
134
  type: :runtime
103
- version_requirements: *id008
104
- - !ruby/object:Gem::Dependency
105
- name: activesupport
106
135
  prerelease: false
107
- requirement: &id009 !ruby/object:Gem::Requirement
136
+ version_requirements: !ruby/object:Gem::Requirement
137
+ none: false
138
+ requirements:
139
+ - - ! '>='
140
+ - !ruby/object:Gem::Version
141
+ version: '0'
142
+ - !ruby/object:Gem::Dependency
143
+ name: activesupport
144
+ requirement: !ruby/object:Gem::Requirement
108
145
  none: false
109
- requirements:
110
- - - ">="
111
- - !ruby/object:Gem::Version
146
+ requirements:
147
+ - - ! '>='
148
+ - !ruby/object:Gem::Version
112
149
  version: 3.0.0
113
150
  type: :runtime
114
- version_requirements: *id009
115
- - !ruby/object:Gem::Dependency
116
- name: i18n
117
151
  prerelease: false
118
- requirement: &id010 !ruby/object:Gem::Requirement
152
+ version_requirements: !ruby/object:Gem::Requirement
119
153
  none: false
120
- requirements:
121
- - - ">="
122
- - !ruby/object:Gem::Version
123
- version: "0"
124
- type: :runtime
125
- version_requirements: *id010
126
- description: Scrapescobbler is a tool to submit tracks you're listening to on an old-fashioned radio station to last.fm.
154
+ requirements:
155
+ - - ! '>='
156
+ - !ruby/object:Gem::Version
157
+ version: 3.0.0
158
+ description: Scrapescobbler is a tool to submit tracks you're listening to on an old-fashioned
159
+ radio station to last.fm.
127
160
  email: chris.peplin@rhubarbtech.com
128
- executables:
161
+ executables:
129
162
  - dev_scrapes
130
163
  - scrapes
131
164
  extensions: []
132
-
133
165
  extra_rdoc_files: []
134
-
135
- files:
166
+ files:
136
167
  - .gitignore
137
168
  - CONTRIBUTORS
138
169
  - LICENSE
@@ -159,35 +190,31 @@ files:
159
190
  - spec/listener_spec.rb
160
191
  - spec/models/song_spec.rb
161
192
  - spec/spec_helper.rb
162
- has_rdoc: true
163
193
  homepage: http://github.com/peplin/scrapescrobbler
164
194
  licenses: []
165
-
166
195
  post_install_message:
167
196
  rdoc_options: []
168
-
169
- require_paths:
197
+ require_paths:
170
198
  - lib
171
- required_ruby_version: !ruby/object:Gem::Requirement
199
+ required_ruby_version: !ruby/object:Gem::Requirement
172
200
  none: false
173
- requirements:
174
- - - ">="
175
- - !ruby/object:Gem::Version
176
- version: "0"
177
- required_rubygems_version: !ruby/object:Gem::Requirement
201
+ requirements:
202
+ - - ! '>='
203
+ - !ruby/object:Gem::Version
204
+ version: '0'
205
+ required_rubygems_version: !ruby/object:Gem::Requirement
178
206
  none: false
179
- requirements:
180
- - - ">="
181
- - !ruby/object:Gem::Version
207
+ requirements:
208
+ - - ! '>='
209
+ - !ruby/object:Gem::Version
182
210
  version: 1.3.6
183
211
  requirements: []
184
-
185
212
  rubyforge_project:
186
- rubygems_version: 1.6.2
213
+ rubygems_version: 1.8.21
187
214
  signing_key:
188
215
  specification_version: 3
189
216
  summary: Radio station last.fm scrobbler
190
- test_files:
217
+ test_files:
191
218
  - spec/cli/list_spec.rb
192
219
  - spec/cli/listen_spec.rb
193
220
  - spec/listener_spec.rb