Automatic Ruby v12.9.1 をリリースした。
重要な変更点として Automatic::Pipeline の形式を「フィードの配列」と定めたことが挙げられる。前バージョンの v12.6.0 であらゆるオブジェクトを格納できることとしたがこれを改め、いろいろとおかしくなっていた設計を整理してスッキリさせた。そのため幾つかのプラグインは廃止している。
これにより、本来のフィードアグリゲーターとしての原点に立ち戻っている。なんでもフィードにする Plagger とやろうとしていることは一緒である。
詳しくは日本語ドキュメントに色々書いてあるのはいつも通り。
バージョンがいきなり 12.9.1 な理由は ChangeLog を見れば一目瞭然だが 12.9.0 のリリース直後にバグが見つかったからだ。 RSpec をもっと充実させる必要があるだろう。
なんでも RSS フィードにする
Ruby には RSS を扱うための強力なライブラリがある。 RSS::Parse を利用すれば規格に準拠した RSS を読み込めるし、 RSS::Maker を利用すればスクレイピングした情報などから新たに RSS フィードを生成することが可能である。
HTML をスクレイピングして、その中のリンクを抽出し RSS として購読するプラグインとして Subscription::Link がある。このプラグインは多機能なスクレイピング用ライブラリ Nokogiri を利用してなんでも RSS にするプラグインの例として参考になるだろう。このように、 RSS フィードを出力していないサイトであっても HTML をスクレイピングすることで最新情報を自動的に入手して手軽に利用することができる。
Twitter をスクレイピングする
まず最初に言っておくが現在では Twitter の HTML をスクレイピングすることは規約で明示的に禁止されている。 (Twitter を操作する場合はこのあたりやこのあたりにも目を通しておいたほうがいいだろう。)
Automatic Ruby では Twitter をスクレイピングして情報を利用することもできる。 Twitter による突然の仕様変更により、favorites の RSS フィードは何の予告もなしに配信されなくなってしまった。このような場合でも Subscription::Twitter を利用すると HTML を読み込んで favorites の情報を取得することが可能だ。
Tumblr をスクレイピングする
(10/16 追記) Subscription::Tumblr プラグインで画像をまとめて保存できる。詳しくはこちら。
Tumblr に保存される画像は最大サイズが制限されたものなので、フィードから抽出するより HTML を見てリンク先を保存したほうが有用だろう。
機械にできることは機械にやらせる
インターネットの情報を集めて抽出・選択し、任意の形に加工する。このような単調な作業は機械にやらせるべきだ。機械は人間とは異なり、大量の情報を高速かつ正確に処理することができる。これをわざわざ人の手でおこなうのは時間の無駄、人生の無駄である。そのための共通の基盤として Automatic Ruby がある。
極端な話、ひとつのプラグインの中に Ruby のコードを詰め込めばいかなることでもできる。ほとんどの処理はだいたい似たようなものなので、機能ごとにプラグインとして独立させれば、これらを組み合わせるだけでほとんどの場合は用が済む。足りない部分だけ新しく作れば良い。プラグインで拡張できるというのはそういうことである。