2011-09-13 10:06:52 +00:00
|
|
|
module MusicBrainz
|
|
|
|
@@last_query_time = 0
|
2011-09-14 12:30:52 +00:00
|
|
|
@@query_interval = 1.5 # Min: 1.0 Safe: 1.5
|
|
|
|
|
|
|
|
def self.query_interval sec
|
|
|
|
@@query_interval = sec.to_f
|
|
|
|
end
|
2011-09-13 10:06:52 +00:00
|
|
|
|
|
|
|
def self.load url
|
2011-09-14 09:08:03 +00:00
|
|
|
sleep @@query_interval - (Time.now.to_f - @@last_query_time) if Time.now.to_f - @@last_query_time < @@query_interval
|
2011-09-13 10:06:52 +00:00
|
|
|
response = nil
|
|
|
|
5.times do
|
|
|
|
begin
|
|
|
|
response = open(url, "User-Agent" => "gem musicbrainz (https://github.com/magnolia-fan/musicbrainz) @ " + Socket.gethostname)
|
2011-09-14 09:08:03 +00:00
|
|
|
@@last_query_time = Time.now.to_f
|
2011-09-13 10:06:52 +00:00
|
|
|
rescue => e
|
2011-09-14 12:30:52 +00:00
|
|
|
# MusicBrainz: 503
|
2011-09-13 10:06:52 +00:00
|
|
|
end
|
|
|
|
break unless response.nil?
|
|
|
|
end
|
|
|
|
response
|
|
|
|
end
|
|
|
|
end
|