2009年12月16日水曜日

ネット録画予約完成

PC の番組表から RD-S1004K の予約をする,の続き.

ONTV は予約メールのフォーマットが微妙に違うのでそのままでは使えなかったが,フォーマットを変換するスクリプトを書いて,メールフォワードのスクリプトに指定したら,無事動いたヽ(´ー`)ノ

と思っていたら,また VARDIA からつれないメールが返ってきたよ…
「指定されたチャンネルはありません」
工エェェ(;゚Д゚)ェェエ工!?

 物理 CH 番号 (電波の周波数を表す,NHK なら 26CH),表示 CH 番号 (リモコンのボタンと対応する.NHK なら慣例的に 2CH) どっちを指定してもダメ.じゃ何を指定したらいいねん,と思っていたら,第 3 の 謎 CH 番号がある事が分かった.3桁の数字から成る番号で,物理・表示 CH どちらとも規則性がない.東芝の旧機種で使われていた CH コードとも違うみたいだし,探した限りこの番号体系の正体は見つからなかった.←最近はどのメーカーの機種でも流行ってるみたい

 こんなの分かるわけねー 炎炎炎炎>(◇´*)ブオォォオ(*`◇)<炎炎炎炎

 というわけで,VRADIA の設定画面から謎 CH 番号を全てピックアップして (メンドクセ),ONTV CH 番号→謎 CH 番号 変換テーブルを上記スクリプトに組み込んで,やっと正常に動いた.↓

#!/usr/bin/perl -w

$Channel = {
'0501' => 'D011-1', # NHK総合(関西)
'0502' => 'D021', # NHK教育(関西)
'0504' => 'D041', # 毎日放送
'0505' => 'D061', # ABCテレビ
'0506' => 'D081', # 関西テレビ
'0507' => 'D101', # 読売テレビ
'0508' => 'D051-1', # 京都テレビ
'0512' => 'D031', # びわ湖放送

'3001' => 'BS101', # NHK 1 (BS1)
'3002' => 'BS102', # NHK 2 (BS2)
'3003' => 'BS102', # NHKハイビジョン
'3004' => 'BS141', # BS日テレ
'3005' => 'BS151', # BS朝日
'3006' => 'BS161', # BS- i
'3007' => 'BS171', # BSジャパン
'3008' => 'BS181', # BSフジ
'3009' => 'BS191', # デジタルWOWOW
'3010' => 'BS192', # WOWOW 2
'3011' => 'BS193', # WOWOW 3
'3012' => 'BS200', # スター・チャンネルBS
'BS11' => 'BS211', # BS11
'BS12' => 'BS222', # twellv
};

open( fpOut, '| sendmail hoge' );

while( <> ){

# open hoge prog add 20091214 2045 2046 D012
# open hoge tv SC0508 0100 0130 1216
# 0 1 2 3 4 5 6

if( /^open/ ){
@_ = split;
$_[ 3 ] =~ s/SC//;

(undef, undef, undef, $mday, $mon, $year) = localtime( time );

++$year if( $_[ 6 ]< sprintf( "%02d%02d", $mon + 1, $mday ));
$year += 1900;

$_ = "open $_[1] prog add $year$_[6] $_[4] $_[5] $$Channel{$_[3]}\n";
}
print fpOut;
}

まあそれなりに苦労したけど,結果的にメッチャ普通に便利な環境になったよヽ(´ー`)ノ

0 件のコメント:

コメントを投稿