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