#!/usr/bin/env ruby
require File.join(File.dirname(__FILE__), 'common')

log = Logger.new LOG_FILE

cache = 
  if File.exist? CACHE_FILE
    YAML.load open(CACHE_FILE)
  else
    Set.new
  end

initial_size = cache.size

SOURCES.each do |source|
  rss = RSS::Parser.parse(open(source).read, false)
  rss.items.each {|x| cache << x.title}
end

new_junk = cache.size - initial_size

if new_junk > 0 or ARGV[0]
  log.info "#{new_junk} new items, #{cache.size} items total."
  open(CACHE_FILE, "w") {|o| o << cache.to_yaml }

  order = ARGV[0].to_i
  order = 1 if order == 0
  log.info "Rewriting chain cache with order #{order}."

  mc = MarkovChainer.new(order)
  mc.add_set cache
  open(CHAIN_FILE, "w") {|o| o << mc.to_yaml }
else
  log.info "No new items."
end

