$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