begin
Net::HTTP.start("post.audioscrobbler.com", 80) do |http|
resp = http.get(query).body.strip
case resp
when /^OK\n([0-9a-z]+)\n(.+)\n(.+)/
puts("handshake succeeded")
Submission_settings[:session_id] = $1
Submission_settings[:now_playing_url] = URI.parse($2)
Submission_settings[:submission_url] = URI.parse($3)
when /^BANNED$/
puts("banned")
when /^BADTIME$/
puts("bad time, go fix your clock")
when /^FAILED (.+)$/
puts("handshake failed - #{resp}")
when /^BADAUTH$/
puts("handshake failed - bad username/password")
else
puts("bad response in handshake - #{resp}")
end
end
rescue SocketError => err
puts("socket error: #{err}")
rescue SystemCallError => err
puts("system call error: #{err}")
rescue IOError => err
puts("io error: #{err}")
rescue Timeout::Error
puts("timeout during handshake")
end
end
def now_playing(a)
[:band,:song,:album,:lenght,:nr,:mb].each do |i|
a[i]="" unless a[i]
a[i]=a[i].to_s.gsub(/ /,'_')
end
Net::HTTP.post_form(Submission_settings[:now_playing_url],{"s"=>Submission_settings[:session_id],"a"=>a[:band], "t"=>a[:song], "b"=>a[:album],"l"=>a[:lenght], "n"=>a[:nr], "m"=>a[:mb] })
end
def submit(a)
[:band,:song,:album,:lenght,:rating,:nr,:mb].each do |i|
a[i]="" unless a[i]
a[i]=a[i].to_s.gsub(/ /,'_')
end