36 lines
665 B
Ruby
36 lines
665 B
Ruby
require 'rss'
|
|
require 'yaml'
|
|
|
|
class RssEmitter
|
|
def initialize(bot)
|
|
@bot = bot
|
|
end
|
|
def start
|
|
cache = YAML.load_file('cache.yml')
|
|
while true
|
|
sleep 10
|
|
cache.each do |feed|
|
|
rss = RSS::Parser.parse(feed.url)
|
|
rss.items.each do |item|
|
|
if item.date > feed.date then
|
|
@send_link(rss, item)
|
|
end
|
|
end
|
|
end
|
|
File.write('cache.yml', cache.to_yaml)
|
|
end
|
|
end
|
|
def send_link(rss, item)
|
|
@bot.handlers.dispatch(:rss, rss.channel.title, item.link)
|
|
end
|
|
end
|
|
|
|
class Rss
|
|
include Cinch::Plugin
|
|
|
|
listen_to :rss
|
|
def listen(m, title, link)
|
|
print "#{title}: #{link}"
|
|
end
|
|
end
|