Rails: release model fixed, track model added
This commit is contained in:
parent
1da283c375
commit
5c4c5fa9aa
@ -14,7 +14,7 @@ class Release < ActiveRecord::Base
|
||||
if g_releases[release.release_group].nil?
|
||||
g_releases[release.release_group] = {}
|
||||
end
|
||||
g_releases[release.release_group][release.id] = release
|
||||
g_releases[release.release_group] << release
|
||||
end
|
||||
return g_releases
|
||||
end
|
||||
|
59
rails/app/models/track.rb
Normal file
59
rails/app/models/track.rb
Normal file
@ -0,0 +1,59 @@
|
||||
class Track < ActiveRecord::Base
|
||||
set_table_name 'musicbrainz.bh_track'
|
||||
|
||||
@@bad_names = [
|
||||
'[silence]'
|
||||
]
|
||||
|
||||
def self.getReleaseTracks(release_ids, group_by_release = false)
|
||||
|
||||
tracks = Track
|
||||
.all(:conditions => ['release_id IN(?)', release_ids], :order => 'release_id ASC, position ASC')
|
||||
.map{|track| track.length = (track.length /= 1000).round; track}
|
||||
|
||||
if group_by_release
|
||||
g_tracks = {}
|
||||
tracks.each do |track|
|
||||
if g_tracks[track.release_id].nil?
|
||||
g_tracks[track.release_id] = {}
|
||||
end
|
||||
g_tracks[track.release_id][track.id] = track
|
||||
end
|
||||
return g_tracks
|
||||
end
|
||||
|
||||
tracks
|
||||
end
|
||||
|
||||
def self.getUniqueReleaseTracks(release_ids)
|
||||
tracks = self.getReleaseTracks(release_ids, true)
|
||||
|
||||
unique_tracks = []
|
||||
track_list = {
|
||||
'album' => [],
|
||||
'bonus' => []
|
||||
}
|
||||
|
||||
tracks.shift[1].each do |track|
|
||||
unless @@bad_names.include?(track[1].name)
|
||||
track_list['album'] << track[1]
|
||||
unique_tracks << self.clearName(track[1].name)
|
||||
end
|
||||
end
|
||||
|
||||
tracks.each do |group|
|
||||
group.each do |track|
|
||||
unless @@bad_names.include?(track[1].name) && unique_tracks.include?(self.clearName(track[1].name))
|
||||
track_list['bonus'] << track[1]
|
||||
unique_tracks << self.clearName(track[1].name)
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
track_list
|
||||
end
|
||||
|
||||
def self.clearName(name)
|
||||
name.gsub('&', 'and').gsub(/[^a-z0-9]/, '').downcase
|
||||
end
|
||||
end
|
Loading…
x
Reference in New Issue
Block a user