Sorting, tests
This commit is contained in:
@@ -1,6 +1,10 @@
|
||||
module MusicBrainz
|
||||
@@last_query_time = 0
|
||||
@@query_interval = 1.1
|
||||
@@query_interval = 1.5 # Min: 1.0 Safe: 1.5
|
||||
|
||||
def self.query_interval sec
|
||||
@@query_interval = sec.to_f
|
||||
end
|
||||
|
||||
def self.load url
|
||||
sleep @@query_interval - (Time.now.to_f - @@last_query_time) if Time.now.to_f - @@last_query_time < @@query_interval
|
||||
@@ -10,7 +14,7 @@ module MusicBrainz
|
||||
response = open(url, "User-Agent" => "gem musicbrainz (https://github.com/magnolia-fan/musicbrainz) @ " + Socket.gethostname)
|
||||
@@last_query_time = Time.now.to_f
|
||||
rescue => e
|
||||
p "MusicBrainz: 503"
|
||||
# MusicBrainz: 503
|
||||
end
|
||||
break unless response.nil?
|
||||
end
|
||||
|
||||
@@ -12,7 +12,7 @@ module MusicBrainz
|
||||
@release_groups << MusicBrainz::ReleaseGroup.parse_xml(rg)
|
||||
end
|
||||
end
|
||||
@release_groups
|
||||
@release_groups.sort{ |a, b| a.first_release_date <=> b.first_release_date }
|
||||
end
|
||||
|
||||
def self.find mbid
|
||||
|
||||
@@ -10,7 +10,7 @@ module MusicBrainz
|
||||
@tracks << MusicBrainz::Track.parse_xml(r)
|
||||
end
|
||||
end
|
||||
@tracks
|
||||
@tracks.sort{ |a, b| a.position <=> b.position }
|
||||
end
|
||||
|
||||
def self.find mbid
|
||||
@@ -23,17 +23,16 @@ module MusicBrainz
|
||||
@release.id = xml.attr('id')
|
||||
@release.title = xml.css('title').text unless xml.css('title').empty?
|
||||
@release.status = xml.css('status').text unless xml.css('status').empty?
|
||||
date = nil
|
||||
date = xml.css('date').text unless xml.css('date').empty?
|
||||
unless date.nil? or date.empty?
|
||||
if date.length == 4
|
||||
date += '-01-01'
|
||||
elsif date.length == 7
|
||||
date += '-01'
|
||||
end
|
||||
date = Time.parse(date)
|
||||
date = xml.css('date').empty? ? '9999-12-31' : xml.css('date').text
|
||||
if date.length == 0
|
||||
date = '9999-12-31'
|
||||
elsif date.length == 4
|
||||
date += '-12-31'
|
||||
elsif date.length == 7
|
||||
date += '-31'
|
||||
end
|
||||
@release.date = date
|
||||
date = date.split('-')
|
||||
@release.date = Time.utc(date[0], date[1], date[2])
|
||||
@release.country = xml.css('country').text unless xml.css('country').empty?
|
||||
@release
|
||||
end
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
module MusicBrainz
|
||||
class ReleaseGroup
|
||||
attr_accessor :id, :type, :title, :first_release_date
|
||||
attr_accessor :id, :type, :title, :disambiguation, :first_release_date
|
||||
@releases
|
||||
|
||||
def releases
|
||||
@@ -10,7 +10,7 @@ module MusicBrainz
|
||||
@releases << MusicBrainz::Release.parse_xml(r)
|
||||
end
|
||||
end
|
||||
@releases
|
||||
@releases.sort{ |a, b| a.date <=> b.date }
|
||||
end
|
||||
|
||||
def self.find mbid
|
||||
@@ -22,18 +22,18 @@ module MusicBrainz
|
||||
@release_group = MusicBrainz::ReleaseGroup.new
|
||||
@release_group.id = xml.attr('id')
|
||||
@release_group.type = xml.attr('type')
|
||||
@release_group.title = xml.css('title').text unless xml.css('title').empty?
|
||||
date = nil
|
||||
date = xml.css('first-release-date').text unless xml.css('first-release-date').empty?
|
||||
unless date.nil? or date.empty?
|
||||
if date.length == 4
|
||||
date += '-01-01'
|
||||
elsif date.length == 7
|
||||
date += '-01'
|
||||
end
|
||||
date = Time.parse(date)
|
||||
@release_group.title = xml.css('title').text
|
||||
@release_group.disambiguation = xml.css('disambiguation').empty? ? '' : xml.css('disambiguation').text
|
||||
date = xml.css('first-release-date').empty? ? '9999-12-31' : xml.css('first-release-date').text
|
||||
if date.length == 0
|
||||
date = '9999-12-31'
|
||||
elsif date.length == 4
|
||||
date += '-12-31'
|
||||
elsif date.length == 7
|
||||
date += '-31'
|
||||
end
|
||||
@release_group.first_release_date = date
|
||||
date = date.split('-')
|
||||
@release_group.first_release_date = Time.utc(date[0], date[1], date[2])
|
||||
@release_group
|
||||
end
|
||||
end
|
||||
|
||||
Reference in New Issue
Block a user