rendered paste body#!/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