Twitter web を再武装 - Minitweet Revisited.
さてさて、半年前後で私のネットライフ(笑)の屋台骨にすっかり収まってしまった twitter と tumblr 、そしてさらに持ち前のパクリ根性もとい改造気質が災いして最近は Greasemonkey などちょこちょこ書いておったのですが、今度は twitter 用に少し前につくったキーボード使い向けぐりもん
「Minitweet」を jQuery デビューついでにさらに大改造してみました。
【追記/機能追加: 2009-11-01】
1. 何ができるの?
Minibuffer と LDRize の機能を利用して、twitter web で以下に挙げるようなことができるぐりもんを書いてみました。
1.1 ナビゲーション関連
1.1.1 先頭/末尾へスクロール[0/9]
1.1.2 Home/Replies/Direct Messages/Favorites[1/2/3/4]
1.1.3 自動reload on/off[a]
1.1.4 入力欄フォーカス[u]
1.1.5 post[shift+ENTER]
1.1.6 (new) 角丸広告(?)リンクおよび日本語UI使用時の広告の非表示
1.2 アクション関連。
1.2.1 リプライ(指定/一括)[r]
1.2.2 RT[e]
1.2.3 fav/unfav(指定/一括)[F]
1.2.4 post中のリンクを別タブで開く(一括)[L]
1.2.5 in_reply_toの遡上[i]
1.2.6 ユーザページを別タブで開く(指定/一括)[H]
1.2.7 次x3/前x3[J/K]
1.2.8 post直後のreload on/off[A]
1.2.9 (new) 選択中テキストを別タブで検索(Google/Wikipedia)[G/W]
2. どうやって?
2.1 共通の前提
毎度毎度 Firefox 3 以降限定です。で、Greasemonkey、Minibuffer と LDRize はインストールしておいてください(参考:
知らないと損する!Webを素早く閲覧できる便利ツール「Minibuffer + AutoPagerize + LDRize」)。
今回のぐりもんのインストールはこちら>
Wescript - Minitweet Revisited
2.2 かんたんな操作説明
まぁ1.1と1.2を見て触ってもらうのがいちばん早いんですが、せっかくなのでひとことずつでも操作説明をしておきます。
◆1.1 ナビゲーション関連
1.1.1 先頭/末尾へスクロール
[0/9]
1.1.2 Home/Replies/Direct Messages/Favorites
[1/2/3/4]
1.1.3 自動reload on/off
[a]
1.1.4 入力欄フォーカス
[u]
1.1.5 post
[shift+ENTER]
1.1.6
(new) 角丸広告(?)リンクおよび日本語UI使用時の広告の非表示
1.1.1 については、これだけを独立させたぐりんも書いてます(
Wescript - Scroll with 0/9)。これがあると twitter web 以外でもキーボードだけで先頭/末尾を行ったり来たり。AutoPagerizeがあるとさらに便利です。
1.1.2 はそのまま。1.1.3 まぁそのままといえばそのままですが、off→onにしたときは即reloadされるようになってます。なお、チェックボックスの少し下にあるフォームでreload間隔を設定可能。設定値はブラウザに保存されます。ただし、60秒より短い間隔は設定できないようにしてあります。まぁそれ以上短くしてしまうとクライアントにもサーバにもよくないよ、ということで(fig1)。

