Hello plagger World

plaggerを触ってみました。結構時間がかかったのでメモ書きです。

練習のため、はてなブックマークのトップのRSSから、300件以上ブックマークされているエントリをCSVに、更にそのうち500件以上ブックマークされているエントリをDBに格納してみました。肝心のフィードを弄るところの理解が中々進んでいませんが、とりあえずは、以下の2つを覚えておけば欲しいフィードとエントリを集められそうです。

  • 特定の条件にてフィードを削除
    Filter::Rule
  • 特定の条件にてフィードを複製
    SmartFeed
global:
  assets_path: /usr/local/share/plagger/assets

plugins:
  # 入力となるFeedの設定
  - module: Subscription::Config
    config:
      feed:
        - url:  http://feeds.feedburner.com/hatena/b/hotentry

  # ユーザ数を取得して、エントリを修正
  - module: Filter::HatenaBookmarkUsersCount
  - module: Widget::HatenaBookmarkUsersCount

  # 300件以下は削除
  - module: Filter::Rule
    rule:
      module: Expression
      expression: $args->{entry}->{meta}->{hatenabookmark_users} > 300

  # 500件以上は複製
  - module: SmartFeed
    rule:
      module: Expression
      expression: $args->{entry}->{meta}->{hatenabookmark_users} > 500
    config:
      id: copy

  # 出力先1
  - module: Publish::CSV
    config:
      dir: .
      encoding: utf-8
      filename: out.csv
      mode: create
      column:
       - title
       - permalink
    rule:
      expression: $args->{feed}->id ne 'copy'

  # 出力先2
  - module: Store::DBIC
    config:
      schema_class: Plagger::Schema::MySQL
      connect_info: ['dbi:mysql:plagger_db', 'plagger_user', 'plagger_pass']
    rule:
      expression: $args->{feed}->id eq 'copy'

まだ、巷で言われている超便利!は感じられてないですが、それでも可能性が凄くあるのは解ります。あと、複数のYAMLでチェーン出来るともっと便利だと思うのは気のせいかしら。

Leave a Reply

Your email address will not be published. Required fields are marked *