Class: Meminator::Meminator

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

Instance Method Summary collapse

Instance Method Details

#fetch(url, params) ⇒ Object



42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
# File 'lib/meminator.rb', line 42

def fetch(url, params)
  params = params.collect { |k,v| "#{k}=#{CGI::escape(v.to_s)}" }.join('&')
  Net::HTTP.start url.host do |http|
    get = Net::HTTP::Get.new url.path + "?#{params}"
    get['User-Agent'] = ::Meminator.user_agent

    res = http.request get

    unless  Net::HTTPSuccess === res
      raise Error, "memegenerator.net appears to be down, got #{res.code}"
    end

    ret = JSON.load(res.body)

    if ret["success"]
      return "#{DISPLAY_URL}/instances/400x/#{ret["result"]["instanceID"]}.jpg"
    end
  end
end

#get_url(meme, *text) ⇒ Object



15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
# File 'lib/meminator.rb', line 15

def get_url(meme, *text)
  template_id, template_type, generator_name, imageID = List.get(meme)

  unless template_id
    return "Couldn't find template #{meme}"
  end

  url = URI.parse(GENERATOR_URL)

  params = { 'username'      => ::Meminator.username,
             'password'      => ::Meminator.password,
             'templateType'  => template_type,
             'generatorID'   => template_id,
             'imageID'       => imageID,
             'generatorName' => generator_name }

  text.compact.each_with_index do |item, idx|
     params.merge! "text#{idx}" => item
  end

  begin
    return fetch(url, params)
  rescue Error => e
    return e.message
  end
end