Terminal上で動作するTwitter閲覧ツール「Twiterm」を作った - すぎゃーんメモ に始まり、
Twitermの進捗状況 - すぎゃーんメモ とか書きながら独り黙々と作り続け、
それなりに最低限の機能は実装できた。と思う。
こちらで公開しています。
GitHub - sugyan/Twiterm: Twitter on Terminal
% wc -l $(find . -name "*.p[ml]") 201 ./lib/AnyEvent/Twitter/Extension.pm 107 ./lib/Twiterm/PageState.pm 173 ./lib/Twiterm/Statuses.pm 297 ./lib/Twiterm.pm 20 ./oauth.pl 48 ./twiterm.pl 846 total
現時点で、合計846行か…
何が出来るかって言うと、
- Terminal上で、キー操作のみでTwitterクライアントとして動作
- friends_timelineとmentionsの2つのタイムラインを自動で定期的に取得
- それぞれのタイムラインを表示
- Enterもしくはspaceキーで以下の2つの表示モードを切り替え
- 一覧表示
- 一行ずつ各statusの情報を表示、1行に収まらなければ途中まで
- 選択しているstatusは反転表示、カーソルを動かす感覚で"j", "k"キーで上下移動
- 画面に収まりきらない分はカーソル移動に合わせてスクロール
- 詳細表示
- statusの全文、userの情報など。replyで元の発言データを保持している場合それも表示
- ページ切り替え
- "h", "l"キーでfriends_timelineのページ、mentionsのページ、という具合に切り替え
- ふぁぼ
- "f"キーで、選択しているstatusに対しfavorite
- ふぁぼっているstatusは一覧画面で左端に"*"を表示
- 既にふぁぼっているときに"f"を押した場合はふぁぼを取り消す
- post
- "u"キーでエディタが起動。編集して終了させるとその内容をPostする
- 全削除して空文字列で終了させれば何もPostしない
- "r"キーで現在選択しているstatusに対するreply
- "@ユーザー名 "がデフォルトで入力された状態で編集開始
- "R"キーで現在選択しているstatusをRT
- "RT @ユーザー名: "がデフォルトで入力された状態で編集開始
- "u"キーでエディタが起動。編集して終了させるとその内容をPostする
- OAuth対応
- Log
- 一応どんな動作をしているかはログ表示用のページである程度確認できるようにしている
というところ。
内部ではAnyEvent::Twitterとそれに拡張パッチを自作して適用させていて、非同期的に画面操作とは別のところでデータ取得やタイマー処理を頑張ってくれている。
まだまだ機能は乏しいけど、一応Twitterクライアントとして使えないこともないかな、くらいのレベルにはなったかと。
(と言っても誰も使わないか…?)
あと付けたい機能としては
などを予定している。