#!/usr/bin/env ruby require 'IRC' require 'uri' require 'net/http' require 'rexml/document' #require 'IRCSSLConnection' url = 'http://www3.de.indymedia.org/RSS/openposting.xml' fetching_pause = 120 messaging_pause = 5 #host = '209.51.169.94' # che #host = '209.44.112.163' # guerin #port = '6697' #port = '6667' host = 'localhost' port = '691' realname = 'openposting bot' channel = '#test' bot = IRC.new('openposting_', host, port, realname) IRCEvent.add_callback('endofmotd') { |event| bot.add_channel(channel) } botthread = Thread.new(bot) { |bot| bot.connect } fetched = [] iteration = 0 while true do sleep fetching_pause xml = REXML::Document.new(Net::HTTP.get_response(URI.parse(url)).body) puts fetched.inspect xml.elements.each('//item') do |element| unless fetched.include?(element.elements['link'].text) fetched.push(element.elements['link'].text) next if iteration == 0 bot.send_message( channel, element.elements['title'].text + ' | ' + element.elements['link'].text + ' | ' + element.elements['description'].text.gsub(/<.*?>/, ' ').gsub(/ {2,}/, ' ').strip ) sleep messaging_pause end end iteration += 1 end