Twiterm version 1.0.0

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 @ユーザー名: "がデフォルトで入力された状態で編集開始
  • OAuth対応
    • 初回起動時は認証用URLを表示、そこから認証を行って得た暗証番号を入力すると認証できる
    • 認証後のaccess_tokenなどはデフォルトで"config.yaml"というファイル名で保存される
    • configファイル内でアカウント情報を設定しているが、BASIC認証用のユーザー名/パスワードでも構わない
  • Log
    • 一応どんな動作をしているかはログ表示用のページである程度確認できるようにしている

というところ。
内部ではAnyEvent::Twitterとそれに拡張パッチを自作して適用させていて、非同期的に画面操作とは別のところでデータ取得やタイマー処理を頑張ってくれている。


画面イメージはこんなカンジ。



まだまだ機能は乏しいけど、一応Twitterクライアントとして使えないこともないかな、くらいのレベルにはなったかと。
(と言っても誰も使わないか…?)
あと付けたい機能としては

  • 依存モジュールの整理、パッケージングできるならする
  • 複数アカウントでの使用
  • 発言の絞り込み、キーワードハイライトなど?
  • Wassr対応
  • 全裸Pluginとか作って適用できるようにする

などを予定している。