いまさら聞けない? 初心者向けPlagger設定覚え書き その4

いまPla*1 その4です。
その3ではちょっと難しい話になってしまったので今回はできるだけライトに行きたいと思います。前回までに Filter::EntryFullText と CustomFeed::Config をうまく使うといろんなサイトの欲しいところを持ってこられるということを書いてきました。今回はその出力方法に関していくつか取り上げてみたいと思います。


その3までのconfig.yamlでは出力部分はすべてGmailにメールする設定でした。

  - module: Publish::Gmail
    config:
      mailto:   xxx@gmail.com
      mailfrom: xxx+plagger@gmail.com
mailto
宛先です。ご自分のメールアドレスをどうぞ。
mailfrom
送信元となるメールアドレスです。Gmailではアカウントに対して「+xxx」という風にしても自分のアドレスとして使うことができるので例のようにして送って、フィルタを使って受信トレイをスキップしたりラベルを付けたりすると便利です。


ここでは Publish::Gmail モジュールを使ってメールしていますが、もちろんGmailに限らず好きなメールアドレスに送ることができます。それをローカルのメーラで読み込んでオフラインで読んだりすることもできますし、livedoorメールなどwebメールに送っておけば携帯からもチェックすることもできますね。ローカルに送るときにはblog.bulknews.netさんの「Plagger で RSS を Becky! で読む」が参考になると思います。(画像をすべて添付ファイルにしたりしています。)やっぱすごいぜPlagger

出力に関するモジュールはこれだけではありません。RSSとして出力したり、CHTMLとして出力したり、ExcelPowerPoint、PDFにまで出力することができます。今回はRSSとして出力する方法、携帯用にCHTMLとして出力する方法、2つ以上のサイトをひとまとめにする方法について紹介します。


RSSatomとして出力するときには Publish::Feed を使います。RSSを出力していないサイトからRSSを作ったり、2つ以上のRSSをひとつにまとめたりするときに使います。

  - module: Publish::Feed
    config:
      format: atom
      dir: /home/toshi/public_html/feed/
      filename: plagger.atom
format
出力フォーマットです。“rss”(RSSでも大丈夫です)か“atom”を指定します。
dir
出力する場所を指定します。書き出したい場所をフルパスで指定します。http://〜ではありません。
filename
出力される RSS または atom の名前です。


2つ以上のフィードを読み込んでまとめる場合には↓のように書きます。

  - module: SmartFeed::All

  - module: Publish::Feed
    rule:
      expression: $args->{feed}->id eq 'smartfeed:all'
    config:
      format: atom
        dir: /home/toshi/public_html/feed/
        title: plagger.atom

SmartFeed::Allというモジュールを使っています。これは各エントリに“smartfeed:all”というIDをくっつけるためのものです。出力のときにこのIDを読み込んで“smartfeed:all”なら出力するように指定することで1つのatomとして出力しています。この方法はメールで送信する場合にも使えます。1つのconfig.yamlで複数のサイトやフィードを読み込むとその数だけメールが来ますが、それを1つにまとめることが可能です。ちなみに SmartFeed::All を使わないと複数読み込んでも出力されるatomには最後に読み込んだサイト・フィードしか反映されません。そのたびに上書きされてしまうからです(たぶん)

expression
このあとに書いたルールにマッチしたものだけを出力します。ここではエントリ毎のid($args->{feed}->id)が“smartfeed:all”と一致したときに採用しています。このほかに抽出したリンクは “$args->{entry}->link”と表現されるので正規表現を使って限られたものだけ取り出すというようなことも可能です。


携帯でどこからでもアクセスできるようにCHTMLで出力するためには↓のようにします。

  - module: Publish::CHTML
    config:
      title: Plaggerで集めたアレ。
      work: /PATH/public_html/mobile
      mobile_gw: http://mgw.hatena.ne.jp/?
title
出力されるページのタイトルです。
work
出力する場所を指定します。書き出したい場所をフルパスで指定します。http://〜ではありません。<手抜き
mobile_gw
これは抽出したHTMLを携帯で読めるように変換してくれるサーバを書きます。ここでははてなのものが書いてありますが、Googleのものであれば “http://www.google.co.jp/gwt/n?”とかなんでも結構です。使ってみて好みに変換してくれるのを選べばよいと思います。


いまPla シリーズ 目次はこちらから

*1:いまさら聞けないPlagger <しつこい