1.1.4 ですが...これはぶっちゃけあまりちゃんと動きません。どうもときによってどこにフォーカスがあたってるか違うようで、素直に動くこともあれば、tabを叩いた方が早いとか、マウス使えよとかそういうことになりがち。まぁ半ばおまけの機能です(笑)。
1.1.5 も小さいですが大事な機能のひとつ。postするためだけにキーボードから手を離したくないので、入力欄にフォーカスがある状態でshift+ENTERを叩くとpostするボタンを叩けるようにしています。
【追記: 2009-11-01】
1.1.6 として、広告っぽい要素を非表示にしてみました。まぁ敢えて広告を非表示にすることには賛否両論あろうかと思いますが、まぁ「それはやめとけ」とたくさん言われる程度にこれが使われ始めたら 1.1.6 抜きのver.の配布でもしようかな、と。
◆1.2 アクション関連。
1.2.1 リプライ(指定/一括)
[r]
1.2.2 RT
[e]
1.2.3 fav/unfav(指定/一括)
[F]
1.2.4 post中のリンクを別タブで開く(一括)
[L]
1.2.5 in_reply_toの遡上
[i]
1.2.6 ユーザページを別タブで開く(指定/一括)
[H]
1.2.7 次x3/前x3
[J/K]
1.2.8 post直後のreload on/off
[A]
1.2.9
(new) 選択中テキストを別タブで検索(Google/Wikipedia)
[G/W]
「指定/一括」とある 1.2.1、1.2.3、1.2.6 は、LDRize の機能にがっつりのっかった機能です。現在指しているpostについてリプライ、ふぁぼり/ふぁぼり解除、発言したユーザのホームを別タブで開くことができ、またpinを立てているpostに一括してその動作を行うことも可能です。リプライの場合は先頭に「.」をつけます。また、自分で使っていて、「どれにreplyしようとしたんだっけ(・ω・)?」となるとこがままあったので、fig2のようにどれにreplyしようとしているかをLatestの場所に表示してみるようにしました。

ふぁぼりは自分以外のユーザのホームでも動作します。自分以外のユーザページで「r」や「e」した場合は、然るべき内容が入力欄に入った状態で自分のホームに戻ってきます。
1.2.2 はRTです。「RT @screen_name: post内容」という形式のRTに対応しています。
1.2.4 は、指定したpost中の「httpなんたら」という形のリンクを検出して全部別タブで一挙に開きます。
1.2.5、これがまぁわりと目玉ですね。
pbtweetでやってるような、reply元をその場に表示する機能です。pbtweetのFirefox版は不安定で使い物にならないんですが、あのその場にreply元をずらずらずらーっと表示できるのがいたく気に入っていたので、自分なりに実装してみたといったところ。ただしpbtweetとは違って、「i」を1回叩くごとに1つだけ遡上します。指定件数までばばばーっと遡上はしません。
1.2.7 はまぁこれも半分シャレというか。LDRizeのj/kを twitter web で使うと移動幅がだいぶ小さいので、大きく動かせるようにしてみました。
1.2.8 は専用クライアントなんかでよく見かける機能ですね。post直後にTLの再取得を行うかどうか、という奴です。このぐりもんでは、差分だけ読み込むなどという器用な真似はできませんので画面全部どーんとreload(笑)。
【追記: 2009-11-01】
1.2.9 として、選択中テキストを別タブで検索する機能などをつけてみました。これもまぁ専用クライアントで似たような機能を見かけますね。ふとfollowerさんのpostで知らない単語があって、けっこうめんどうな手順を踏んで検索している自分に気づいての実装でした。Minibufferがよくできているので私のcoding自体はもうG,Wあわせても15分いかないくらいですw なんかこう、思いついたら即実装ってのがいかにも今様w
さて機能説明としてはこんなもんかなと思います。私がtwitterのクライアントに求めていた要素はこれでだいたい網羅してしまっています。following/followersともにそんなに人数がいないのでタブとか単語でひっかけるとかNGワードとかはいまのところつくってません。何やらいまちまたで話題のList機能ではタブ分けに近いことができるとも聞いてますが、さてさてどうなることやら。
今回はちょっと使ってみて、いろいろいじってからの公開ですが、まぁ自分の使い方の範囲でしかわからないところも多々あります。ご意見、苦情、ご希望、ヨタ話等は @
cursed_steven までどうぞ。
本家webが仕様変更でがちゃがちゃやっておられる様子。いくらか動かなくなっているところがあるあるがどうもふらふらしているので静観。
あ、footerも設定して保存できまっせーっての書くの忘れたΣ(・ω・;)