[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[mhc:00178] Re: 小ネタ



> 小ネタ。

もう 1個。現在の snap に対応した VAIO TV です。

On Thu, 2 Sep 1999 18:45:54 +0900,
	Yoshinari NOMURA <nom@xxxxxxxxxxxxxxxxxxx> said:

> 一部の人には有名な TV ガイドの番組表ですが、VAIO の
> ハードディスク録画予約対応ページってのがあるみたいですね。
> 例えば、福岡版だと
> 
>     http://210.152.244.34/fukuoka/table/090221.htm
> 
> こいつの番組表で、目当ての番組の [予約] という所をクリックすると、
> ----------------------------------------------------------------
> Content-type: application/x-tv-program-info; charset=shift_jis
> version: 1
> station: RKB
> year: 1999
> month: 09
> date: 02
> start: 13:30
> end: 14:00
> program-title: キッズ・ウォー
> 
> 生稲晃子 川野太郎 井上真央ほか
> ----------------------------------------------------------------
> 
> みたいなのを送ってくるみたいです。こいつをパーズして mhc に入れ
> るスクリプトを書いてみましょう。例えば /u/nom/bin/vaio-tv とすると、
> Navigator の [編集] -> [設定] -> [Navigator] -> [アプリケーション]
> から、
> 
>   MIMEタイプ:        application/x-tv-program-info
>   アプリケーション:  /u/nom/bin/vaio-tv %s
> 
> としておくといいみたいです。以下その vaio-tv のサンプル
> '/prj/mhc/ruby-lib' は mhc-schedule.rb のある場所を指定。

################################################################
#!/usr/local/bin/ruby

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

require 'kconv'
require 'mhc-schedule'

# if DEBUG
#   $tv_file = File .open("/tmp/vaio-tv", "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(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