さて、wgetでpodcastのmp3ファイルをゲットするスクリプトが出来たので
少し欲をだして自動的にファイルを更新するようにした
ストーリーとしてはこうだ
mp3プレーヤーを寝る前にLinuxマシンのUSBへ差し込む
cronで指定した時間に自動的に最新のmp3ファイルをwget
朝になったら抜き取り、通勤電車の中で新しいニュース等が聞く
それと古いニュースは要らないので、世代管理数を指定して古いファイルmp3順に削除する
#!/bin/sh
# licence GPLv2 ; this scripts designed by IZAMUKARERA 2010.12.12
# get podcast mp3
# XMLにpodcastのURLを登録
XML=http://www3.nhk.or.jp/rj/podcast/rss/english.xml
#XML=http://www.cnn.com/services/podcasting/newscast/rss.xml
# CTは保存世代数(古い順に消去)
CT=4
# DEVはMP3プレーヤーのデバイス名
DEV=/dev/sdb1
MNT=/mnt/music
MDIR=$MNT/podcast
DIR=/tmp/music
RAND=`echo -e $RANDOM`
TMP=$DIR/${RAND}.xml
[ ! -e $DIR ] && mkdir -p $DIR
wget $XML -O $TMP
URL=`cat $TMP |awk '/enclosure url=/{split($0,I,"\"");{printf I[2]" "} }'`
for FIL in $URL
do
MP3=`echo $FIL |awk '{s=split($0,I,"/"); printf I[s]}'`
[ -f $DIR/$MP3 ] && continue
wget $FIL -O $DIR/$MP3
[ ! -s $DIR/$MP3 ] && rm -f $DIR/$MP3
done
rm -f $TMP
[ ! -e $MNT ] && mkdir -p $MNT
mount $DEV $MNT -t vfat >/dev/null 2>&1
[ `mount |grep $DEV |wc -l` -eq 1 ] && MDEV=OK || MDEV=NG
if [ $MDEV = "OK" ];then
[ ! -e $MDIR ] && mkdir -p $MDIR
MCT=`ls -tr $MDIR`
if [ `echo $MCT | wc -w` -gt $CT ];then
I=$CT
for J in $MCT
{
rm -f $MDIR/$J
I=`expr $I - 1`
[ $I -eq 0 ] && break
}
fi
MCT=`ls -tr $DIR`
for MM in $MCT
{
if [ -s $DIR/$MM ];then
mv -f $DIR/$MM $MDIR
fi
}
fi
[ $MDEV = "OK" ] && umount $DEV
pepoと