Go for it!

モーターサイクルと自転車とキャンプの日々。

PRaggerを使ってblog RSSをtwit (後編)

前編の続き。

前編にも書きましたが基本的な設定のみでは次のような問題があります。

  • PRaggerを実行するたびに投稿が重複する
  • 自分の投稿とPRagger botの投稿が区別できない

これらの問題を順に解消します。

PRaggerにはFilter::dedupedというフィルタが含まれていて、取得した内容をキャッシュすることで重複内容を取り除くことができます。

コンフィグファイルは上から順に実行されるので、Filter::dedupedの設定はinputとoutputの間に置く必要があります。pathの部分は適当なディレクトリを指定します。

- module: RSS::load
  config:
    url: http://mitsukuni.org/blog/feed/

この辺に入れる

  • module: Filter::deduped config: path: /home/user/local/pragger/cache
  • module: Publish::twitter config: login: password:

自分の投稿とブログRSSのタイトルが混じってしまう問題は投稿内容に何かしらのマークを付ければ判りそう。ELFさんがはてブのエントリっぽいものの先頭に「[B!]:」を付けていたので真似をします(笑)。

あちこちググってみたところ、暴満館さんのelem_subsプラグインが意図した動きをしそうでした。

~/local/pragger/plugin/elem_subs.rbとして保存し、Filter::dedupedの次に挟みます。

- module: RSS::load
  config:
    url: http://mitsukuni.org/blog/feed/
- module: Filter::deduped
  config:
    path: /home/user/local/pragger/cache

ここに追加

  • module: elem_subs config: regex: “^” to: “[blog] ” element: title
  • module: Publish::twitter config: login: password:

praggerを実行して確認!いいかんじ。

praggerの起動トリガをcronに預けて好きな時間(私は15分)で巡回させれば、新しい投稿を察知して自動的にtwitterに投稿してくれます!