記事本文
Twitter のインタフェース日本語化によって Twitter_reply_notifier が動作しない
ユーザにとっては既報ですが、 Twitter のインタフェースが先日日本語化されました。 それ自体については特に思うことはありませんが、それによって Twitter_reply_notifier という非常に便利な Greasemonkey が動作しなくなったので、その対処方法をメモしておきます。
なお、この記事の内容は Windows XP で、 Mozilla Firefox 2.x を使用している環境を前提に書いています。
対処方法その 1 - Greasemonkey による同時表示ではなく直接見る
Twitter_reply_notifier は Twitter検索で @Twitter ID を検索した結果と、 /replies の内容を取得して表示しているので、 Greasemonkey が使えないならその取得元を見ればいいじゃない、という対処。
そもそも「対処」ではない気もしますが、設定の変更等を全く行わずに自分あてのつぶやきを確認することができます。
対処方法その 2 - インタフェースを英語に再設定する
後述しますが、今回 Twitter_reply_notifier が動作しなくなっている原因は、 Twitter のページ内でトリガーのラベルとしている部分のテキストが、インタフェースの日本語化によって変更されていることによります。
<div class="section-header">
<a href="http://twitter.com/UserID" class="section-links">your profile</a>
<h1>Hi,</h1>
</div>
<div class="section-header">
<a href="http://twitter.com/UserID" class="section-links">プロフィール</a>
<h1>ようこそ!</h1>
</div>
ということで、インタフェースを英語に設定しなおせば、元通り Greasemonkey は動作します。 念のためにインタフェースを英語に設定しなおす方法を書いておきます。
設定をクリック
言語選択のプルダウンメニューから、「英語 - English 」を選択
「保存する」をクリック
対処方法その 3 - Greasemonkey を直接修正する ( 日本語インタフェースで使い続けたいあなたに )
せっかく日本語インタフェースになったのに、 Greasemonkey のために英語インタフェースに戻すのはちょっと......という場合は、 Greasemonkey の方を修正しましょう。 パッチは次のようになります。
--- twitter_reply_notifier.user.js.bak Fri Apr 25 22:00:01 2008
+++ twitter_reply_notifier.user.js Fri Apr 25 22:02:21 2008
@@ -175,7 +175,7 @@
var links = side.getElementsByTagName("a");
var username ='';
for(var a in links){
- if(links[a].text=="your profile"){
+ if(links[a].text=="プロフィール"){
username=links[a].href.substr(19);
//alert(username);
break;
パッチってなに ! という方は Windows環境で「ファイルにパッチ(patch)を当てる」 : 亜細亜ノ蛾 - Weblog などを参考にしてください。 もしくは、 Documents and Settings\user directory\Application Data\Mozilla\Firefox\Profiles\Profile Directory\gm_scripts\ 内に twitter_reply_notifier.user.js があるので、それをテキストエディタで開き、 178 行目の your profile をプロフィールに書き換えて保存しても OK です。 なお、保存する際の文字コードは UTF-8 にしておく必要があります。
対処方法その 4 - Greasemonkey を修正したものをインストールする ( 日本語インタフェースで使い続けたい上に、細かいことはいいから対処したいあなたに )
前項のパッチあてや修正めんどいよ ! という方は、 http://hxxk.jp/files/js/twitter_reply_notifier.user.js に修正済のものを置いていますので、それを今一度インストールすることで対処可能です。 ( 作成者の小野マトペさんには承諾を得ています。 )
おまけ - 表示件数を変更する
個人的には Twitter_reply_notifier の 3 件という表示件数は少ないと考えているので、表示件数を勝手に増やしています。
--- twitter_reply_notifier.user.js.bak Fri Apr 25 22:33:30 2008
+++ twitter_reply_notifier.user.js Fri Apr 25 22:35:05 2008
@@ -113,7 +113,7 @@
var regTime=/(\d{4})-(\d{2})-(\d{2})T(\d{2}):(\d{2}):(\d{2})/;
- for(var i=0;i<3;i++){
+ for(var i=0;i<10;i++){
tr=reg.exec(html);
if(!tr)break;
al="status_id:"+tr[1]+"\nname:"+tr[3]+"\ndesc:"+tr[5]+"\ntime:"+tr[8];
@@ -148,7 +148,7 @@
var regPubDate=/<pubDate>(.*)<\/pubDate>/g;
var items=regItems(html);
- for(var i=0;i<3;i++){
+ for(var i=0;i<10;i++){
var mes = new Message();
mes.id = regID.exec(items)[1];
mes.name = regTitle.exec(items)[1];
直接修正する場合は 116 行目および 151 行目です。

