まず最初に。ぼくの書き方がまずかったんだけど、これは何するもの?っていう問い合わせがあったので、それの回答。
scoopはターミナルで動作するRSS Reader。Google Readerのデータを取得して表示するので、Google Reader使ってる人は乗り換える事なく、気軽に使えるよ。試してみて。
ということで、タイトルの通り、ピン立てて、ぐぁーなやつ実装した。webbrowserモジュールっていうのがPythonの標準ライブラリであるので、簡単に実装できた。思いのほか便利で、すでにぼくは常用してる。スクロールはまだできないから、長文エントリは表示できないけど、外部ブラウザで開いて読める。
えーと、すでに使ってる人は、インストールしたディレクトリで、
git pull
して、最新取ってくれば有効になる。まだ使ってない人は、ここを参考にインストールして。
キーバインドは、
- p: ピンを立てる/解除(トグル)
- o: ピンを立てたエントリを外部ブラウザで開く
- O: 選択しているエントリを外部ブラウザで開く
って感じ。OSでデフォルト指定してあるブラウザで開くと思う。
あと、ここで配布してる日本語化されたUbuntuのVMwareイメージでも動作することが確認できた。書き忘れてたけど、unicodeが有効になってるncursesが必要なので、Mac使ってる人は、MacPortsとかでインストールしたPython使った方がいいかもしれない。ターミナルの文字コードもutf-8で。
基本的に、まずは機能を充実させることを考えてるので、マルチプラットフォーム対応とかは後回しの予定。もちろん、バグレポートとかパッチは受け付ける。まあ、こんなRSS Readerを使おうとする人はギークに違いないから、自分でハック推奨。
http://github.com/ryuji/scoop/tree/master
今のところ、未読の新着エントリはなんとか読めるレベル。Feedの追加とかは、WebブラウザからGoogle Readerにログインして直接行う。
そのうち、マニュアルとかも整備しなきゃだけど、メモ替わりにここに書いとく。
ライセンス
依存ライブラリの関係で、GPL2
必要なもの
インストール
GitHubから取得。インストールしたいディレクトリの下で、下記コマンドを叩く。
git clone git://github.com/ryuji/scoop.git
あとは、パス通すなり、scoopにシンボリックリンク張るなり、お好きな感じで。
次に、設定ファイルの作成。とりあえず、サンプルを自分のホームディレクトリにコピーする。
cp scoop/scoop.rc ~/.scoop.rc
で、自分のGoogle Readerのemailとpasswordを設定する。
vi ~/.scoop.rc
[credential]
email = your_google_reader_account@gmail.com
password = your_google_reader_password
パーミッションは変えといた方が安心。
chmod 600 ~/.scoop.rc
使い方
% scoop --help
Usage: scoop [options]
Options:
--version show program's version number and exit
-h, --help show this help message and exit
-n, --notify notify unread entry count
-nオプションで、未読件数を出力。新着通知とかに使えるかと思って実装した。
オプションなしで実行すると、メインスクリーンが立ち上がる。モードの概念があって、今のところ、未読記事一覧モードと、記事閲覧モードが実装済み。それぞれのモードでのコマンドは下記参照。基本的には、viとかmuttのキーバインドに倣ってる。
未読記事一覧モード
- q : scoopの終了
- r : 未読記事一覧の再取得
- j : 次の記事選択(下にカーソル移動)
- k : 前の記事選択(上にカーソル移動)
- return : 選択中の記事を読む
記事閲覧モード
- q : 前のモードに戻る
- u : 未読記事一覧モードに切り替える
- j : 次の記事を読む
- k : 前の記事を読む
既知のバグ
未読記事一覧で、一度に20件しか表示できない
今月中には対応予定。
基本的にスクロールできない
スクロールできないので、長いエントリは読めない。今月中には対応予定。
時刻表示がおかしい
JSTタイムゾーンのはずなのに、どう見てもGMTです、ほんとうに(ry。pytzとかかましてみたけど治らず。なんか、ライブラリで取得した時点で狂ってる気がする。
起動中にターミナルのサイズを変更したら死ぬ
なんとなく対応方法はわかるような気がするけど、これは仕様でもいいかな...
動作検証環境
- MacOSX Leopard + Gentoo Prefix
- Gentoo Linux
検証環境がマニアックなのは謝る。検証になってないかもな。
実装予定の機能
- Google ReaderのAPIでできること
- ピン立てて、外部ブラウザでぐぁーって開くやつ(LDRのパクリだね)
とりあえず、Google Readerの機能を実装していって、安定したら、TUIならではな感じの機能を模索していきたい。
バグ報告とか
blogシステムの開発の方はサボってるので、コメント機能とかないし、不具合とか要望とか、その他なにかあれば、ryuji@mgiken.comに直接メールで。励ましのお便り募集中。
Enjoy your terminal life!
ターミナルで動くGoogle Readerのフロントエンドを開発中。
自分に必要なものをつくるというプログラミングの本質に迫ると、ニッチにならざるを得ない。人生の半分をターミナルの中で過ごす人たちには、たまらないキラーアプリになるはず。人生の3分の2をemacsで過ごす人たちはスルーでおk。
とりあえず、まだまだ機能不足で実用には耐えられないけど、公開してみた。
http://github.com/ryuji/scoop/tree/master
詳細はあとで書く。