Googleカレンダーに気になるテレビ番組を登録しておくと便利です。
しかし、いちいち番組名や時刻を手で入力するのはとても手間がかかり、
数十の番組を登録するだけで何十分もの時間がかかってしまいます。
テレビ番組表無料Webサービスの「CHAN-TORU」を使ったり
「Yahoo!テレビ番組表」とChromeの拡張機能を組み合わせて使ったりすれば、
ボタンをクリックするだけで番組をGoogleカレンダーに登録できますが、
「目的の番組の番組詳細画面まで開かないと登録ボタンが表示されない」
「ボタンをクリックしたあとも、GoogleカレンダーのMyカレンダー名を選択したり、OKボタンをクリックしたりといった手間が1件ごとにかかってしまう」
といった難点があり、意外と面倒です。
そもそも「上記の2つのテレビ番組表は
お気に入りの『テレビ王国』と比べると見にくくて使いにくい」
というのが、個人的には最大の難点です。
「テレビ王国」にGoogleカレンダーへの追加機能があればいいのですが
残念ながらありません。
ないなら作ってしまえということで、
「『テレビ王国』から入手した番組のiPEG情報をGoogleカレンダーに読み込める形式に変換する」シェルスクリプト
を自作してみました。
▼「iepgc.sh」
#!/bin/bash
tdir="/Users/tamao/Downloads/" #ダウンロードフォルダーを指定★★★
afdir="${tdir}iepgc/処理済/`date +%Y%m%d-%H%M%S`"
if [ ! -e "${tdir}iepgc" ]; then
mkdir "${tdir}iepgc"
fi
if [ ! -e "${tdir}iepgc/処理済" ]; then
mkdir "${tdir}iepgc/処理済"
fi
if [ ! -e $afdir ]; then
mkdir $afdir
fi
iepgc=${tdir}iepgc/iepg.csv
tfileu8=${tdir}iepgc/iepg-u8.tvpid
tfileu8kai=${tdir}iepgc/iepg-u8kai.tvpid
echo "Subject,Start Date,Start Time,End Date,End Time,Location" > $iepgc
i=0
while [ $i -ne 200 ]
do
if [ $i = 0 ]; then
tnum=""
else
tnum=" ($i)"
fi
tfile=${tdir}"iepg"${tnum}".tvpid"
if [ ! -e "$tfile" ]; then
i=`expr $i + 1`
continue
fi
iconv -f SJIS -t UTF8 "$tfile" > $tfileu8
cat $tfileu8 | tr -d '\r' > $tfileu8kai #改行コードを変換
tyear=`cat $tfileu8kai | awk '/year/{ print $2 }'`
tmonth=`cat $tfileu8kai | awk '/month/{ print $2 }'`
tdate=`cat $tfileu8kai | awk '/date/{ print $2 }'`
tstart=`cat $tfileu8kai | awk '/start/{ print $2 }'`
tend=`cat $tfileu8kai | awk '/end/{ print $2 }'`
ttitle=`cat $tfileu8kai | awk '/program-title/{ print $2 }'`
tstation=`cat $tfileu8kai | awk '/station-name/{ print $2 }'`
tstartday="$tmonth/$tdate/$tyear"
# 終了日時の設定(終了時刻が翌日の場合は1日進める)
if [ ${tstart//:/} -gt ${tend//:/} ]; then
tendday=`date -v${tyear}y -v${tmonth}m -v${tdate}d -v+1d +"%m/%d/%Y"`
else
tendday=$tstartday
fi
edata="${ttitle/\"/”},$tstartday,$tstart,$tendday,$tend,$tstation"
echo $edata >> $iepgc
echo $edata
mv "$tfile" "${afdir}/"
i=`expr $i + 1`
done
cp "$iepgc" "${afdir}/"
何をするものなの?
『テレビ王国』などのテレビ番組表サイトから入手した1つまたは複数の「iEPGファイル」(テレビ番組の放送時刻等の情報が記録されたファイル)を、Googleカレンダーで読み込める1つの「CSVファイル」(カンマ区切りのファイル)に変換します。↑
上記のような内容の「iEPGファイル」を、下記のような「CSVファイル」に変換します。
↓
動作環境は?
当方はMac OSXで使用していますが、bashが動く環境であれば、少々の改造で動作すると思います。使用前の準備
- 上記のソースコードをテキストファイルにコピー&ペーストして「iepgc.sh」等のファイル名で保存します(「iepgc.command」という名前にしておけば、ダブルクリックで起動できるようになります)。
- 「iepgc.sh」の3行目に書いてあるダウンロードフォルダーを、お使いの環境にあわせて書き換えます。
- 「iepgc.sh」をパスの通った場所に設置します。
使い方
- 『テレビ王国』の番組表を開き、気になる番組の「iEPG」ボタンを片っ端からクリックして、複数のiEPGファイルをダウンロードします。
- ターミナルで「sh iepgc.sh」と入力してスクリプトを実行します(または「iepgc.command」をダブルクリックして実行します)。
- GoogleカレンダーをWebブラウザーで開き、画面の左にある「他のカレンダー」の文字の右にある「▼」をクリックし、「カレンダーのインポート」を選択します。
- ダウンロードフォルダーの「iepgc」フォルダー内にある「iepg.csv」を指定してインポートします。
▲オレンジ色の「iE」ボタンをクリックすると、iEPGファイルがダウンロードされる |
▲Googleカレンダーに番組が登録された |
その他・注意点
- iEPGファイルの名前の部分をうまく書き換えれば、『テレビ王国』以外のサイトから入手したiEPGファイルでも利用できるようになると思います。
- 上記のソースコードでは最大で200個のiEPGファイルを一度に処理する仕様になっていますが、「200」の部分を書き換えればもっと増やせます。
- 処理が行われたiEPGファイル等は、ダウンロードフォルダー→「iepgc」→「処理済」フォルダー内に自動で移動します。インポート履歴等は、このフォルダー内のファイルを開けば調べられます。
ぜひ使ってみてください^^
0 件のコメント:
コメントを投稿