Final import fix (i hope).
This commit is contained in:
parent
96c3d925df
commit
3c11bcd8d7
@ -25,9 +25,10 @@ class ImportController < ApplicationController
|
||||
artist_mb_data = ArtistController.musicBrainzExactSearch(name).first
|
||||
begin
|
||||
artist_lastfm = lastfm.artist.get_info(name)
|
||||
artist_mb = brainz.artist(artist_lastfm['mbid'])
|
||||
rescue
|
||||
return
|
||||
artist_mb = brainz.artist(artist_mb_data[:mbid])
|
||||
rescue => e
|
||||
ap e.message
|
||||
ap e.backtrace
|
||||
end
|
||||
|
||||
# Save artist
|
||||
@ -37,7 +38,7 @@ class ImportController < ApplicationController
|
||||
artist.mbid = artist_lastfm['mbid']
|
||||
|
||||
# Get albums from MB
|
||||
release_groups_mb = brainz.release_group(nil, :artist => artist_lastfm['mbid'])['release_group_list']['release_group']
|
||||
release_groups_mb = brainz.release_group(nil, :artist => artist_mb_data[:mbid])['release_group_list']['release_group']
|
||||
release_groups_mb.each do |mb_album|
|
||||
|
||||
# Get album releases from MB
|
||||
@ -64,11 +65,17 @@ class ImportController < ApplicationController
|
||||
tracks_mb = []
|
||||
tracks_mb_r = brainz.release(main_release['id'], {'inc' => 'recordings'})['release']['medium_list']['medium']
|
||||
if tracks_mb_r.is_a? Hash
|
||||
if tracks_mb_r['track_list']['track'].is_a? Hash
|
||||
tracks_mb_r['track_list']['track'] = [tracks_mb_r['track_list']['track']]
|
||||
end
|
||||
tracks_mb = tracks_mb_r['track_list']['track']
|
||||
elsif tracks_mb_r.is_a? Array
|
||||
tracks_mb = tracks_mb_r.shift['track_list']['track']
|
||||
tracks_mb_r.each do |cd|
|
||||
cd['track_list']['track'].map! { |mb_track| mb_track['bonus'] = 1 }
|
||||
if cd['track_list']['track'].is_a? Hash
|
||||
cd['track_list']['track'] = [cd['track_list']['track']]
|
||||
end
|
||||
cd['track_list']['track'].each { |mb_track| mb_track['bonus'] = 1 }
|
||||
tracks_mb |= cd['track_list']['track']
|
||||
end
|
||||
end
|
||||
@ -108,9 +115,15 @@ class ImportController < ApplicationController
|
||||
other_tracks_mb = []
|
||||
other_tracks_mb_r = brainz.release(mb_release['id'], {'inc' => 'recordings'})['release']['medium_list']['medium']
|
||||
if other_tracks_mb_r.is_a? Hash
|
||||
if other_tracks_mb_r['track_list']['track'].is_a? Hash
|
||||
other_tracks_mb_r['track_list']['track'] = [other_tracks_mb_r['track_list']['track']]
|
||||
end
|
||||
other_tracks_mb = other_tracks_mb_r['track_list']['track']
|
||||
elsif other_tracks_mb_r.is_a? Array
|
||||
other_tracks_mb_r.each do |cd|
|
||||
if cd['track_list']['track'].is_a? Hash
|
||||
cd['track_list']['track'] = [cd['track_list']['track']]
|
||||
end
|
||||
other_tracks_mb |= cd['track_list']['track']
|
||||
end
|
||||
end
|
||||
@ -150,7 +163,9 @@ class ImportController < ApplicationController
|
||||
|
||||
artist.status = 1
|
||||
|
||||
rescue
|
||||
rescue => e
|
||||
ap e.message
|
||||
ap e.backtrace
|
||||
artist.status = 2
|
||||
end
|
||||
|
||||
|
20
lib/tasks/db_cleanup.rake
Normal file
20
lib/tasks/db_cleanup.rake
Normal file
@ -0,0 +1,20 @@
|
||||
namespace :db do
|
||||
desc 'Cleans artist-album-track relations clean'
|
||||
task :cleanup => :environment do
|
||||
|
||||
albums = Album.all
|
||||
albums.each do |album|
|
||||
if album.artist.nil?
|
||||
album.delete
|
||||
end
|
||||
end
|
||||
|
||||
tracks = Track.all
|
||||
tracks.each do |track|
|
||||
if track.album.nil?
|
||||
track.delete
|
||||
end
|
||||
end
|
||||
|
||||
end
|
||||
end
|
@ -4,7 +4,7 @@ namespace :db do
|
||||
desc 'Imports test data from MusicBrainz database'
|
||||
task :import => :environment do
|
||||
|
||||
ati = ['Marilyn Manson']
|
||||
ati = ['The Lonely Island']
|
||||
ati.each do |name|
|
||||
ImportController.importArtist(name)
|
||||
#ap res = ArtistController.musicBrainzExactSearch(name)
|
||||
|
@ -50,6 +50,7 @@ var Search = {
|
||||
showError: function() {
|
||||
$('.artist_loading.ok, .artist_pics').hide();
|
||||
$('.artist_loading.failed').show();
|
||||
Search.pics = []
|
||||
}
|
||||
}
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user