botpop/plugins/youtube.rb
2015-08-17 15:16:10 +02:00

37 lines
858 B
Ruby

require 'mechanize'
class Youtube < Botpop::Plugin
include Cinch::Plugin
match(/!yt (.+)/, use_prefix: false, method: :find_youtube_video)
HELP = ["!yt title"]
ENABLED = config['enable'].nil? ? false : config['enable']
CONFIG = config
private
def search_url(title)
CONFIG['search_url'].gsub('___MSG___', title)
end
def reduce_url(url)
CONFIG['reduce_url'].gsub('___ID___', url.gsub(/^(.+)(v=)(\w+)$/, '\3'))
end
def display(result)
CONFIG['display']
.gsub('___TITLE___', result[:title])
.gsub('___URL___', reduce_url(result[:url]))
end
public
def find_youtube_video m, title
e = Mechanize.new
e.get(search_url(title))
result = {
title: e.page.at(".item-section li").at('h3').text,
url: e.page.at(".item-section li").at('a')[:href],
}
m.reply display(result)
end
end