[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