これの続き。
仕事をサボるために、仕事中にTwitterクライアントを作っていたのです。作ったプロトタイプなようなもの(一生プロトタイプです)を何を間違えたのか、公開してしまったので、名前を決めました。20秒くらい熟考して、「Sabotage(サボタージュ)」という名前にしましたよ。ついでにいくつかの機能を実装して、バージョンを0.1にしました。0と1の間には無限の数字がありますね。
Sabotageに関するドキュメントおよびダウンロードは、こちらを更新していきます。ブログ記事では、何となくモヤっとしたことを書きつつ、粛々とリリースを続けていければいいかな。ニーズがあるとは思えないので、自分がやりたいことを実装して、ブログのネタになればいいと思います。
今回のリリースでは、ふぁぼれる機能を実装しました。これはTwitter APIを叩けばいいだけなので、何の困難もありません。GETやPOST関連の部分はすでに実装しているし、特別なパラメータもいらないので、余裕です。
他にも、エラーメッセージをいい加減な感じで考えたりしました。元々、エラー時のコールバック関数については作ってありましたが、何の確認もしてなかったので、実行されるかどうかすらわからなかったんですよ。今回は、正しくメッセージが表示されるであろうことは確認しています。
個人的な目玉としては、設定ファイルの読み込みですかね。こういうのを外部化しておけば、変更がある程度は楽になります。JavaScriptでは、ファイルの読み書きはできないという先入観があったんですが、Ajaxでファイル(テキスト)へリクエストを送れば、読むことだけはできることに気付きました。
んで、そもそも「なんでHTMLとJavaScriptで作ってるの?」って話です。VBだの、Javaだの、色々あるじゃん。理由は主に3つあります。「VBは使えないから」「JavaのGUIは作ったことから」「その2つに興味がないから」です。あと、大それたモノでもないので、HTMLでいいし、自宅のMacでは使わないので、Windows + IEで使えればいいやって感じですね。こんな酔狂なことをやってるヤツは少ないぞ!というのも動機の1つです。
Ajaxには興味があったんですけど、自分でサーバ用意して、サーバのアプリケーション作ってというのは学習に手間がかかりすぎるっていうのも1つです。もっと簡単にできる、それこそエディタだけで学習できる方法の1つがTwitterクライアントでした。ローカルファイルにリクエスト送れば非同期通信できるけど、それは面白くないわけです。自分で用意したデータが取れたところで、大して面白くないのは、過去の学習から学んだことです。(HelloWorldなんて1回やれば十分です)
面白くないことを堪え忍んで学習するような苦行はしたくありません。俺は修行僧じゃないしね。
仕事中にTwitterをしたいのだけど、堂々とTwitterの画面を開くわけにはいかず、かといってクライアントをインストールするわけにもいかないというジレンマがあります。Excelっぽく見えるクライアントもあるけど、そこまで大袈裟なものはいらない。色々とワガママですが、しょうがない。ワガママじゃないと、仕事はさぼれないんだよ!
というわけで、自分でTwitterクライアントを作ってみたわけです。ブラウザ(IE7のみ。IE8は知らない)だけで動く、死ぬほどシンプルなTwitterクライアントです。 HTMLとJavaScriptしか使ってないので、インストールも必要ない。ただ、HTMLファイルを開くだけで、目眩く息抜きタイムが始まるわけです。後ろに誰かが通りかかっても「こいつサボってやがる。けしからん」と思われない。
(追記 2009.7.18:TLの取得だけならSafariでもできるみたい)
モチベーションを維持するために公開とかしてみるけど、使えるもんじゃないです。サポートしている機能は少ないし、UIは死ぬほど拙いです。何が起こってる/起こったかを通知しません。結果が表示されるまで何もわかりません。エラーが起こったら、何か表示されるかもしれませんよ!(エラーの処理を確認してない)
はっきり言えることは「あなたはこれを使うべきではない」ということです。
これに関してはこちらでメンテナンスしていきます。
機能
- タイムラインの取得
- リプライ(mentions)の取得
- post(status update)の送信
- リプライ(@)の送信
- RTの送信
使い方
ログイン
- Settingボタン→IDとパスワードを入力→Loginボタン
- 入力されたIDとパスワードが正しいかはこの時点で確認してません。
- Settingボタンをもう1回押すと、Loginボタンとかが消えますが、ログアウトしているわけではないです。
- この設定は保存されません。ウィンドウを閉じたり、更新ボタンを押したりしたら消えます。
タイムラインの取得
- friendsボタンを押すとタイムラインを取得します。最初は50件取得します。2度目以降は取得してない分を取得します。
- mentionsボタンを押すとリプライを取得します。
POST
- テキストエリアにメッセージを入力して、updateボタンを押すと送信されます。メッセージが消えたら、たぶん送信されてるはずです。
- 表示されているタイムラインのユーザ名をクリックすると、「@user」がテキストエリアに入力されます。メッセージを送信すれば、リプライとして送信されます。
- 表示されているタイムラインのメッセージをクリックすると、「RT @user: メッセージ」がテキストエリアに入力されます。これは普通のPOSTとして送信されます。
情熱が続いてたらサポートするであろう機能
- ふぁぼったりする
- エラーメッセージの表示
- 自動更新
- 設定部分の見栄えをよくする
- 最大取得数の設定
- 画面のホワイトアウト
情熱が続いていても絶対しない機能
ダウンロード
twitter_js.zip
ポリシーは、楽しく、若干の後ろめたさを感じながら仕事をサボるためのクライアントです。それに反するような機能はサポートしません。