テレビ録画予約関連スクリプト仕様書

2002/5/6


■ 予約データ・ファイル・フォーマット
● raw data
[開始日] [開始時刻] [終了日] [終了時刻] [チャンネル] [品質] [ファイル名]

例:
2002/02/18 19:30:00 2002/02/18 20:00:00 11 NomalQ Konan-20020218.avi
 
● 入力データ(var/program_list)
RepeatMode := [ONE|EVERYDAY|EVERYWEEK|WEEKDAY|WEEKEND]
StartDay   := YYYY/MM/DD
EndDay     := YYYY/MM/DD
StartTime  := HH:MM[:SS]
EndTime    := HH:MM[:SS] or +HH:MM[:SS]
wday       := [Sun|Mon|....|Sat]

Channel    := 1-63 or VIDEO or SVIDEO
Quality    := VeryHighQ|HighQ|NormalQ|LowQ|VeryLowQ
Title      := file name

1. one
ONE StartDay StartTime EndTime Channel Quality Title

2. everyday
EVERYDAY StartTime EndTime Channel Quality Title

3. everyweek
EVERYWEEK wday StartTime EndTime Channel Quality Title
 
4. weekday
WEEKDAY StartTime EndTime Channel Quality Title
 
5. weekend
WEEKEND StartTime EndTime Channel Quality Title


■ controller.rb 常駐タイマー起動スクリプトの仕事
    性質:常時動いてる。
        注意:監視対象。cronでチェックして動いてなかったら誰が起動させる

    ロジック
        ■前提
        予約ファイル(raw)に以下の情報が1行で記述されている。
        [開始日] [開始時刻] [終了日] [終了時刻] [チャンネル] [品質] [ファイル名]
        複数の予約は複数行にかかれている
        ■動作
            1. 予約ファイル(raw)を読み込み 予約リスト配列 に格納する。
            2. 予約リスト配列を開始日時でソートする
            3. 予約日時の早い物の中から、開始時間を過ぎていないアイテムを探す
            4. 検索されたアイテムが 45秒以内だったら
                system(' timer 開始時刻 終了時刻 録画コマンド' )
                を行い、timer 終了までまつ
            5. もし、45秒以内でない場合は 30秒間 sleep する
            6. 1. へ戻る
        ■特徴


■ timer.rb タイマー・スクリプトの仕事
    NVrec 付属の timer の置き換え
    録画中でも終了時間の変更が telnet により可能


