TwitPSMをほんのちょっと改造してみる
TwitPSMを使うとLive Messengerのコメントをそのままtwitterにも投稿できて非常に便利なのだけど,コメント欄のメッセージを何でもかんでもtwitterに投稿してしまうという欠点がある。そこで,TwitPSMのスクリプトにほんのちょっとコードを加えて,メッセージに特定の文字列が含まれる場合のみtwitterに投稿するように改造してみる。
Messenger Plus! Liveのインストール先ディレクトリを開くと"Scripts"というディレクトリがあるので,その中にある"TwitPSM"というディレクトリの"TwitPSM.js"というスクリプトをテキストエディタで開く。スクリプトのソースを見ると,2行目にTwitterというオブジェクトの定義があり,その中でsendというメソッドが定義されていることが分かる。このsendの動作に少し変更を加える。
具体的には,13行目の空行の部分に以下の処理を加える。
//message not includes special-string if(!message.match(/^@/)) return; message = message.replace(/^@/, "");
こうすると,メッセージの先頭に「@」という文字がある場合のみtwitterに投稿するようになる。逆に,メッセージの先頭に「@」という文字がある場合のみtwitterに投稿しないよう動作を変更したいなら
//message includes special-string if(message.match(/^@/)) return;
とすればいい。コード中の正規表現を適宜書き換えることにより,twitter投稿の条件となる文字列は自由に設定できる。書き換えが終わったら,スクリプトを上書き保存してメッセンジャを再起動すれば完了。っていうかスクリプトがJavaScriptで書かれているようなので,いくらでも動作を変更できそうですね。これは便利。
追記 (2009-04-30T01:36:10+09:00)
sendメソッドに書き足すよりは,その下の28行目にあるOnEvent_MyPsmChange関数を
function OnEvent_MyPsmChange(new_psm){ Debug.Trace(new_psm); if (new_psm.match(/^@/)) { new_psm = new_psm.replace(/^@/, ""); Twitter.send(new_psm); } }
こういう感じに書き換えた方が分かりやすかったかも。また,投稿後にメッセンジャのコメントに残る「@」が気になる場合は
function OnEvent_MyPsmChange(new_psm){ Debug.Trace(new_psm); if (new_psm.match(/^@/)) { new_psm = new_psm.replace(/^@/, ""); Twitter.send(new_psm); Messenger.MyPersonalMessage = new_psm; } }
とすることで,投稿後に自動で削除することができる。それとひとつ言い忘れたのだけど,スクリプトはわざわざディレクトリを辿らなくとも,Messenger Plus! Liveのオプション画面からエディタウィンドウを開いて編集できるみたい。