atig.rbを使ってみた

atig.rb - Another Twitter Irc Gatewayをつくってみたよ - みずぴー日記
id:mzpさんがatig.rbというのを作ったそうで、早速使ってみた。


さくらインターネットのサーバーではsqlite3-rubyというのを入れようとするとエラーになっていたので下記を参考にしてインストール。
http://blog.mrdad.net/lettas/?p=123


特に躓くことなく導入できた。

$ git clone git://github.com/mzp/atig.git
$ cd atig
$ ruby atig.rb 

で、デフォルト16668ポートで起動。
irssiではいままでのtig.rb用の設定がしてあればそのまま使える。oauthを使うようになったのでpasswordとかは必要なくなるそうで。
使い方はドキュメントがすごくしっかり書かれているので、これを見ればすべて分かる!
http://mzp.github.com/atig/index.html
最初のoauth認証だけはブラウザから認証しないといけないのでちょっと手間だけど、やり方が丁寧に解説されているので問題無し。xAuthは敢えて使っていないのかな。


設定ファイルで色々カスタマイズできるというのも魅力的。
http://mzp.github.com/atig/config.html
自分の場合、listは作っておいてなんだけどまずほとんど見ることがないので、Atig::Gateway::Session.channelsからListを削除。
$HOME/.atig/config ファイルに以下を書く。

Atig::Gateway::Session.channels = [
                                   Atig::Channel::Timeline,
                                   Atig::Channel::Mention,
                                   Atig::Channel::Dm,
                                   Atig::Channel::Retweet
                                  ]

これで「自分のhome_timeline」「自分宛の発言」「自分宛のDM」「自分がフォローしているヒトのRetweet」の4チャンネルだけが作られるようになる。DMはほとんど来ないしRetweetも積極的には見ないから消してもいいかもな… MentionもTimelineにマージできればわざわざ独立したチャンネルにする必要ないかも。やり方をあとで調べてみよう


ついでなのでAtig::Gateway::Session.ofiltersもいじってみた。
$HOME/.atig/config に以下を追記。

Atig::Gateway::Session.ofilters = [
        Atig::OFilter::EscapeUrl, Atig::OFilter::ShortUrl, Atig::OFilter::Geo, Atig::OFilter::Footer, Atig::OFilter::Zenra
    ]

で、atig/atig/ofilter 以下に全裸ofilterを作ってみた。 footer.rbのコピペ。

#! /opt/local/bin/ruby -w
# -*- mode:ruby; coding:utf-8 -*-

module Atig
  module OFilter
    class Zenra
      def initialize(context)
      end

      def call(q)
        q.merge :status => "#{q[:status]} 全裸で。"
      end
    end
  end
end

これで起動すると、自分の呟きの末尾に必ず「全裸で。」がつくようになる。このcallメソッドの中身で形態素解析つかったりしてもっと頑張って書けば動詞の前に挟み込むようにもできるはず。やらないけど。