Parsing discogs better
This commit is contained in:
		
							parent
							
								
									1a5e0cb819
								
							
						
					
					
						commit
						4398b1212a
					
				
							
								
								
									
										1
									
								
								.vagrant
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										1
									
								
								.vagrant
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1 @@
 | 
			
		||||
{"active":{"default":"71a46e2b-83dd-40e6-8ff3-4df104a58955"}}
 | 
			
		||||
@ -107,7 +107,7 @@ GEM
 | 
			
		||||
    sprockets (2.0.3)
 | 
			
		||||
      hike (~> 1.2)
 | 
			
		||||
      rack (~> 1.0)
 | 
			
		||||
      tilt (!= 1.3.0, ~> 1.1)
 | 
			
		||||
      tilt (~> 1.1, != 1.3.0)
 | 
			
		||||
    therubyracer (0.9.8)
 | 
			
		||||
      libv8 (~> 3.3.10)
 | 
			
		||||
    thor (0.14.6)
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										86
									
								
								Vagrantfile
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										86
									
								
								Vagrantfile
									
									
									
									
										vendored
									
									
										Normal file
									
								
							@ -0,0 +1,86 @@
 | 
			
		||||
Vagrant::Config.run do |config|
 | 
			
		||||
  # All Vagrant configuration is done here. The most common configuration
 | 
			
		||||
  # options are documented and commented below. For a complete reference,
 | 
			
		||||
  # please see the online documentation at vagrantup.com.
 | 
			
		||||
 | 
			
		||||
  # Every Vagrant virtual environment requires a box to build off of.
 | 
			
		||||
  config.vm.box = "base"
 | 
			
		||||
 | 
			
		||||
  # The url from where the 'config.vm.box' box will be fetched if it
 | 
			
		||||
  # doesn't already exist on the user's system.
 | 
			
		||||
  # config.vm.box_url = "http://domain.com/path/to/above.box"
 | 
			
		||||
 | 
			
		||||
  # Boot with a GUI so you can see the screen. (Default is headless)
 | 
			
		||||
  # config.vm.boot_mode = :gui
 | 
			
		||||
 | 
			
		||||
  # Assign this VM to a host only network IP, allowing you to access it
 | 
			
		||||
  # via the IP.
 | 
			
		||||
  # config.vm.network "33.33.33.10"
 | 
			
		||||
 | 
			
		||||
  # Forward a port from the guest to the host, which allows for outside
 | 
			
		||||
  # computers to access the VM, whereas host only networking does not.
 | 
			
		||||
  # config.vm.forward_port "http", 80, 8080
 | 
			
		||||
 | 
			
		||||
  # Share an additional folder to the guest VM. The first argument is
 | 
			
		||||
  # an identifier, the second is the path on the guest to mount the
 | 
			
		||||
  # folder, and the third is the path on the host to the actual folder.
 | 
			
		||||
  # config.vm.share_folder "v-data", "/vagrant_data", "../data"
 | 
			
		||||
 | 
			
		||||
  # Enable provisioning with Puppet stand alone.  Puppet manifests
 | 
			
		||||
  # are contained in a directory path relative to this Vagrantfile.
 | 
			
		||||
  # You will need to create the manifests directory and a manifest in
 | 
			
		||||
  # the file base.pp in the manifests_path directory.
 | 
			
		||||
  #
 | 
			
		||||
  # An example Puppet manifest to provision the message of the day:
 | 
			
		||||
  #
 | 
			
		||||
  # # group { "puppet":
 | 
			
		||||
  # #   ensure => "present",
 | 
			
		||||
  # # }
 | 
			
		||||
  # #
 | 
			
		||||
  # # File { owner => 0, group => 0, mode => 0644 }
 | 
			
		||||
  # #
 | 
			
		||||
  # # file { '/etc/motd':
 | 
			
		||||
  # #   content => "Welcome to your Vagrant-built virtual machine!
 | 
			
		||||
  # #               Managed by Puppet.\n"
 | 
			
		||||
  # # }
 | 
			
		||||
  #
 | 
			
		||||
  # config.vm.provision :puppet do |puppet|
 | 
			
		||||
  #   puppet.manifests_path = "manifests"
 | 
			
		||||
  #   puppet.manifest_file  = "base.pp"
 | 
			
		||||
  # end
 | 
			
		||||
 | 
			
		||||
  # Enable provisioning with chef solo, specifying a cookbooks path (relative
 | 
			
		||||
  # to this Vagrantfile), and adding some recipes and/or roles.
 | 
			
		||||
  #
 | 
			
		||||
  # config.vm.provision :chef_solo do |chef|
 | 
			
		||||
  #   chef.cookbooks_path = "cookbooks"
 | 
			
		||||
  #   chef.add_recipe "mysql"
 | 
			
		||||
  #   chef.add_role "web"
 | 
			
		||||
  #
 | 
			
		||||
  #   # You may also specify custom JSON attributes:
 | 
			
		||||
  #   chef.json = { :mysql_password => "foo" }
 | 
			
		||||
  # end
 | 
			
		||||
 | 
			
		||||
  # Enable provisioning with chef server, specifying the chef server URL,
 | 
			
		||||
  # and the path to the validation key (relative to this Vagrantfile).
 | 
			
		||||
  #
 | 
			
		||||
  # The Opscode Platform uses HTTPS. Substitute your organization for
 | 
			
		||||
  # ORGNAME in the URL and validation key.
 | 
			
		||||
  #
 | 
			
		||||
  # If you have your own Chef Server, use the appropriate URL, which may be
 | 
			
		||||
  # HTTP instead of HTTPS depending on your configuration. Also change the
 | 
			
		||||
  # validation key to validation.pem.
 | 
			
		||||
  #
 | 
			
		||||
  # config.vm.provision :chef_client do |chef|
 | 
			
		||||
  #   chef.chef_server_url = "https://api.opscode.com/organizations/ORGNAME"
 | 
			
		||||
  #   chef.validation_key_path = "ORGNAME-validator.pem"
 | 
			
		||||
  # end
 | 
			
		||||
  #
 | 
			
		||||
  # If you're using the Opscode platform, your validator client is
 | 
			
		||||
  # ORGNAME-validator, replacing ORGNAME with your organization name.
 | 
			
		||||
  #
 | 
			
		||||
  # IF you have your own Chef Server, the default validation client name is
 | 
			
		||||
  # chef-validator, unless you changed the configuration.
 | 
			
		||||
  #
 | 
			
		||||
  #   chef.validation_client_name = "ORGNAME-validator"
 | 
			
		||||
