lib/muzang-plugins/muzang-meme.rb in muzang-plugins-1.1.4 vs lib/muzang-plugins/muzang-meme.rb in muzang-plugins-1.1.5
- old
+ new
@@ -1,101 +1,112 @@
require "em-http-request"
require "json"
require "memetron"
require "soup-client"
-class Meme
- include Muzang::Plugins::Helpers
+module Muzang
+ module Plugins
+ class Meme
+ include Muzang::Plugins::Helpers
- MEMES = {
- 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 },
- obama: { image_id: 2154021, generator: 372781 }
- }
+ MEMES = {
+ 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 },
+ obama: { image_id: 2154021, generator: 372781 }
+ }
- def initialize(bot)
- @bot = bot
- @matcher = Memetron::Matcher.new
- @soup = File.open(ENV["HOME"] + "/.muzang/" + "soup").read.split(":") rescue nil
- 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].to_sym]
- @generator = meme_ids[:generator]
- @image_id = meme_ids[:image_id]
- else
- return nil
+ def initialize(bot)
+ @bot = bot
+ @matcher = Memetron::Matcher.new
+ @soup = File.open(ENV["HOME"] + "/.muzang/" + "soup").read.split(":") rescue 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]
-
- 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 = meme[1][0] + " 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!"
- when :obama
- @text0 = meme[1][0]
- @text1 = "not bad"
- else
- @text0 = meme[1][0]
- @text1 = meme[1][1]
+ 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].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
- end
- 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]
- 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})
+ 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 = meme[1][0] + "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!"
+ when :obama
+ @text0 = meme[1][0]
+ @text1 = "not bad"
+ 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}")
- if @soup
- soup = Soup::Client.new(@soup.first, @soup.last.chomp)
- soup.login
- soup.new_image(url)
+ 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)
+ instance = meme['result']['instanceImageUrl']
+
+ if instance.include?("images")
+ url = instance
+ else
+ url = "http://iversion1.api.memegenerator.net#{instance}"
+ end
+
+ connection.msg("#{@bot.channels.first}", "Meme: #{url}")
+ if @soup
+ soup = Soup::Client.new(@soup.first, @soup.last.chomp)
+ soup.login
+ soup.new_image(url)
+ end
+ }
end
- }
+ end
end
end