Un jour, une gem

15/01/2012

Dimanche c'est Cinch

gem install cinch

Le framework pour faire son bot IRC

Aujourd’hui c’est dimanche. C’est donc le jour de la gem utile mais pas trop. Mesdames, Messieurs, laissez-moi vous présenter Cinch, qui permet de créer votre bot pour IRC.

Par exemple, répondre à une phrase donnée ou faire des requêtes Google :

Ruby

require 'rubygems'
require 'cinch'
require 'open-uri'
require 'nokogiri'
require 'cgi'

bot = Cinch::Bot.new do
  configure do |c|
    c.server = "irc.freenode.org"
    c.nick     = "Bonjourgem"
    c.channels = ["#bonjourgem-bots"]
  end

  on :message, "mer il est fou" do |m|
    m.reply "Mais si j'etais vous seriez vous #{m.user.nick} ?"
  end
  
  on :message, /^!google (.+)/ do |m, query|
    m.reply google(query)
  end
  
  helpers do
    def google(query)
      url = "http://www.google.com/search?q=#{CGI.escape(query)}"
      res = Nokogiri::HTML(open(url)).at("h3.r")
      title = res.text
      link = res.at('a')[:href]
      desc = res.at("./following::div").children.first.text
    rescue
      "Pas de resultat"
    else
      CGI.unescape_html "#{title} - #{desc} (#{link})"
    end
  end 
end

bot.start

Voilà je vous laisse essayer ce petit bot. Demandez-lui par exemple :

!google mer il est fou ?

ou

mer il est fou

Libre à vous d’utiliser cette ressource pour créer un petit quizz ou spammer vos potes d’IRC ! 

Quelques liens utiles :