TweetIrcGateway

TIG終了のお知らせ

2015年7月中旬、ただのTLを見るだけのツールになってしまった。

TIG以外の類似ツールもIRCクライアントを使用する以上、従うことが不可能なので同じようになっていくのではないかと思う。ただ個々人が回避策を取れる可能性はあるようなので、このページはそのままにしておくことに。

公式サイト 

TwitterIrcGatewayTweetIrcGateway(OAuth関係だったかで名称が途中で変更された)、通称 TIG はTwitterクライアントで、.NETで書かれているためWindowsおよびmonoが動くような環境で動作する。

公式サイトは以下のサイトにあるが、あまり詳しい説明はないので設定方法はぐぐった方が吉。色々な人が紹介している。

使ったことはないが、類似品に Perl の POE を使って実装したものもある。

Rubyによるatig.rbという類似品もあるらしい。

Twitter API 1.1関連

2013-05-07頃にTwitter API 1.0対応が打ち切られたので、ともかく現在は新しいのを入れないと動かない、らしい。と思ったらまた延長されたらしいけど、いずれは打ち切られるので…。

この「ひどいスクリプト」のうち5月7日現在json.zipがこのURIのままでは入手できないので、適当に入手する。TwitterIrcGatewayCore.dllは以下にある最新版と差し替える。中の人はちょくちょく更新してるみたいなので。

それ以外は必須ではないが個人的にはUserStreamを使いたいので、これも以下にある最新版を入手してAddInsディレクトリに入れる。その他にも入れたいものがある人は入れる。

TypableMapも差し替える。

その他の使い方は前のバージョンと大体同じはず。

オプションとか

何もしなくても使えないわけではないので好みの問題だけど、主観的に便利なものだけ紹介。

公式RTをするためのスクリプト

typablemap.pyを /Configs/ユーザ名/Scripts にコピーして、次のTypableMapの設定をする。

TypableMap

これにより@やRT、favがしやすくなる。

#Console というチャネルにjoinする。

/join #Console

まずtypablemap.pyを有効にする。

DLR
reload

うまく行けば

ファイル /path/to/tig/Configs/USERNAME/Scripts/typablemap.py を読み込みました。

と出るはず。

続いてConfigコンテキストでTypableMapを有効にする。

exit
Config
set EnableTypableMap true

こうすると各tweetの末尾に記号がつくようになる。

(shoo_ka) ううむ (aiku)

これに対して

re aiku テストー
rt aiku
fav aiku

とかやると@やRT、favができるようになる。なおreとfavはtypablemap.pyがなくてももともと動作する。

UserStream

標準では定期的にポーリングしているだけなので、UserStreamだと更新され次第流れてくる。設定方法はtheworldさんが書いている。普通は最新のDLLを入れたほうがよさそう。

OSごとの設定やpircと組み合わせる話

Tiarraで使う

TwitterはUTF-8で、IRCは日本では伝統的にISO-2022-JPを使っている。だからTiarraでIRCnetなんかと同時につなぐためには文字コード変換について考えないといけない。TweetIrcGatewayで文字コード変換することはできるはずだが、あまり動作がよろしくないらしいのでTiarraで変換する。現在のTwitterの状況を考えると文字コードはUTF-8のままにしておいた方がいいと思う(特にキモい顔文字的な意味で)。

TwitterIrcGateway.exe.config について

           <setting name="Charset" serializeAs="String">
               <value>UTF-8</value>

tiarra.conf について

general {

# …

client-in-encoding: utf8
client-out-encoding: utf8

# …

}

# …

twi { host: xxxxxxxxxxxx port: xxxxx user: shoo_ka name: shoo_ka # password: xxxxxxxx out-encoding: utf8 in-encoding: utf8 }

いちばん最初はOAuth認証のため、最初は上記のようにパスワードを設定せずに接続し、$OAuthから来るprivmsgの指示に従ってOAuth認証とIRCクライアントがTIGに接続するときのパスワードを指定する。

Windows 版

IRCクライアントは名前(Full Nameを入力する欄であり、nickではないらしい)にTwitterのアカウント名を、パスワードは最初は空にして接続し、$OAuthから来るprivmsgの指示に従ってOAuth認証とIRCクライアントがTIGに接続するときのパスワードを指定する。

LimeChatなら usyさんのWiki とか参照。

TIG自体は.NETが入ってればいきなりTwitterIrcGateway.exeを起動するだけで普通に動く。

FreeBSD 版が動かないよ

この節は一部古いけど一応残しておく。

  • TwitterIrcGateway for FreeBSD 6 (Testing)

なるものが置いてあるが、FreeBSD 7.x だと(OS バージョンの問題じゃないと思うが)ライブラリがないとか言って起動しない。

/libexec/ld-elf.so.1: Shared object “libpthread.so.2” not found, required by “TwitterIrcGatewayCLI”

これは mono が組み込まれたものらしいので、多分 mono まわりがおかしい。よって mono を自作する。

portinstall lang/mono

そしたら

/usr/bin/ld: cannot find -lgio-2.0

でコンパイル失敗。ぐぐったところ

というサイトがあって、

cd /usr/ports/devel/glib20
make deinstall
make reinstall

して再び mono を portinstall することで解決(一時的に glib20 がなくなるのでそのリスクは考えること)。

mono TwitterIrcGatewayCLI.exe 

で起動する。Windows 版(というか GUI 版)と違って設定ファイルを読んでくれたりはしないので、引数で指定する。

mono TwitterIrcGatewayCLI.exe --help

すると色々出てくるので参考にする。

私は結局 tig.sh なるものを作った。これを cron から起動する。

#!/bin/sh

cd $HOME/bin/TwitterIrcGateway
exec /usr/local/bin/mono TwitterIrcGatewayCLI.exe \
--encoding=UTF-8 \
--enable-replies-check=true \
--bind-address=192.168.0.X \ ←直してね
--channel-name=twitter > /dev/null 2>&1

(2009.03.22 – 2015.08.29)