Disable barista, xml parse refactor
This commit is contained in:
+32
-25
@@ -1,34 +1,41 @@
|
||||
class Discogs
|
||||
|
||||
def self.artists
|
||||
File.open('tmp/data/discogs_artists.xml') do |file|
|
||||
self.get_nodes('tmp/data/discogs_artists.xml', 'artist') do
|
||||
artist = Artist.new(
|
||||
:name => (node.css('name').first.text),
|
||||
:pic_url => (node.css('images > image[type="primary"]').first.attr('uri') unless node.css('images > image[type="primary"]').empty?),
|
||||
:status => 1
|
||||
)
|
||||
artist.save
|
||||
node.css('namevariations > name, aliases > name').each do |v|
|
||||
ArtistAlias.new(
|
||||
:artist_id => artist.id,
|
||||
:name => v.text
|
||||
).save
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
def self.releases
|
||||
self.get_nodes('tmp/data/discogs_releases_test.xml', 'release') do |node|
|
||||
r = {
|
||||
:pic => (node.css('images > image[type="primary"]').first.attr('uri') unless node.css('images > image[type="primary"]').empty?)
|
||||
}
|
||||
ap r
|
||||
end
|
||||
end
|
||||
|
||||
private
|
||||
|
||||
def self.get_nodes filename, nodename, &block
|
||||
File.open(filename) do |file|
|
||||
Nokogiri::XML::Reader.from_io(file).each do |node|
|
||||
if node.name == 'artist' and node.node_type == Nokogiri::XML::Reader::TYPE_ELEMENT
|
||||
self.process_artist Nokogiri::XML(node.outer_xml).root
|
||||
if node.name == nodename and node.node_type == Nokogiri::XML::Reader::TYPE_ELEMENT
|
||||
yield(Nokogiri::XML(node.outer_xml).root)
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
def self.process_artist node
|
||||
artist = Artist.new(
|
||||
:name => (node.css('name').first.text),
|
||||
:pic_url => (node.css('images > image[type="primary"]').first.attr('uri') unless node.css('images > image[type="primary"]').empty?),
|
||||
:status => 1
|
||||
)
|
||||
artist.save
|
||||
node.css('namevariations > name, aliases > name').each do |v|
|
||||
ArtistAlias.new(
|
||||
:artist_id => artist.id,
|
||||
:name => v.text
|
||||
).save
|
||||
end
|
||||
end
|
||||
|
||||
def self.releases
|
||||
|
||||
end
|
||||
|
||||
def self.process_release
|
||||
|
||||
end
|
||||
end
|
||||
@@ -0,0 +1,9 @@
|
||||
require "discogs"
|
||||
namespace :discogs do
|
||||
namespace :import do
|
||||
desc 'Import discogs releases xml'
|
||||
task :releases => :environment do
|
||||
Discogs.releases
|
||||
end
|
||||
end
|
||||
end
|
||||
Reference in New Issue
Block a user