ホーム > タグ > Anime

Anime

iGoogleガジェット「しょぼいカレンダー アニメアラート」障害対応しました。

Syobocal Alert、2年前に作ったiGoogleのガジェットだが、気がついたらまともに動いてなかった。
現象は抽出条件が全角だと正しい抽出結果がでない。
たとえば抽出条件が「MAJOR」だった場合はMAJORを含む番組タイトルが抽出されるが、抽出条件が「【新】」の場合だと【新】を含む番組タイトルが存在していてもindexOfメソッドで常に-1が返却されスルーされてしまう。
どこかで文字化けか文字コードがそろっていないのかと疑ったが、ガジェットのソース、しょぼいカレンダーのRSS、ブラウザのエンコード、すべてUTF-8で揃っていた。訳がわからない。化けようがない。
ユーザー設定の抽出条件を読み込まずにソース内にハードコーディングすると正常に抽出してくれるから、このままでいいや~原因究明めんどくさい。あ~でも一応ユーザー数見てからにしよう。
って見てみたら393人も使ってくれてた。Goodなコメントも二件ついてた!
使ってる人なんて5人ぐらいだと思ってたからびっくりだよ!
こりゃ勝手はできない、つかさっさと直さないと大迷惑じゃないか!ってんで至急原因を探ってみた。
ユーザー設定の値がどうも臭う。調べてみるとユーザー設定値の取得方法には現在使っている文字列置換方式以外にJavaScriptで取得する方法があるらしい。
文字列置換方式で取得した値とJavaScriptで取得した値をcharCodeAtで文字コードを比較してみると同じ文字でもコードが違っていた。内部で文字化けしてた?みたい。
早速取得方法を変更してみると直った!
ユーザーの皆様ご迷惑おかけしました。
※新しいガジェットのソースがgoogleサーバーに反映されるまで1~2日かかると思います。

アニメの新番組や放送時間の変更を通知するiGoogleのガジェットを作った

昨日、しょぼいカレンダーからアニメの番組データを取得してアニメの新番組や放送時間の変更を抽出するツールをPraggerで作りましたが、導入が簡単じゃないので、iGoogle用の単体で動くガジェットを作りました。

これで多くの方が番組表を必死に見ることなく、2007年夏期の新番組の嵐を乗り越えられれば幸いです。

+Googleってボタンを押せばiGoogle(旧Googleパーソナライズドホーム)にガジェットを追加できます。

ガジェットを追加したら右上の[↓]ボタンを押して、設定画面を開いてください。

設定画面にてしょぼいカレンダーのユーザーIDを入力してください。

入力したら、保存ボタンを押してください。
他の設定項目は後述します。

するとこんな感じで、新番組や放送日の変更、たまに放送されるアニメ映画劇場、そして憎っくき野球中継により発生する繰り下げ予告などアニオタなら見逃してはならない情報が一目でわかっちゃいます。

設定項目について

タイトル名:ガジェットのタイトル名を設定します。

タイトルのリンク:ガジェットのタイトル部分のリンクを設定します。

しょぼいカレンダーのユーザーID:しょぼいカレンダーのユーザ設定を使って、フィルタリングされたデータを取得するため。

取得する日数:取得する日数で設定した日付分の番組情報をしょぼいカレンダーより取得します。

抽出条件:抽出条件に設定したスペース区切りの単語が番組タイトルに含まれている番組を抽出します。

除外条件:抽出条件で抽出した番組に除外条件に設定した単語が含まれている場合、抽出結果から除外します。

表示個数:抽出結果から何件の番組を表示するかを設定します。

フォントサイズ:そのままの意味です。

マーク:番組タイトルの先頭に表示するマークを設定します。

Praggerでアニメの新番組や放送時間の変更等を拾ってRSSに吐かせる

2007年夏期に放送開始されるアニメは24本、春に比べれば格段に少ないが、放送日時を調べるのはやっぱり大変です。

そこで役立つのがしょぼいカレンダーです。視聴可能なチャンネルを設定すれば、アニメの放送スケジュールが一目で分かるようになります。

でも、毎日しょぼいカレンダーを見に行くのも面倒なのでしょぼいカレンダーのRSSから「新番組」「終了」「注目」「放送日時変更」など注意しなければならない所だけ抽出して再びRSSとして出力するフィルターを作ってみた。

※追記

一般向けにiGoogle用のガジェットを作りましたので、こちら(アニメの新番組や放送時間の変更を通知する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 > タグ > Anime

コンテンツ
ポジションとオーダーのヒストリー oandaのポジションとオーダーデータを24時間前まで追跡
ポジションとオーダーのヒストリー
oandaのポジションとオーダーデータを24時間前まで追跡
フィード
メタ情報
人気の商品
あわせて読みたい フィードメーター - finelworks.net

Return to page top