Pragger用プラグインを追加・更新

自作したPragger用プラグイン

elem_cache

指定した要素でのみ比較してキャッシュを行う。

日付情報等が存在しない、ただのリスト等を監視したい場合に使う。custom_feedは特に指定しないと最新の日付が入ってしまうので、適当な日付を入れてリーダーに任せるといったことが難しかった。そこでこのプラグインを作成。単純に取得した要素が「ある」か「ない」かだけで判断するシンプルなキャッシュ。

本当は複数の要素で比較してキャッシュさせたかったけど、匿名メソッドを追加したオブジェクトをYAMLに保存してから復元すると匿名メソッドにアクセスできないというバグかどうか分からない仕様があったので、仕方なくこのような形になった。

empty

dataの中身を空の配列にする。一つのyamlにずらずらと大量に色々したい時に欲しかったので。

Webラジオ ダウンロード

わざわざrssにしてリーダーで知らせるよりも新着発見即ダウンロードのほうが効率よくね? とは思っていたものの、実際にRubyでダウンロードしようとすると本体にアクセスした際に500エラー等が発生してダウンロードすることができずに諦めていた。

で、つい最近になって「Plaggerを参考にしてみてはどうだろうか?」という天啓が降りてきたので実際にPlaggerで利用されているプラグイン「Mplayer.pm」のソースを見てみたところ、MPlayerに渡していてズコー。

で、このプラグインを参考にMplayerを使ってみたが、ダウンロードはできるがPCMに変換してしまう。Mplayerのヘルプを見ても、どうもPCMでしか保存できないようにしか見えなかった(ヘルプの見方が悪くて見落としている可能性あり)。

つーわけでこっちではNetTransportに渡すことでダウンロードするようにした。今のところ下記4サイトのみ確認。

NetTransportのコマンドラインオプションが分からんのでファイル名はそのまま。保存する場所もデフォルトとなってしまっている。

さすがに保存名を変えられないのは不便なので、とりあえずリネーム用のバッチファイルも同時に作成。ダウンロード完了後に実行すればリネームしてくれる。なんというアナログ。

もっとスマートな方法は無いものか。Rubyでダウンロードできれば全て解決するんだが、たぶんストリーミングとして受信しつつ、受け取ったデータを積んでいけばいいと思うけど、方法がさっぱりわからん。

Webラジオ 新番組

番組一覧のページから、番組のタイトルを取得し、一度取得したタイトルを次回以降表示させないことで、新番組だけを取得するようにした。

以上5サイトに対応・・・したつもりだが、テスト環境では成功してても、実際に番組が増えた場合を目にしていないので、動作がちょっと怪しいかも。自分で使っててあまりの沈黙っぷりに怖くなる。

音泉から欲しい番組を取得

HTMLの構造が変わったのか、正常に取得できていなかったので対応。

ニコニコ動画 検索

smしか見ていなかったので、nmmとかzhとかに対応。

クラブニンテンドーの予約ボーナス対象タイトルを取得

いつの間にかサイトがリニューアルされていたので。

クラブニンテンドーの未回答のアンケートを取得

同じくリニューアルしたので直そうとしたけど、アンケート回答欄が空なので、何かで埋まるまで更新できず。

date_sort

日付でソートするプラグインだが、アホなミスをしていたので修正。

クラスで比較する場合は、

date.class == "Time"

ではなく、

date.class == Time

とするのが正しい。