basyura's blog

あしたになったらほんきだす。

TweetVim で個別に FavStar を見れる様にした。

TwitVim で「あーこの人のこの発言、バズってるんだろうな」と思った時に FavStar を見る事があるんだけど、FavStar は最新の fav/rt 一覧しか表示してなかったので過去の物を表示する事は出来なかった。僕的にニーズがあったのでツィート単位に表示出来る様にした。

TwitVim で個別に FavStar を見れる様にした。

もちろん、TweetVim は一切触らなくてもできる。

{適当なディレクトリ名}/autoload/tweetvim/action/*.vim

runtimepath が通っている↑にスクリプトを置けばいい。

function! tweetvim#action#favstar#define()
  return {
        \ 'description' : 'show favstar',
        \ }
endfunction

function! tweetvim#action#favstar#execute(tweet)

  if !exists(":FavStar")
    echo "you must install mattn/favstar-vim (https://github.com/mattn/favstar-vim)"
    return
  endif

  let tweet = a:tweet

  let name = has_key(tweet, 'retweeted_status') ? tweet.retweeted_status.user.screen_name : tweet.user.screen_name
  let id   = has_key(tweet, 'retweeted_status') ? tweet.retweeted_status.id_str : tweet.id_str

  execute "FavStar" name id
endfunction

ファイル名に合わせて関数名の変更は必要 (favstar のとこ)。
a:tweet からツィートIDを抜き取って FavStar コマンドに渡す。
あとはこれのキーアサイン

nnoremap <silent> <Plug>(tweetvim_action_favstar)         :<C-u>call tweetvim#action('favstar')<CR>
nmap <silent> <buffer> <leader>F  <Plug>(tweetvim_action_favstar)

TweetVim のバッファでは F で呼べるように設定。

キーアサインしなくても、Unite インタフェースで選択可。

これで TweetVim を見てる最中に F をタイプすれば個別の fav/rt が見れる様になりました。
めでたしめでたし。

動作確認用に favstar のページをブラウザで開く favstar_browser も追加してみました。

ただし、dev ブランチに限る。
https://github.com/basyura/TweetVim