lib/muzang-plugins/muzang-meme.rb in muzang-plugins-1.1.1 vs lib/muzang-plugins/muzang-meme.rb in muzang-plugins-1.1.2

- old
+ new

@@ -1,51 +1,92 @@ require "em-http-request" require "json" +require "memetron" class Meme include Muzang::Plugins::Helpers + + MEMES = { - "idont" => { :image_id => 2485, :generator => 74 }, - "yuno" => { :image_id => 166088, :generator => 2 }, - "orly" => { :image_id => 117049, :generator => 920 }, - "suc" => { :image_id => 1031, :generator => 121 }, - "all" => { :image_id => 1121885, :generator => 6013 } + dos_equis: { image_id: 2485, generator: 74 }, + y_u_no?: { image_id: 166088, generator: 2 }, + bear_grylls: { image_id: 89714, generator: 92 }, + fry: { image_id: 84688, generator: 305 }, + orly: { image_id: 117049, generator: 920 }, + all: { image_id: 1121885, generator: 6013 } } def initialize(bot) - @bot = bot + @bot = bot + @matcher = Memetron::Matcher.new end def call(connection, message) message.message.match(/^meme$/) do connection.msg("#{@bot.channels.first}", "Type 'meme [name of meme] \"Text0\" \"Text1\"'") connection.msg("#{@bot.channels.first}", "Available memes: #{MEMES.keys.join(" ")}") end message.message.match(/^meme (.*?) "(.*?)"( "(.*?)")?$/) do |m| - if meme_ids = MEMES[m[1]] + if meme_ids = MEMES[m[1].to_sym] @generator = meme_ids[:generator] @image_id = meme_ids[:image_id] else return nil end @text0 = m[2] @text1 = m[4] + + create_instance(connection) + end + + on_channel(message) do + if meme = @matcher.match_and_parse(message.message) + @generator = MEMES[meme.first][:generator] + @image_id = MEMES[meme.first][:image_id] - http = EventMachine::HttpRequest.new('http://version1.api.memegenerator.net/Instance_Create') - .get(:query => {:username => 'drug-bot', - :password => 'drug-bot', - :languageCode => 'en', - :generatorID => @generator, - :imageID => @image_id, - :text0 => @text0, - :text1 => @text1}) + case meme.first + when :dos_equis + @text0 = "I don't always #{meme[1][0]}" + @text1 = "but when I do #{meme[1][1]}" + when :y_u_no? + @text0 = "Y U NO" + @text1 = meme[1][1] + when :bear_grylls + @text0 = meme[1][0] + @text1 = "better drink my own piss" + when :fry + @text0 = "not sure if #{meme[1][1]}" + @text1 = "or #{meme[1][2]}" + when :orly + @text0 = meme[1][0] + @text1 = "ORLY?" + when :all + @text0 = meme[1][0] + @text1 = "all the things!" + else + @text0 = meme[1][0] + @text1 = meme[1][1] + end + create_instance(connection) + end + end + end - http.callback { - meme = JSON.parse(http.response) - url = "http://version1.api.memegenerator.net#{meme['result']['instanceImageUrl']}" - connection.msg("#{@bot.channels.first}", "Meme: #{url}") - } - end + def create_instance(connection) + http = EventMachine::HttpRequest.new('http://version1.api.memegenerator.net/Instance_Create') + .get(:query => {:username => 'drug-bot', + :password => 'drug-bot', + :languageCode => 'en', + :generatorID => @generator, + :imageID => @image_id, + :text0 => @text0, + :text1 => @text1}) + + http.callback { + meme = JSON.parse(http.response) + url = "http://version1.api.memegenerator.net#{meme['result']['instanceImageUrl']}" + connection.msg("#{@bot.channels.first}", "Meme: #{url}") + } end -end \ No newline at end of file +end