class Plugins::Gif
Public Class Methods
new(*args)
click to toggle source
Calls superclass method
# File lib/Zeta/plugins/gif.rb, line 15 def initialize(*args) super @imgurray = [] @last_update = Time end
Public Instance Methods
gifme(msg,query)
click to toggle source
# File lib/Zeta/plugins/gif.rb, line 29 def gifme(msg,query) msg.reply "GB↦ #{search(query)}" end
imgif(msg)
click to toggle source
# File lib/Zeta/plugins/gif.rb, line 24 def imgif(msg) msg.reply "IMGUR↦ #{imgur}" end
Private Instance Methods
gifbin()
click to toggle source
# File lib/Zeta/plugins/gif.rb, line 46 def gifbin parser = URI::Parser.new url = parser.escape 'http://www.gifbin.com/random' doc = Nokogiri.HTML(RestClient.get(url).body) doc.css('div#gifcontainer a img').attribute('src').text end
imgur()
click to toggle source
# File lib/Zeta/plugins/gif.rb, line 54 def imgur # Cache results for 1 hour if @imgurray.empty? || @last_update >= (Time.now + 3600) parser = URI::Parser.new url = parser.escape('http://reddit.com/r/gifs.json') doc = JSON.load(RestClient.get(url).body) doc['data']['children'].each_with_index do |post, index| if doc['data']['children'][index]['data']['url'].to_s =~ /imgur/ @imgurray << doc['data']['children'][index]['data']['url'].to_s end end @last_update = Time.now @imgurray.sample else @imgurray.sample end end
search(query)
click to toggle source
# File lib/Zeta/plugins/gif.rb, line 35 def search(query) parser = URI::Parser.new url = parser.escape "http://www.gifbin.com/search/#{query}/" doc = Nokogiri::HTML( RestClient.get(url).body ) e = doc.css('.thumbs li').length return "No Results Found" if e == 0 result = doc.css('.thumbs li')[rand(e)].css('a img').attribute('src').text.gsub(/tn_/, '') "http://www.gifbin.com#{result}" end