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
|
artist_mb_data = ArtistController.musicBrainzExactSearch(name).first
|
||||||
begin
|
begin
|
||||||
artist_lastfm = lastfm.artist.get_info(name)
|
artist_lastfm = lastfm.artist.get_info(name)
|
||||||
artist_mb = brainz.artist(artist_lastfm['mbid'])
|
artist_mb = brainz.artist(artist_mb_data[:mbid])
|
||||||
rescue
|
rescue => e
|
||||||
return
|
ap e.message
|
||||||
|
ap e.backtrace
|
||||||
end
|
end
|
||||||
|
|
||||||
# Save artist
|
# Save artist
|
||||||
@ -37,7 +38,7 @@ class ImportController < ApplicationController
|
|||||||
artist.mbid = artist_lastfm['mbid']
|
artist.mbid = artist_lastfm['mbid']
|
||||||
|
|
||||||
# Get albums from MB
|
# 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|
|
release_groups_mb.each do |mb_album|
|
||||||
|
|
||||||
# Get album releases from MB
|
# Get album releases from MB
|
||||||
@ -64,11 +65,17 @@ class ImportController < ApplicationController
|
|||||||
tracks_mb = []
|
tracks_mb = []
|
||||||
tracks_mb_r = brainz.release(main_release['id'], {'inc' => 'recordings'})['release']['medium_list']['medium']
|
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.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']
|
tracks_mb = tracks_mb_r['track_list']['track']
|
||||||
elsif tracks_mb_r.is_a? Array
|
elsif tracks_mb_r.is_a? Array
|
||||||
tracks_mb = tracks_mb_r.shift['track_list']['track']
|
tracks_mb = tracks_mb_r.shift['track_list']['track']
|
||||||
tracks_mb_r.each do |cd|
|
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']
|
tracks_mb |= cd['track_list']['track']
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
@ -108,9 +115,15 @@ class ImportController < ApplicationController
|
|||||||
other_tracks_mb = []
|
other_tracks_mb = []
|
||||||
other_tracks_mb_r = brainz.release(mb_release['id'], {'inc' => 'recordings'})['release']['medium_list']['medium']
|
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.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']
|
other_tracks_mb = other_tracks_mb_r['track_list']['track']
|
||||||
elsif other_tracks_mb_r.is_a? Array
|
elsif other_tracks_mb_r.is_a? Array
|
||||||
other_tracks_mb_r.each do |cd|
|
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']
|
other_tracks_mb |= cd['track_list']['track']
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
@ -150,7 +163,9 @@ class ImportController < ApplicationController
|
|||||||
|
|
||||||
artist.status = 1
|
artist.status = 1
|
||||||
|
|
||||||
rescue
|
rescue => e
|
||||||
|
ap e.message
|
||||||
|
ap e.backtrace
|
||||||
artist.status = 2
|
artist.status = 2
|
||||||
end
|
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'
|
desc 'Imports test data from MusicBrainz database'
|
||||||
task :import => :environment do
|
task :import => :environment do
|
||||||
|
|
||||||
ati = ['Marilyn Manson']
|
ati = ['The Lonely Island']
|
||||||
ati.each do |name|
|
ati.each do |name|
|
||||||
ImportController.importArtist(name)
|
ImportController.importArtist(name)
|
||||||
#ap res = ArtistController.musicBrainzExactSearch(name)
|
#ap res = ArtistController.musicBrainzExactSearch(name)
|
||||||
|
@ -50,6 +50,7 @@ var Search = {
|
|||||||
showError: function() {
|
showError: function() {
|
||||||
$('.artist_loading.ok, .artist_pics').hide();
|
$('.artist_loading.ok, .artist_pics').hide();
|
||||||
$('.artist_loading.failed').show();
|
$('.artist_loading.failed').show();
|
||||||
|
Search.pics = []
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user