HS-DGL! + ハックキット 2.0:延長対応ハック de ダブルまる録!!
ダブルチューナの認識ができたので、
延長対応ハック de まる録!!をダブルチューナ対応にする。
勝手に命名「延長対応ハック de ダブルまる録!!」
(なんか「スーパーグランドハイパーなんたら」みたいな名前だな:汗)
構想
「延長対応ハック de まる録!!」では録画予約に失敗しても
リトライしていなかった。
「延長対応ハック de ダブルまる録!!」では録画予約に失敗したら
次のチューナでリトライするようにすれば良い。
つまり、
for すべてのチューナ
do
録画予約
if [ 予約成功 ]
then
break
fi
done
こんなかんじ。
元バグ
「延長対応ハック de まる録!!」スクリプトを見ていたら、
結構やっかいな事に気が付いた。
「延長対応ハック de まる録!!」スクリプトでは、
1つの番組を何度も予約する場合があるのである。
例えば、、キーワードとして「美女」「野獣」を登録していて、
「美女と野獣」という番組があったとすると、
「美女」にヒットしたので「美女と野獣」を予約→成功
「野獣」にヒットしたので「美女と野獣」を予約→予約が重なって失敗
と。まぁチューナが一つならこれで問題ない
ところが、ダブルチューナだと
「美女」にヒットしたのでチューナ0で予約→成功
「野獣」にヒットしたのでチューナ0で予約→予約が重なって失敗
チューナ0で予約に失敗したのでチューナ1で予約→成功
となって、同じ番組が2つ予約されてしまう。
スクリプト修正
ダブ録化
DbAcRap GetDeviceStatus の結果 Status=NODEVICE となっていない
チューナをリストにしておき、
予約に成功するまですべてのチューナで予約するようにした。
重複予約防止
予約に成功した番組の開始時間/終了時間/チャンネルを
テンポラリファイルに書いておき、
録画を予約する前に予約しようとしている番組の
開始時間/終了時間/チャンネルが
テンポラリファイルにないかを確認する
ように修正した。
スクリプト実行
こんな感じ
[root@gawa root]# sh /usr/local/sbin/hackdemarurokuV3.sh
:
:
2006/01/08/06/15 - 2006/01/08/06/30 4 0 美の京都遺産 : [ERROR]103 Add Crosstime
2006/01/08/06/15 - 2006/01/08/06/30 4 1 美の京都遺産 : [FINISH]Add
:
2006/01/08/06/15 - 2006/01/08/06/30 4 美の京都遺産 : 重複
0番のチューナで予約しようとしたが予約が重なっていて失敗
1番のチューナで予約に成功。
同じ番組を違うキーワードで予約しようとしたが、重複を検知
といったところ。
ボツ
スクリプトをもう一回実行して気が付いた。
予約に成功した番組の開始時間/終了時間/チャンネルを書いている
テンポラリファイルは、実行の度に消去するので、
スクリプトを何度も実行すると結局重複して予約してしまう。
やっぱり予約情報は PCast 側で一元管理しないとだめだな。
ボツ
Copyright (C) 2006 Yasunari Yamashita. All Rights Reserved.
yasunari @ yamasita.jp 山下康成@京都府向日市