require 'open-uri' require 'cinch' # Automatically shorten URL's found in messages # Using the tinyURL API bot = Cinch::Bot.new do configure do |c| c.server = "irc.freenode.org" c.channels = ["#cinch-bots"] end helpers do def shorten(url) url = open("http://tinyurl.com/api-create.php?url=#{URI.escape(url)}").read url == "Error" ? nil : url rescue OpenURI::HTTPError nil end end on :channel do |m| urls = URI.extract(m.message, "http") unless urls.empty? short_urls = urls.map {|url| shorten(url) }.compact unless short_urls.empty? m.reply short_urls.join(", ") end end end end bot.start