class Pictor::Client
Attributes
jid[RW]
key[RW]
nick[RW]
pass[RW]
room[RW]
Public Instance Methods
run()
click to toggle source
# File lib/pictor/client.rb, line 16 def run setup @jid, @pass # Join the MUC Chat room after connecting. when_ready do puts "Connected!" p = Blather::Stanza::Presence.new p.from = @jid p.to = "#{@room}/#{@nick}" p << "<x xmlns='http://jabber.org/protocol/muc'/>" client.write p end message :groupchat?, :body => /^Pictor:/ do |m| puts "From: #{m.from}" rxp = Regexp.new('Pictor: (.*)', 'i').match(m.body) query = rxp[1].blank? ? 'unicorn' : rxp[1] puts "Searching: #{query}" http = EventMachine::HttpRequest.new('http://ajax.googleapis.com/ajax/services/search/images').get(:query => {'key' => @key, 'v' => '1.0', 'q' => query}, :timeout => 10) http.errback { puts 'Search Failed' } http.callback { r = Yajl::Parser.parse(http.response) srand url = r['responseData']['results'].sample['unescapedUrl'] + "#.png" puts "Returning: #{url}" m = Blather::Stanza::Message.new m.to = @room m.type = :groupchat m.body = url client.write m } end client.run end