$KCODE='u'

require 'rubygems'
require 'gcalapi'
require 'jsports'
require 'yaml'

# load config file
if ARGV.size > 0 then
  config = YAML::load_file(ARGV[0])
else
  config = YAML::load_file("jsports2gcal.yaml")
end

srv = GoogleCalendar::Service.new(config["Account"], config["Password"])

config["Programs"].each_key do |key|
  puts "Start processing #{key}"
  pgconf = config["Programs"][key]

  cal = GoogleCalendar::Calendar::new(srv, pgconf["feed"])
  
  # 本日以降の予定を消去
  events = cal.events(:"max-results" => 200, :"start-min" => Date.today)
  puts "#{events.size} items to be deleted."
  events.each{|e|
    e.destroy!
  }
  
  psr = Parser.new(pgconf["uri"])
  programs = psr.acquire
  # ESPNは削除
  programs.reject!{|pr| pr.channel =~ /ESPN/}
  
  # 予定の追加
  puts "#{programs.size} items to be added."
  programs.each do |pr|
    # print "#{pr.from} #{pr.to} #{pr.title}\n"
    event = cal.create_event
    event.title = pr.title
    event.desc = pr.uri
    event.where = pr.channel
    event.st = pr.from
    event.en = pr.to
    event.save!
  end

end