Re: HS-DHGL でハック de 録!!(8)なくなったビデオを消す

HS-DHGL

以前 HS-DHGL でハック de 録!!が動作するところまでは確認したが、 玄箱/Pro 入手という割り込みで、実使用にまではいたっていなかった。
ファームウェア 1.10 とハックキット 2.0 がインストールできたので、 その上でハック de 録!!がちゃんと使えるところまで持っていく。

次は、ビデオファイルが無くなった場合に、データベースから消す処理。

PCastLink や Web のPCast から録画ファイルを消したときには 「録画一覧」その番組が消えるが、 ファイル共有してエクスプローラから消したり、ログインして rm, mv したときには いつまでもその番組が「録画一覧」に残ってしまう。
これの対策として以前 ファイルを消した番組を PCast のリストから消す スクリプトを作った (その後の修正

これを HS-DHGL でも動作させる。
ビデオディレクトリを変更しているので、その追従が必要。

スクリプトの変更

HD-HLAN からコピーしてきて修正。 まずはテストのために消すステップを echo にする。
sil:/usr/local/sbin# diff -c RemoveList.sh.orig RemoveList.sh
*** RemoveList.sh.orig  Sun Jul  8 12:56:32 2007
--- RemoveList.sh       Sun Jul  8 12:59:15 2007
***************
*** 6,16 ****
  sed -n -e 's/^.*Index=\([0-9]*\)[     ]*FileName=\(.*\)/\1 \2/p' $TMPFILE | nkf -e |
  while read Index FileName
  do
!       if [ ! -f `echo $FileName | nkf -s` ]
        then
                echo $FileName not found
                DataKey=`sed -n -e 's/^.*Index='$Index'[        ]*DataKey=\(.*\)/\1/p' $TMPFILE`
!               /usr/local/PCast/DbAcRap DelPlKey\{$DataKey\}
        fi
  done
  rm $TMPFILE
--- 6,16 ----
  sed -n -e 's/^.*Index=\([0-9]*\)[     ]*FileName=\(.*\)/\1 \2/p' $TMPFILE | nkf -e |
  while read Index FileName
  do
!       if [ ! -f /mnt/buffalo`echo $FileName | nkf -s` ]
        then
                echo $FileName not found
                DataKey=`sed -n -e 's/^.*Index='$Index'[        ]*DataKey=\(.*\)/\1/p' $TMPFILE`
!               echo /usr/local/PCast/DbAcRap DelPlKey\{$DataKey\}
        fi
  done
  rm $TMPFILE
sil:/usr/local/sbin#

確認

実行してみる
sil:/usr/local/sbin# sh RemoveList.sh
/mnt/disk1/share/videos/しまうた紀行西表島_0708.mpg not found
/usr/local/PCast/DbAcRap DelPlKey{1183860000}
/mnt/disk1/share/videos/城と城下町日本一の丸亀うちわと石の城_0708.mpg not found
/usr/local/PCast/DbAcRap DelPlKey{1183851000}
/mnt/disk1/share/videos/美の京都遺産_0708.mpg not found
/usr/local/PCast/DbAcRap DelPlKey{1183842900}
/mnt/disk1/share/videos/新日本紀行ふたたび[再]_0708.mpg not found
/usr/local/PCast/DbAcRap DelPlKey{1183836000}
/mnt/disk1/share/videos/2007F1イギリスGP予選_0708.mpg not found
/usr/local/PCast/DbAcRap DelPlKey{1183831200}
	:
	:
/mnt/disk1/share/NHKスペシャル_0701.mpg not found
/usr/local/PCast/DbAcRap DelPlKey{1183291200}
sil:/usr/local/sbin#
ファイルが残っているものまで not found といってきた。

修正

いろいろ試行錯誤して修正。
#!/bin/sh
TMPFILE=/tmp/RemoveList.$$
TMPFILE2=/tmp/VideoList.$$

/usr/local/PCast/DbAcRap GetPlListBottom > $TMPFILE
ls /mnt/buffalo/mnt/disk1/share/videos/*.mpg | nkf -e > $TMPFILE2

sed -n -e 's/^.*Index=\([0-9]*\)[       ]*FileName=\(.*\)/\1 \2/p' $TMPFILE | nkf -e |
while read Index FileName
do
#       if [ ! -f /mnt/buffalo`echo $FileName | nkf -s` ]
        grep "^/mnt/buffalo$FileName$" $TMPFILE2
        if [ $? != 0 ]
        then
                echo $FileName not found
                DataKey=`sed -n -e 's/^.*Index='$Index'[        ]*DataKey=\(.*\)/\1/p' $TMPFILE`
                echo /usr/local/PCast/DbAcRap DelPlKey\{$DataKey\}
        fi
done
rm $TMPFILE $TMPFILE2
一応これでちゃんと存在の有無を見てくれるようになったが、 まだ少しこわい
(デバッグ中に全ビデオファイルが消えてしまったことは内緒(藁)

まずはこのまま様子を見る

cron に登録

sil:/usr/local/sbin# crontab -e
	:
	:
sil:/usr/local/sbin# crontab -l
# m h  dom mon dow   command
*/5 * * * * nice /bin/sh /usr/local/sbin/fancontrol 2>/dev/null 1>/dev/null
30 5 * * * nice /bin/sh /usr/local/sbin/hackdemarurokuV3.sh
20 6 * * * nice /bin/sh /usr/local/sbin/RemoveList.sh
sil:/usr/local/sbin#



HS-DH320GL
楽天市場
Yahoo!ショッピング
somap.com
TSUKUMO ネットショップ
ValuMore!
ムラウチドットコム
アット・ニフティストア icon
Joshin web icon


メールの設定
ハックの記録
LinkStation/玄箱 をハックしよう

デフォルトエディタの変更

Copyright (C) 2003-2007 Yasunari Yamashita. All Rights Reserved.
yasunari @ yamasita.jp 山下康成@京都府向日市