#!/usr/local/bin/ruby -Ke

##
## gp2mhc -- Giga Pocket to MHC
## 
## οͤˤͭ̾ TV ɤɽǡVAIO 
## ϡɥǥϿͽ(Giga Pocket) бڡäƤΤ褦Ǥ
## 㤨СʡǤ
## 
##   http://210.152.244.34/fukuoka/table/
## 
##  ɽǡƤȤ [ͽ] Ȥ򥯥åȡ
##  ----------------------------------------------------------------
##  Content-type: application/x-tv-program-info; charset=shift_jis
##  version: 1
##  station: ңˣ
##  year: 1999
##  month: 09
##  date: 02
##  start: 13:30
##  end: 14:00
##  program-title: å
##  
##  𹸻ҡϺ忿ۤ
##  ----------------------------------------------------------------
##  
##  ߤʤΤäƤ褦ǤĤѡ MHC 
##  륹ץȤ񤤤Ƥߤޤ㤨ФΥե
##  /u/nom/bin/gp2mhc Ȥȡ
##
##  Navigator  [Խ] -> [] -> [Navigator] -> [ץꥱ]
##  顢
##  
##    MIME:        application/x-tv-program-info
##    ץꥱ:  /u/nom/bin/gp2mhc %s
##
##  ȤƤȤߤǤ
##
##  '/prj/mhc/ruby-lib'  mhc-schedule.rb Τꤷޤ
##  Ȥ ruby Υ饤֥Ȥƥ󥹥ȡ뤵ƤСʤƤ
##  פǤ

$LOAD_PATH .unshift(ENV['HOME'] + '/prj/mhc/ruby-lib')
DEBUG = true

require 'kconv'
require 'mhc-schedule'

# if DEBUG
#   $tv_file = File .open("/tmp/gp2mhc", "w")
#   def conv_print(str)
#     $tv_file .print Kconv::tojis(str)
#   end
# else
#   def conv_print(str)
#   end
# end

is_body, body = false, ''

while line = gets
  line .sub!(/\r?\n$/np, '')
  if (!is_body && line == '')
    is_body = true
    next
  end

  if is_body
    body += line + "\n"
  else
    case line
    when /^station:(.*)/n
      station = $1 .strip
    when /^year:(.*)/n
      year = $1 .to_i
    when /^month:(.*)/n
      month = $1 .to_i
    when /^date:(.*)/n
      date = $1 .to_i
    when /^start:(.*)/n
      s = $1 .strip
    when /^end:(.*)/n
      e = $1 .strip
    when /^program-title:(.*)/n
      title = $1 .strip
    when /^program-subtitle:(.*)/n
      subtitle = $1 .strip
    end
  end
end

xhdr = "X-SC-TV-Station: #{station}\n" + "X-SC-TV-Sub-Title: #{subtitle}\n"
body = Kconv::tojis(xhdr) + "\n" + Kconv::tojis(body)

sch = MhcScheduleItem .new                     \
  .set_subject(Kconv::tojis(title))            \
  .add_category('Mytv')                        \
  .add_day(MhcDate .new(year, month, date))    \
  .set_time(MhcTime .new(s), MhcTime .new(e))  \
  .set_description(body)

db  = MhcScheduleDB .new .add_sch(sch)
exit 0
