LoginSignup
77
68

More than 5 years have passed since last update.

ターミナル上で動くtwitterクライアント作った

Last updated at Posted at 2017-04-24

経緯

コードを書いている時にちょっとTLを確認したくなった時とか、TweetDeckとかを開いてしまうと集中力が切れてしまうので、ターミナル上で使えるtwitterクライアントが欲しかった
いろいろ探してみたが、どれもいい感じにstreamingを表示してくれるのがなかったので自分で作った

Flumtter

Flumtter自体プログラミングの練習がてら昔からちょくちょく作っていたんだけれど、今回ようやくgem化して公開してみました
github: flum1025/flumtter
rubygems: flumtter

何ができるの?

スクリーンショット 2017-04-24 17.23.49.png
基本的なツイッタークライアントでできることは大抵できる
tmuxをインストールしてあれば--tmuxオプションを指定することでマルチユーザーマルチカラムで起動することもできる
またプラグインにも対応しているため、ほしい機能があったら簡単に実装可能

インストール

gemでサクッとインストール

$ gem install flumtter

UbuntuとMacではそれぞれ以下のものをインストールする必要がある

  • On Ubuntu

    $ apt install ruby ruby-dev build-essential libncurses5-dev tmux
    
  • On MacOSX

    $ brew install ruby tmux
    

実行

$ flumtter

初回起動時はConsumerKey, ConsumerSecretを聞かれるのでここからアプリケーション登録(write権限がないとツイートとDMができません)
二つ目以降のアカウント追加時はキーの入力をスキップすることができる

使い方

基本的にコマンド入力画面で?<Enter>を入力するとヘルプやその画面で使用可能なコマンド一覧を表示する
メインのストリーミング画面では入力中のコマンドが表示されないので注意
スクリーンショット 2017-04-24 17.34.18.png

特定のツイートオブジェクトに対して何か操作したい場合はindexを指定することで操作することができる
スクリーンショット 2017-04-24 17.39.39.png
例: f 60<Enter> 60のツイートをファボる
f<Enter>した場合はindex入力画面が表示される

別ウィンドウからメインウィンドウへ戻りたい場合はESCCtrl+cで戻れる
※メインウィンドウでCtrl+cしてしまうとアプリケーションが終了してしまうので注意
スクリーンショット 2017-04-24 17.48.29.png

コマンドの詳細

  • g Conversation
    会話を表示
    スクリーンショット 2017-04-24 17.52.13.png

  • ^ Reconnection
    ネットワークの切断等によってストリームが切れてしまった場合に再接続する

  • - synchronize-panes on
    --tmuxモード使用時、全カラムに同じ操作をする時に使用する
    column.gif

  • = synchronize-panes off
    上記モードの無効化

CLIコマンド

-hでヘルプを表示

$ flumtter -h
Usage: flumtter [options]
    -n, --name VALUE                 account name
    -i, --index VALUE                account index
    -s, --non_stream                 without stream
    -d, --debug                      debug mode
        --args VALUE
        --tweet VALUES               new tweet
        --tweet_with_image=V,V       new tweet with image
        --tpry                       pry with twitter instance
    -l, --list                       user list
        --timeline_load VALUE        load timeline num
        --[no-]timeline_load?        load timeline on init
        --pry                        console mode
        --tmux                       enable tmux mode
        --names=V,V,...              set account names with tmux
  • name
    起動するアカウントのscreen_nameを指定

  • index
    起動するアカウントのindexを指定(AccountSelector画面のindex)

  • non_stream
    ストリームなしで起動

  • debug
    デバッグモードで起動

  • args

  • tweet
    ツイートする文字列を入力
    例: flumtter -n flum_ --tweet ツイート
    例: flumtter --tweet 複数ユーザーでツイート --names=user1,user2

  • tweet_with_image
    画像を投稿
    例: flumtter -n flum_ --tweet_with_image=画像投稿,~/Desktop/test.png
    例: flumtter --tweet_with_image=複数ユーザーで画像投稿,~/Desktop/test.png --names=user1,user2

  • tpry

  • list
    登録ユーザー一覧

  • timeline_load
    起動時にタイムラインを読み込む数を指定

  • [no-]timeline_load?
    起動時にタイムラインを読み込むかどうか

  • pry

  • tmux
    tmuxモードで起動
    例: flumtter --tmux --names=user1,user2

  • names
    複数ユーザーを指定

カスタマイズしたい

~/.flumtter/setting/setting.rbをいじることでカスタマイズできる
色は以下の種類に対応

:white
:light_gray
:gray
:back
:red
:light_red
:green
:light_green
:brown
:yellow
:blue
:light_blue
:purple
:pink
:cyan
:light_cyan

Pluginを作りたい

~/.flumtter/plugins/にファイルを配置することで起動時に自動的に読み込まれる
プラグインの書き方はflumtter/lib/flumtter/app/plugins/のファイルを参照

バグあったんだけど

バグを見つけたら実行環境、エラーログをissuesまでお願いします!

77
68
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
77
68