最近プラグインを作ったりしてTermtterが便利になってきたので,ご紹介です.
Gemにはまだ入っていません
最近作ったプラグインなので,gem termtterには,まだ入っていません.GithubのTermtterをcloneしてbin/termtterを使うと,今回紹介するプラグインが使えます.
https://github.com/jugyo/termtter
UserStream受信する
Termtterはデフォルトでは定期的にタイムラインを取得しに行くが,user_streamプラグインを利用すると,UserStreamを受信できます.
favoriteされた,followされた,statusをdeleteした,listに追加されたり外されたりした,といったイベントも流れてきて便利です.
Termtterはデフォルトでは定期的にタイムラインを取得しに行くので,1分くらいは何か入力したりすることができますが,UserStreamで1秒ごとに何か流れてくると,日本語を打ったりするのが不便です.そこで,TermtterをIRCサーバーにして,IRCクライアントから利用すると便利です.
IRCサーバーにする
irc_gwプラグインを使うと,TermtterがIRCサーバーになります.#termtterチャンネルからTermtterの全ての機能を利用できます.gem net-ircが必要です.
デフォルトで16669番をlistenします.ポートはconfigで変更できます.
config.plugins.irc_gw.port = 6669
パスワードで認証とかはしないので,Termtterをサーバーで動かして外部に公開等する際はtiarra等を使うとよいです.
発言するには,普通にIRCに発言するようにします.
こんにちは
コマンドを実行するには,/つきでコマンドを入力します.
/search テスト
コマンド: の形式でもコマンドを実行できます.MacのLimeChatでは,コマンドを途中まで入力してタブを押すと,補完されて,この形になります.
search: テスト
iPhoneのLimeChatから利用すると便利で,evalコマンドを使うと,iPhoneからRubyのコードを実行することができます.
例えば,以下のようにして,現在時刻を知ることができます.iPhoneからRubyのコードを実行して現在時刻を知ることができ,大変便利です.
> eval Time.now => 2011-02-13 13:50:22 +0900
MacのLimeChatとiPhoneのLimeChatで動作確認しています.
短縮URLを展開してタイトルをつける
Termtterには短縮URLを展開するプラグインが4種類あります.
appendtitleプラグインを使うと,短縮URLを展開して,ページのタイトルを追加することができます.
例えば,以下のbit.lyのURLが貼られたツイートが,
便利なウェブサービスです http://bit.ly/fHJ1N9
以下のように,bit.lyが展開され,リンク先のページのタイトルを含むツイートになります.
便利なウェブサービスです http://b.hatena.ne.jp/ (はてなブックマーク)
bit.lyのリンクを片っ端から開いていく必要がなくなり,便利です.
MongoDBにログを貯める
mongoプラグインを使うと,UserStreamで受信したタイムラインやイベントをMongoDBに保存することができます.
ローカルにMongoDBが動いていて,gem mongoが必要です.
mongoプラグインを使うと,MongoDBを用いたコマンドが定義されます.
mongo_favsコマンド
mongo_favsコマンドを使うと,MongoDBのログからfavstarみたいなのを生成できます.以下のように,自分の発言のうち,最近favoriteされたり,RTされたりしたものを表示します.
> mongo_favs (中略) fav(12) fuba, nknh, seiichirou2, nomolk, riko, todesking, cale_dat, romanticanti, gotical, hanazulu, sinenai, herrenmoral RT(4) fuba, mori_dev, todesking, cale_dat 努力温泉芸者っていうバンドやりたい fav(1) tily gem easy_mplayer,かっこいいしよくできてるけど,pauseするとunpauseできない,irbでMPlayerのインスタンスを評価すると勝手に再生されるfav(1) siyo さらなる「#!」URL批判 - karasuyamatenguの日記 http://htn.to/abMK5v fav(1) cxx BBT2公開されたら使おうと思いながら2年くらい経ってる RT(1) technolize 人肉のレシピ 1品 [クックパッド] 簡単おいしいみんなのレシピが92万品 http://htn.to/eHouJh
favstarを見に行く必要がなくなり,便利です.
mongo_searchコマンド
mongo_searchコマンドで,MongoDBからツイートを検索できます.
データベースを全文検索できるので,Twitterの検索APIにはインデックスが作られないようなキーワードでも検索でき,便利です.
また,受信したログが全て保存されているので,他のアプリケーションからデータを利用でき,役立ちます.
リプライをim.kayacに通知する
im_kayacプラグインを使うと,リプライを受信した瞬間にim.kayacに通知できます.設定したキーワードを受信もできます.
iPhoneのLimeChatはバックグラウンド実行していると,自動的に10分ほどで接続が切れるので,このように通知が来るのは便利です.
gem im-kayacが必要です.
readlineがないとおかしくなる
readlineがないと,おかしくなることがります.readlineがないと,Readline.readlineがスレッドコンテキストの切り替えをブロックして,タイムラインが流れてこず,エンターキーを連打すると少し流れてくる,といった状態になります.
rvmを利用している場合は,rvmがreadlineのパッケージを管理しているので,それを利用するとよいです.
こんな感じです.
rvm package install readline rvm install 1.9.2 -C --with-readline-dir=$HOME/.rvm/usr rvm install 1.8.7 -C --with-readline-dir=$HOME/.rvm/usr
readlineが入っているかどうかは,irbを起動して,C-rを入力します.
(reverse-i-search)`':
と表示されれば,readlineが入っています.
termtter configです
ぼくのtermtter configです.上に述べたプラグインを読み込んで,細かい設定をしています.
config.token_file = "~/.termtter/token" # 発言する際に確認を求めない config.confirm = false # 標準出力に色をつけない config.plugins.stdout.colors = [0] # デフォルトでは開発者が発言すると赤く光るが,色をつけたくないので,抑制する config.plugins.stdout.sweet_color = 0 # プラグインをロード Termtter::Client.init do |t| t.plug 'irc_gw' t.plug 'user_stream' t.plug 'appendtitle' t.plug 'mongo' end
Termtterは便利ですが,便利なプラグインが200個くらいあって,何がどういう機能を持っていて,どれがメンテナンスされているのか全く分からないので,ほしい機能は自作すると良いです.