ホーム > タグ > Ruby
Ruby
Praggerでアニメの新番組や放送時間の変更等を拾ってRSSに吐かせる
- 2007-06-13 (水)
- Programming
2007年夏期に放送開始されるアニメは24本、春に比べれば格段に少ないが、放送日時を調べるのはやっぱり大変です。
そこで役立つのがしょぼいカレンダーです。視聴可能なチャンネルを設定すれば、アニメの放送スケジュールが一目で分かるようになります。
でも、毎日しょぼいカレンダーを見に行くのも面倒なのでしょぼいカレンダーのRSSから「新番組」「終了」「注目」「放送日時変更」など注意しなければならない所だけ抽出して再びRSSとして出力するフィルターを作ってみた。
※追記
一般向けにiGoogle用のガジェットを作りましたので、こちら(アニメの新番組や放送時間の変更を通知するiGoogleのガジェットを作った)をご利用下さい。

実際にiGoogleでRSSを表示してる様子
こうゆうのはPlaggerで作るのが有名だがインストールが面倒くさいので止めた。
代わりにインストールが簡単なPlaggerのRuby版、PRaggerを使います。
svnからチェックアウトしてRubyが使えるサーバーにUPすればOK。
PRaggerはyamlというファイルに利用するプラグインと設定を記述してRSSなどのデータを制御します。
が、説明も面倒くさいので作成したyamlとプラグインの配置とyamlの編集方法だけ書きます。
詳しく知りたい場合はそれPraggerでできるよ! – Ruby版Plagger登場を読んでみてください。
あらかじめ、しょぼいカレンダーにてアカウントを取得して視聴可能なチャンネルを設定してください。
ここ(syobocalfilter.zip)から、自作したyamlとプラグインをダウンロードしてください。
syobocal.yamlとpluginフォルダをpragger.rbと同じフォルダにコピーしてください。
1.読み込むRSSのアドレスを編集します。
syobocal.yamlをメモ帳などのテキストエディタで開いてください。
RSSのアドレスにしょぼいカレンダーのユーザーIDを入れます。
下記のように、ここにユーザーIDを入れるという文字列をユーザーIDに差し替えてください。
たとえば、ユーザーIDがfinelの場合は
http://cal.syoboi.jp/rss.php?usr=ここにユーザーIDを入れる&days=14&titlefmt=$(StTime)%20$(Mark)%20$(ShortTitle)%20$(ChName)
↓
http://cal.syoboi.jp/rss.php?usr=finel&days=14&titlefmt=$(StTime)%20$(Mark)%20$(ShortTitle)%20$(ChName)
2.番組を抽出する条件を編集する。
あらかじめ、「新番組」「最終話」「注目」を抽出するようにしています。
他に、条件を追加したい場合は下記部分を編集してください。
正規表現で書く必要がありますが、条件を追加するだけなら’|'で単語を区切るだけでOKです。
regex: “【新】|【注】|【終】”
また、プラグイン側で”6/25は放送休止”とか”金曜日に放送日を移動”みたいコメントがある場合も抽出します。
3.抽出された番組から不要な番組を除外する。
注目番組にマンガ夜話とかアニメ夜話があるけど出したくない、とか
新番組にガンダムがあるけど出したくない、という場合
filter: “”
↓
filter: “夜話|ガンダム”
とすればOKです。
4.必要なら、出力するRSSのファイル名とタイトルを変えましょう。
標準でsyobocal.rdfという名前のRSSを出力しますが、変更したい場合は
filename: syobocal.rdf
上記の部分を変えてください。
RSSのタイトルを変えたい場合は
title: しょぼいカレンダー
上記の部分を変えてください。
5.実行
シェルスクリプトに
#!/bin/sh
/usr/local/bin/ruby pragger.rb -c syobocal.yaml
exit
と書いてcronで毎日実行してしてRSSを吐かせます。
私は、iGoogleでRSSを表示していますが、iGoogleのキャッシュのせいで上手く出なかったので、適当にiGoogleのRSSリーダーガジェットを改造してつねに最新のRSSを取得するようにしました。
syobocal.xmlがiGoogleの改造版RSSリーダーガジェットです。
6.さいごに
昔にも似たようなツールを作りましたが、今回もサーバーが必要だったり、タスクの定期実行のためのcornが必要だったりと分からない人にはさっぱりですよね。
またこんど暇があれば、iGoogleのガジェットにしょぼいカレンダーのユーザーIDを入れるだけで動作するようなモノを作ってみたいです。
Home > タグ > Ruby


