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

[mhc:00165] TV GUIDE



乃村です。

一部の人には有名な 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 のある場所を指定。

問題はビデオデッキの操作か。
--
nom # もっと問題は、ビデオに撮ってまで見たいテレビがない。

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

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

require 'kconv'
require 'mhc-schedule'

body = ''

while line = gets
  line .sub!("\r?\n$", '')
  is_body = true  if (line == '')

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

hdr = "X-SC-Subject: #{title}\n"                        +
  "X-SC-TV-Sub-Title: #{subtitle}\n"                    +
  "X-SC-Category: MyTV\n"                               +
  format("X-SC-Day: %04d%02d%02d\n", year, month, date) +
  "X-SC-TV-Station: #{station}\n"                       +
  "X-SC-Time: #{s}-#{e}\n"

db  = MhcScheduleDB .new()
sch = MhcScheduleItem .new(hdr, false)
db .add_sch(sch, hdr + "\n" + body)

exit 0