Class: PosterManager

Inherits:
Object
  • Object
show all
Defined in:
lib/filmaffinity/poster_manager.rb

Instance Method Summary collapse

Instance Method Details

#load_poster(posterurl) ⇒ Object



7
8
9
10
11
# File 'lib/filmaffinity/poster_manager.rb', line 7

def load_poster(posterurl)
  return posterurl unless FilmAffinity.configuration.imgur_id

  upload(posterurl, FilmAffinity.configuration.imgur_id)
end

#random_nameObject



31
32
33
# File 'lib/filmaffinity/poster_manager.rb', line 31

def random_name
  SecureRandom.urlsafe_base64(8)
end

#save_img_locally(posterurl) ⇒ Object



23
24
25
26
27
28
29
# File 'lib/filmaffinity/poster_manager.rb', line 23

def save_img_locally(posterurl)
  URI.parse(posterurl).open do |f|
    File.open(@dir, 'wb') do |file|
      file.puts f.read
    end
  end
end

#upload(posterurl, api_id) ⇒ Object



13
14
15
16
17
18
19
20
21
# File 'lib/filmaffinity/poster_manager.rb', line 13

def upload(posterurl, api_id)
  imgur = Imgur.new(api_id)
  @dir = "#{__dir__}/#{random_name}.jpg"
  save_img_locally(posterurl)
  local_image = Imgur::LocalImage.new(@dir)
  uploaded = imgur.upload(local_image)
  File.delete(@dir)
  uploaded.link
end