【ハウツー】

「habu」 - Python版PlaggerでRSSを加工する

2 habuの基本的な使い方

    大谷弘喜  [2007/08/29]

    habuを使うには、まず「habu.cfg」という名前で設定ファイルを編集します。設定ファイルはPlaggerと同様にyaml形式を採用しています。なお、現在配布しているtarボールには、サンプルとして次のような内容のhabu.cfgを同梱しています。

    
    global:
      timezone: Asia/Tokyo
      log: stdout
    
    pipeline:
      rss_fetcher:
        - module: subscription.config
          config:
            feed:
              - http://www.liris.org/blog/RSS
              - http://dev.ariel-networks.com/Members/blog_update/RSS
        - module: filter.join
        - module: filter.sort
          config:
            reverse: True
        - module: publisher.rssfeeder
          config:
            file: "out.rss"
    

    このサンプルでは、複数のサイトからRSSファイルを取得して、日付でソート後1つのファイルにしています。これをコマンドラインから実行してみます。

    
    $ python runhabu.py
    

    正常に実行されると、カレントディレクトリにout.rssというファイルが生成されます。

    次に、このRSSから、本文中にpythonという単語が書かれているエントリだけを抜き出してみます。次の内容で「python.cfg」を作成してください。

    
    global:
      timezone: Asia/Tokyo
      log: stdout
    
    pipeline:
      rss_fetcher:
        - module: subscription.config
          config:
            feed:
              - http://www.liris.org/blog/RSS
              - http://dev.ariel-networks.com/Members/blog_update/RSS
        - module: filter.join
        - module: filter.grep
          config:
            str:
              summary: python
        - module: filter.sort
          config:
            reverse: True
        - module: publisher.rssfeeder
          config:
            file: "out.rss"
    

    habu.cfgからの変更点は、moduleの「filter.grep」を追加しただけです。プラグインは「チェーン」になっており、チェーンのフィルタプラグインを変更することでデータを加工します。

    これを実行するには、

    
    $ python runhabu.py python.cfg
    

    と入力します。今度は、out.rssの中の各エントリは「python」という文字列が含まれているものだけになりました。

    プラグインのチェーンは1つだけではなく、pipelineの中に複数指定できます。今回のpipelineではrss_fetcherというチェーンしかありませんが、複数のpipelineを指定すると一気に複数RSSを取得し、加工することができます。

    また、サンプルの設定ファイル「cron.cfg」にあるように、schedulerを指定して実行すると、デーモンのようにプロセスが常駐し定期実行できます。

    なお、プラグインの種類や各プラグインの使い方、作り方のドキュメントは残念ながらまだありません。「ソースを読め」という思想を持っているわけではないので、用意できるまでもうしばらくお待ちください。

    habuの今後

    多くのUNIXツールはプログラマ向けのソフトウェアです。現状では、設定ファイルを直接編集する必要があるなど、habuもプログラマやギークを意識した作りになっています。また、まだフィルタなどプラグインの種類が少ないなど機能不足な点は否めないので、しばらくは基本機能の充実が目標です。

    その後将来的には、

    1. サーバー機能の搭載(RSSを再配布できる仕組みの提供)
    2. グラフィカルな設定ツールを提供
    3. Windowsとの親和性(サービスへ登録やインストーラなど)

    を考えています。特にサーバー機能では、WebだけでなくIMAPやIRCなどでも気軽に情報が取り出せるようにしたいですね。

    関連記事

    関連サイト

    関連したタグ

    新着記事

    特設サイトの情報

      人気記事

      一覧

        イチオシ記事

        新着記事

        特別企画

        マイナビニュースマガジン