りむっちスケッチ

ハニカムログ

LinuxへのTwitterIrcGatewayの導入をお復習いする

TIGのデキのよさととっちらかり具合

とんでもないくらい手がこんだデキのTwitterIrcGatewayをひさしぶりに手動で導入しなおした。…しかし、情報が散らかりまくっていてとてもとてもどれいれたらまともに動くのかさっぱりピーマンであったので、少し状況を整理しながらどれを突っ込めば良いんだと思案…

TwitterIrcGatewayの過去のコードを追っていくと2008年とかだったりのがそのままそっくり残っていたりする。monoベースでLinuxでも動作するように設計されたシステムはとても導入しやすく、Scriptsも自分で組めてIronRubyIronPythonで駆動する仕組みだ。

あまりにデキがよく最高にクールなんだけど、あらゆる場所に情報がとっちらかっており、どうやって動作させたもんやらとあきらめてOpentigを使っちゃう人も多いのではなかろうか。

TIG最速インストール道

ゴールとして、TIGをいれて、自分のIRCクライアント上でfavやrtやらがまぁできる状態を目指す。 それ以上のことをしたければましてくとかを漁ってください。

CentOS6へTIGをぶち込む

ぐぐると情報が掲載されてるブログやページがバンバンでてきてバンバン古いわけなので、そういうのは全部無視していただいて以下の手順で。

Mono 2.6.4 ベースランライムバンドルをゲットする

f:id:rimtty:20140617103650p:plain

id:mayuki が公開している公式サイトから

http://www.misuzilla.org/Distribution/TweetIrcGateway/

32bitをつかってるんだったらその上のやつをゲットしよう

※ 2.6.4 の mono を自分でいれれるんだったらこれを使わなくてもOK

ビルド済みのTIGバイナリをゲットする

https://github.com/opentig/TwitterIrcGateway/

ここにいってもビルド済みのバイナリが無いので、id:shunirr が自動CIビルドしているのでここのgitリポジトリを活用する。

同一ディレクトリに2つのデータを展開する。

$ mv TwitterIrcGateway-RuntimeBundle-Linux_i386_x64-Mono-2.6.4-20100508.zip /opt/
$ cd /opt/
$ unzip TwitterIrcGateway-RuntimeBundle-Linux_i386_x64-Mono-2.6.4-20100508.zip
$ cd TwitterIrcGateway
$ git clone git@github.com:opentig/TwitterIrcGatewayBinary.git .
$ chmod 755 TwitterIrcGateway*

TIGを起動する

インターネットからTIGに繋がるようにTIGを起動する。

cd /opt/TwitterIrcGateway
./TwitterIrcGateway --port=16669 --bind-address=<GlobalIP> --encoding=utf-8

# ポートを指定しないと、127.0.0.1で立ってしまう。内部からしかアクセスできなくなる。

Start TwitterIrcGateway Server v2.6.5206.23333
[Configuration] BindAddress: <Global IP>, Port: 16669
[Configuration] EnableTrace: False
[Configuration] IgnoreWatchError: False
[Configuration] Interval: 90
[Configuration] ResolveTinyUrl: True
[Configuration] Encoding: Unicode (UTF-8)
[Configuration] SetTopicOnStatusChanged: False
[Configuration] EnableDropProtection: True
[Configuration] IntervalDirectMessage: 180
[Configuration] ChannelName: #Twitter
[Configuration] EnableRepliesCheck: False
[Configuration] IntervalReplies: 300
[Configuration] DisableUserList: False
[Configuration] BroadcastUpdate: False
[Configuration] ClientMessageWait: 0
[Configuration] BroadcastUpdateMessageIsNotice: False
[Configuration] Proxy:
[Configuration] PostFetchMode: False
[Configuration] EnableCompression: False
[Configuration] DisableNoticeAtFirstTime: False
[Configuration] OAuthClientKey:
[Configuration] OAuthSecretKey:

IRCクライアントから、該当のポートとIPへ接続してみる。LimeChatだとこんな感じ。

f:id:rimtty:20140617110140p:plain

接続後、アプリケーション認証用のURLがでるので、指示に従う

f:id:rimtty:20140617110223p:plain

f:id:rimtty:20140617110241p:plain

ここで認証許可を出すと、PINコードが発行されるので、LimeChatに戻ってPINコードを入力する。

f:id:rimtty:20140617110309p:plain

これで、TIGの設定は完了。Configフォルダとhogeユーザーのフォルダができあがる。

/opt/TwitterIrcGateway/Config/hoge

DLRスクリプトをつっこんで拡張する

retweets機能とかバクツイとかを id:mashiro が提供しているのでそれを丸ごとぶち込む。

$ cd /opt/TwitterIrcGateway/Config/hoge
$ mkdir Scripts
$ git clone https://github.com/opentig/tig-dlr-scripts.git

IRCでTIGに接続し、

$ /join #Console
してConsoleチャンネルに入室。
$ dlr
DLRコンテキストに移動し
$ reload
とタイプしScripts以下をリロードさせる。

Typablemapをセットする

$ /join #Console
してConsoleチャンネルに入室
$ config
として、コンフィグコンテキストに移動し、
$ set EnableTypableMap true
とする。
ついでにTypebaleMapのカラーを赤にする
$ set TypableMapKeyColorNumber 4

Typable文字列をしていてコマンドを投げればrtとかfavできる

$ rt {tm}
$ fav {tm}

まとめ

TIGは最高にクールなプロダクトだと思う。設置も実に簡単だし、ユーザーごとにすべて個別に空間が管理されてるのは素敵だ。monoつかってるけど全然メモリ食わないしとても良い。次回はTiarraとTIGとnmaについて書いておこうと思う。