待望の続編!(誰もまってねーよ

今回はTwitterIrcGateway編だよ!!!
IRCで書く書く詐欺してたら先に書かれたよ!!
導入部は@aquapple氏の、
Twitterではじめる、IRCの使い方 - aquapple - http://aquapple.com/2009/07/how-to-irc-with-twitter/
また、id:miz_techの、
TwitterIrcGatewayをサーバーに導入したらモバイル環境が快適すぎて幸福が実現した - /Users/mizchi/workplace/ - http://d.hatena.ne.jp/miz_tech/20091108/1257649653

を見るのがよろしいかと思われます。
これを見ることによって導入から基本的な使い方まではできると思うます。

あ、ちなみに対象の環境はWindows+LimeChat+TwitterIrcGateway2.x系です。

とりあえず先の解説で解説しなかったけど、自分がお勧めする設定がいくつかあるので先に。
Aquapple氏のページ、ReplyやFavの設定の通りに#Consoleに入室して、設定変更をするモード"Config"に変更をします。
その後、入力欄に1行ずつこれを入力してください。

  • set setTopicOnStatusChanged True
  • set BroadcastUpdate True
  • set BroadcastUpdateMessageIsNotice True
何をどうするかと言うと、上から、
  • ステータスを更新した際、#twitterのTopic(タイトルバーに出ます)を変更する。
  • ステータスを更新した際、他のchにもステータスを変更したことをブロードキャスト(通知)する
  • その際、通知する方法を変更する。(False:Privmsg[黒いメッセージ]/True:Notice[灰色のメッセージ])
    個人的にはNoticeがいいのでTrueにしていますが、俺は絶対にッPrivmsgの方がいいんだッ!という方は入力しなくてもOKです。
タブ(チャンネル)を追加する
基本的にTwitterIrcGatewayをインストールした直後だと、#twitterというチャンネルしか存在しない(Tweenで言うRecentですね)ので、とりあえずReplyなどを表示するチャンネルを追加します。

まず、
tig01
TwitterIrcGatewayとなっているところ(aquapple氏の解説の通りにやるとtwitterになるのかな?)を右クリックして、チャンネルを追加をクリック

tig02
チャンネル名を#Reply などとする。(自分の好きな名前で。#返信 とか #Mention とかでもOK。)

tig03
#Reply としたところをダブルクリックでチャンネルに入ります。

tig04
この状態だと他の人の発言も全部流れてくるので、

tig05
#Reply を右クリック→トピック変更 をクリックします。

tig06
このような感じで自分のIDやら名前やらを入れておくとよろしいかと思われます。キーワードの区切りはパイプ(Shift押しながらバックスペースの左)です。

OKを押したら、
14:04:49 *Wing_of_Blood topic : @Wing_of_Blood|にゃぶろー
などと出ると思います。

この状態で、別のIDから @Wing_of_Blood ほげほげ などと送信してみましょう。

tig08
このような感じでチャンネルに発言が表示されたら成功です。

応用でまたチャンネルを作って、Topicを指定することによってまた別の発言内容で絞り込みをすることができますね。

次は発言内容ではなくてユーザーで絞り込みをする方法です。
先ほどのようにチャンネルを作成して入室します。

tig09
作成したチャンネルを右クリック→招待 をクリック

tig10
絞り込みしたいユーザーIDを指定します。

これで、指定したユーザーを絞り込むことができます。
もちろん複数人絞り込むこともできます。

同様にチャンネルを右クリック→招待(ry ですね。

たまに間違えて招待してしまったり、やっぱりこの人はいいやって思うこともあるますので、
その時は、
tig11
ユーザーリストから外したいユーザーを右クリック→オペレーター操作→追い出す を選択します。
その際メッセージを入力してくださいと出ますが、特に何も考えることなくそのままEnterを押せばOKです。

あ、このままの設定だと自分の発言も流れてきてしまうので、

tig12
チャンネルを右クリック→モード変更 をクリック

tig13
p (プライベート)にチェックを入れます。

これで自分の発言が流れてこないようになります。この設定は自分の好みによって変更するのがよろしいかと思われます。自分はほとんどのchにこの設定をしてますけどね。

また、「このユーザーとこの発言、いずれかを絞り込みたい!」ということがあると思います。
その時は、チャンネルのトピックの先頭に|(パイプだよ!)を付けることによって解決します。

ReTweetコマンドを追加する
TwitterIrcGatewayは標準でReTweetができないのですが、
ファイルを1つ設置することによってReTweetコマンドを追加することができます。

TwitterIrcGatewayを解凍したフォルダに、DLRScriptSamplesというディレクトリがあります。
その中にtypablemap.rbというファイルがあるので、このファイルをTwitterIrcGateway-2.なんちゃら\Bin\Configs\めーる@あどれす\Scripts\ にコピーします。(おそらくScriptsディレクトリは存在しないので、自分で作ってください)
そうしたら、チャンネル#Console に移動します。
おそらく先ほどの設定をしたままなのでConfigモードになってるはずなので、(ニックネームの部分がRoot\Configの状態)
exitと入力します。
ニックネームの部分が Root になったのを確認したら、

DLR[enter] → reload[enter]と入力します。
14:46:40 Root\DLR: ファイル C:\なんたらかんたら\TwitterIrcGateway-2.0.3451.29063\Bin\Configs\めーる@あどれす\Scripts\typablemap.rb を読み込みました。
とメッセージが帰ってくると思います。

そうしたら、favやreの要領で"rt typablemap"と入力します。
ReTweetできたら成功です。

ただ、デフォルト状態だとTweenのReTweetと書式が若干違う+コメントを入力できないので変更します。

TwitterIrcGateway-2.なんちゃら\Bin\Configs\めーる@あどれす\Scripts\typablemap.rbを適当なエディタで開いて、(LFオンリーじゃないからメモ帳でもいいのかな?)
48行目の、RT: #{status.text} (via @#{status.user.screen_name})
というところを、
#{args} RT @#{status.user.screen_name}: #{status.text}
に変更して保存します。
完了したら、
#Consoleでreloadすれば(さっきの要領ですね)OKです。
ちゃんとReTweetできたら成功です。

スクなんとかピングをする
<注意>スクレイピングはTwitterの規約に違反しています。やる際は自己責任で。
いきなり文字が真っ赤になりましたが、スクレイピングです。
さっきの要領でscraping.pyをScriptsにコピーします。
そのままだと動かないので、22行目のinterval: 30の数字の部分を更新したい秒数(1秒から)に変更します。1秒からということは1秒こうしn(ry
そして、23~29行目を

        self.re_source    = re.compile(r"<span>from (.*?)</span>")
        self.re_statuses  = re.compile(r"<li class=\"hentry .*?</li>")
        self.re_content   = re.compile(r"class=\"entry-content\">(.*?)</span>")
        self.re_user      = re.compile(r"class=\"tweet-url screen-name\" title=\"([^\"]+)\">(.*?)</a>")
        self.re_anchor    = re.compile(r"<a href=\"(http://[^\"]*)\"[^>]*>.*?</a>")
        self.re_tag       = re.compile(r"<[^>]*>")
        self.re_status_id = re.compile(r"id=\"status_(\d+)\"")

に書き換えます。
これでreloadすればintervalで指定した秒数毎に更新されます。
あ、スクレイピングするならAPIでの取得時間を延ばした方がいいかもね。
#Console ConfigのIntervalを300より大きい数字ぐらいでいいかも。

あ、スクなんとかピングに関する質問はお受けしてません。完全に自己責任でやってもらえればよろしいかと思われます。

最後に。
この記事を書いたとってもた”めな見本→ @Wing_of_Blood