end
 | 
			
		||||
@ -9,6 +9,15 @@ class Artist < ActiveRecord::Base
 | 
			
		||||
  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
 | 
			
		||||
  
 | 
			
		||||
 | 
			
		||||
@ -144,7 +144,10 @@ class Discogs
 | 
			
		||||
      if split == 2
 | 
			
		||||
        break
 | 
			
		||||
      end
 | 
			
		||||
      if _.attr('class').match(/^main.*/) and _.css('td')[3].text.scan(/\d/).join('') != '' and _.css('a.mr_toggler').length == 1
 | 
			
		||||
      if _.attr('class').match(/^main.*/) and _.css('td')[3].text.scan(/\d/).join('') != '' and (
 | 
			
		||||
                _.css('a.mr_toggler').length == 1 or
 | 
			
		||||
                _.css('td')[1].text.match(/\(.*?Album.*?\)/).present?
 | 
			
		||||
              )
 | 
			
		||||
        albums << {
 | 
			
		||||
          :uri => (_.attr('class').match(/master/) ? 'master/' : 'release/')+_.attr('id')[1,100],
 | 
			
		||||
          :title => _.css('h4 > a').first.text,
 | 
			
		||||
@ -152,7 +155,7 @@ class Discogs
 | 
			
		||||
        }
 | 
			
		||||
      end
 | 
			
		||||
    end
 | 
			
		||||
    albums
 | 
			
		||||
    ap albums
 | 
			
		||||
  end
 | 
			
		||||
  
 | 
			
		||||
  def self.search_for_artist name
 | 
			
		||||
 | 
			
		||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user