IRC2Twitter

※記事内に商品プロモーションを含む場合があります

TwitterのBotを人工無脳で作って見たではTwitter IRC Gatewayを使っていましたが、
@付投稿などフィルターの設定が通らないのでしょうがないので自分でつくりました。

と行ってもツイッターへのAPI経由投稿はOAuthがあり実装はかなり面倒です。
しかし、HSPに便利なモジュールが有りました。
それが、TsubuyakiSoup。

モジュールTsubuyakiSoup.asやサンプルの著作権を放棄するとの事だったので
サンプルスクリプトをイロイロ合体させてOAuthとタイムラインの取得に成功。
その後ツイートも出来ました。

で、問題はIRC。
IRCのRFC、RFC1459: Internet Relay Chat Protocol (IRC)を見ても各コマンドなどの
説明はあるものの、接続時から時系列でわかる資料がありません。

そこでWiresharkでパケットをキャプチャしたり、
試行錯誤して完成しました。

結果、RFCはあんまり守っていません。
4コマンド(TOPIC,JOIN,Whois,PRIVMSG)しか実装していません。

デバック中

デバッグ時はウインドウに表示していますが、
度々、応答なしになるので1週間稼働させて問題無かったので
現在はウインドウは表示されません。

また、ツイッターへの投稿エラーが時々発生するので
5回まで再試行する様にしました。
でもたまにエラーで投稿出来ない場合があります。
多分、同一内容のツイートの可能性もありますが。

今の所のIRC2T(IRC2Twitter)の仕様

接続とJOIN後70秒毎にタイムラインを取得、
タイムラインから最新1件の自分宛の@付投稿を取得しIRCへ流す。
その時にNICKを記憶しておく、一定時間経過したら消去。

IRCに投稿があったらツイートへ流す。
もし、ニックネームが記憶されている場合は@付投稿にする。
投稿に失敗した場合は5回まで再試行する、再試行時は約20秒待つ

ログを生成する。

といった感じです。
現在はまだ開発中なので非公開ですが状況が整ったら公開します。
現在@ha_kubで使用中です。

追記
ログ内容はこんな感じです。