30 lines
718 B
Ruby
30 lines
718 B
Ruby
class Artist < ActiveRecord::Base
|
|
has_many :albums, :conditions => ['has_pic = 1'], :order => 'year ASC', :dependent => :destroy
|
|
has_many :artist_links, :dependent => :destroy
|
|
has_many :artist_aliases, :dependent => :destroy
|
|
has_many :tracks, :through => :track_artists
|
|
|
|
after_initialize :prepare_description
|
|
|
|
def status_str
|
|
%w(loading ok fail)[self.status]
|
|
end
|
|
|
|
def load_again!
|
|
albums.each(&:destroy)
|
|
artist_links.each(&:destroy)
|
|
artist_aliases.each(&:destroy)
|
|
self.status = 0
|
|
save!
|
|
Delayed::Job.enqueue(LoadArtistJob.new(name))
|
|
end
|
|
|
|
private
|
|
|
|
def prepare_description
|
|
self.desc.gsub!(/[\[<].*?[\]>]/, '') unless self.desc.nil?
|
|
rescue
|
|
# WTF?!
|
|
end
|
|
end
|