Class: Wallbum::DiscogsHelper

Inherits:
Object
  • Object
show all
Defined in:
lib/wallbum/discogs_helper.rb

Instance Method Summary collapse

Constructor Details

#initializeDiscogsHelper

Returns a new instance of DiscogsHelper.



6
7
8
# File 'lib/wallbum/discogs_helper.rb', line 6

def initialize
  @discogs_wrapper = Discogs::Wrapper.new('wallbum')
end

Instance Method Details

#get_artist_images(artist_id, &block) ⇒ Object



34
35
36
37
38
39
40
41
42
43
# File 'lib/wallbum/discogs_helper.rb', line 34

def get_artist_images(artist_id, &block)
  get_discogs_releases(artist_id).each do |release|
    begin
      get_release_images(release) do |filename, image|
        yield filename, image
      end
    rescue Discogs::UnknownResource
    end
  end
end

#get_discogs_artist_id(name) ⇒ Object



10
11
12
# File 'lib/wallbum/discogs_helper.rb', line 10

def get_discogs_artist_id(name)
  @discogs_wrapper.search(name, type: :artist).results.first.id
end

#get_discogs_releases(artist_id) ⇒ Object



14
15
16
# File 'lib/wallbum/discogs_helper.rb', line 14

def get_discogs_releases(artist_id)
  @discogs_wrapper.get_artist_releases(artist_id).releases
end

#get_release_images(release, &block) ⇒ Object



18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
# File 'lib/wallbum/discogs_helper.rb', line 18

def get_release_images(release, &block)
  return unless ['Main', 'Remix'].include? release.role
  puts "Downloading '#{release.title}'"
  release_images = @discogs_wrapper.get_release(release.main_release).images
  unless release_images.nil?
    filenames = release_images.map { |image| image.resource_url.split("/").last }
    filenames.each do |fn|
      yield fn,
        open(
          "http://s.pixogs.com/image/#{fn}",
          "User-Agent" => "Mozilla/5.0",
          "Referer" => "http://www.discogs.com/viewimages?release=#{release.main_release}")
    end
  end
end