47 lines
1.2 KiB
Ruby
47 lines
1.2 KiB
Ruby
require 'nokogiri'
|
|
require 'net/http'
|
|
|
|
class Anecdote < Botpop::Plugin
|
|
include Cinch::Plugin
|
|
|
|
match(/!a(necdote)? (.+)/, use_prefix: false, method: :exec_new)
|
|
|
|
HELP = ["!anecdote <...>"]
|
|
ENABLED = config['enable'].nil? ? false : config['enable']
|
|
CONFIG = config
|
|
|
|
def exec_new m, _, s
|
|
s.downcase!
|
|
f = I18n.transliterate(s)[0]
|
|
x = "Après je vous propose "
|
|
x += (%w(a e i o u y).include?(f) ? "d'" : "de ") if not s.match(/^(d'|de ).+/)
|
|
s = x + s
|
|
url = URI.parse 'http://memegenerator.net/create/instance'
|
|
post_data = {
|
|
'imageID' => 14185932,
|
|
'generatorID' => 5374051,
|
|
'watermark1' => 1,
|
|
'uploadtoImgur' => 'true',
|
|
'text0' => s,
|
|
'text1' => "Ca fera une petite anecdote !!",
|
|
}
|
|
meme = nil
|
|
begin
|
|
Net::HTTP.start url.host do |http|
|
|
post = Net::HTTP::Post.new url.path
|
|
post.set_form_data post_data
|
|
res = http.request post
|
|
location = res['Location']
|
|
redirect = url + location
|
|
get = Net::HTTP::Get.new redirect.request_uri
|
|
res = http.request get
|
|
doc = Nokogiri.HTML res.body
|
|
meme = doc.css("meta")[7]['content']
|
|
end
|
|
rescue => _err
|
|
end
|
|
m.reply meme ? meme : "Achtung ! ACHTUUUUNG !!!"
|
|
end
|
|
|
|
end
|