Artist wipe, local brainz
This commit is contained in:
@@ -37,7 +37,15 @@ class ImportController < ApplicationController
|
||||
artist.listeners = lastfm_artist['artist']['stats']['listeners']
|
||||
artist.artist_type = brainz_artist.type
|
||||
artist.mbid = brainz_artist.id
|
||||
dry_run ? ap(artist) : artist.save
|
||||
artist.save
|
||||
|
||||
brainz_artist.urls.each do |service, url|
|
||||
ArtistLink.new(
|
||||
:artist_id => artist.id,
|
||||
:service => service.to_s,
|
||||
:url => url
|
||||
).save
|
||||
end
|
||||
|
||||
brainz_artist.release_groups.each do |brainz_release_group|
|
||||
# Saving album
|
||||
@@ -56,12 +64,30 @@ class ImportController < ApplicationController
|
||||
album.pic_url = album_image
|
||||
album.has_pic = (album_image != '' and not album_image.nil?)
|
||||
album.status = 0
|
||||
dry_run ? ap(album) : album.save
|
||||
album.save
|
||||
# Tracks from the first release
|
||||
tracks_hashed = []
|
||||
brainz_release_group.releases.each_with_index do |brainz_release, i|
|
||||
local_brainz_release = LocalBrainz::Release.new(
|
||||
:mbid => brainz_release.id,
|
||||
:title => brainz_release.title,
|
||||
:status => brainz_release.status,
|
||||
:date => brainz_release.date,
|
||||
:country => brainz_release.country,
|
||||
:format => brainz_release.format,
|
||||
:album_id => album.id
|
||||
)
|
||||
local_brainz_release.save
|
||||
# Processing tracks
|
||||
brainz_release.tracks.each do |brainz_track|
|
||||
local_brainz_track = LocalBrainz::Track.new(
|
||||
:position => brainz_track.position,
|
||||
:recording_id => brainz_track.recording_id,
|
||||
:title => brainz_track.title,
|
||||
:length => brainz_track.length,
|
||||
:release_id => local_brainz_release.id
|
||||
)
|
||||
local_brainz_track.save
|
||||
track_title = brainz_track.title.gsub(/\s\/\s\[.*?\]/, '')
|
||||
if tracks_hashed.include? track_title.downcase.scan(/[a-z0-9]*/).join
|
||||
next
|
||||
@@ -77,7 +103,7 @@ class ImportController < ApplicationController
|
||||
track.live = track_title.downcase.include? 'live'
|
||||
track.acoustic = track_title.downcase.include? 'acoustic'
|
||||
track.mbid = brainz_track.recording_id
|
||||
dry_run ? ap(track) : track.save
|
||||
track.save
|
||||
end
|
||||
end
|
||||
album.status = 1
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
class Album < ActiveRecord::Base
|
||||
belongs_to :artist
|
||||
has_many :tracks, :order => 'bonus ASC, position ASC', :dependent => :destroy
|
||||
has_many :local_brainz_releases, :class_name => 'LocalBrainz::Release', :dependent => :destroy
|
||||
end
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
class Artist < ActiveRecord::Base
|
||||
has_many :albums, :order => 'has_pic DESC, year ASC, id ASC', :dependent => :destroy
|
||||
has_many :artist_links, :dependent => :destroy
|
||||
end
|
||||
|
||||
@@ -0,0 +1,3 @@
|
||||
class ArtistLink < ActiveRecord::Base
|
||||
belongs_to :artist
|
||||
end
|
||||
@@ -0,0 +1,5 @@
|
||||
module LocalBrainz
|
||||
def self.table_name_prefix
|
||||
'local_brainz_'
|
||||
end
|
||||
end
|
||||
@@ -0,0 +1,4 @@
|
||||
class LocalBrainz::Release < ActiveRecord::Base
|
||||
belongs_to :album, :class_name => 'Album'
|
||||
has_many :local_brainz_tracks, :class_name => 'LocalBrainz::Track', :dependent => :destroy
|
||||
end
|
||||
@@ -0,0 +1,3 @@
|
||||
class LocalBrainz::Track < ActiveRecord::Base
|
||||
belongs_to :local_brainz_release, :class_name => 'LocalBrainz::Release'
|
||||
end
|
||||
Reference in New Issue
Block a user