日々の情報収集と通知


##はじめに

基本的には、Twitterのリストを使って、情報収集をしています。これは、主に通知に流します。よって、今回は、主に、私の通知の使い方を紹介します。

ここで、Twitterのリストは、botを登録するなどしていますが、botを自作してもいいのですが、Twitter APIなどは面倒くさそうなので、あまり触りたくありません。したがって、既存のbotを登録していることが多いです。

##Twitter

###TweetVim

```vim:~/.vimrc
NeoBundle 'basyura/TweetVim'
NeoBundle 'tyru/open-browser.vim'
NeoBundle 'basyura/twibill.vim'

NeoBundle 'syui/tweetvim_notfiy'
NeoBundle 'gist:rhysd/4201877', {
\   'name': 'tweetvim_update',
\   'script_type': 'plugin'
\}
```

```bash:~/.zshrc
function tweetvim-auto(){
  vim -c "TweetVimListStatuses $1" +TweetVimAutoUpdate +TweetVimStartNotify
}
```

リスト名を引数で渡します。

ここで、リスト多い人は、リスト補完を作ってもいいのですが、私はやってません。少ないので。

###必要なもの

####Mac

> [growlnotify](http://growl.info/downloads)

```bash:
$ brew install growlnotify
```

####Linux


> notify-send

```bash:
$ pacman -S inotify-tools
```

####Windows

> [growlnotify.exe](http://www.growlforwindows.com/gfw/help/growlnotify.aspx)

```bash:
$ choco install Growl
```

###設定

リロードする時間間隔を設定できます。

```~/.vim/bundle/tweetvim_update/plugin/tweetvim_autoupdate.vim
let s:tweetvim_update_interval_seconds = 10
```

```~/.vim/bundle/tweetvim_notfiy/plugin/tweetvim_notfiy.vim
let s:tweetvim_notfiy_update_interval_seconds = 5
```

###コード

[tweetvim_notify.vim](https://github.com/syui/tweetvim_notfiy/blob/master/plugin/tweetvim_notfiy.vim)は、自分で作りましたので、少し解説できます。

参考にしたのは、オートリロードを担当する[tweetvim_autoupdate.vim](https://gist.github.com/rhysd/4201877)です。

本体のコードは以下の様な感じで、単純に最新ツイートを比較し、違いがあれば、通知コマンドを叩きます。

```vim:tweetvim_notify.vim
let s:tweetvim_notfiy_update_interval_seconds = 2
let s:tweetvim_notfiy_timestamp = reltime()[0]
let s:tweetvim_notfiy_getline_1 = getline(3)

fu! s:tweetvim_notfiy()
  let n_current = reltime()[0]
    if n_current - s:tweetvim_notfiy_timestamp > s:tweetvim_notfiy_update_interval_seconds
        if s:tweetvim_notfiy_getline_1 != getline(3)
          let s:tweetvim_notfiy_getline_1 = getline(3)
          call system("growlnotify -m '" . getline(3) . "'")
        end
        let s:tweetvim_notfiy_timestamp = n_current
    end
endf

fu! s:tweetvim_notfiy_setup_autoupdate()
    aug vimrc-tweetvim-notfiy-autoupdate
        au!
        au CursorHold * call <SID>tweetvim_notfiy()
    aug END
endf

com! -nargs=0 TweetVimStartNotify call <SID>tweetvim_notfiy_setup_autoupdate()
com! -nargs=0 TweetVimStopNotfiy au! vimrc-tweetvim-notfiy-autoupdate
```

通知コマンドは、各OSによって異なるので、処理を分岐しました。

```vim:test/ostype.vim
fu! s:air_test_ostype()
let OSTYPE = substitute(system('uname'), "\n", "", "")
if OSTYPE == "Darwin"
  echo OSTYPE
elsei OSTYPE == "Linux"
  echo OSTYPE
elsei has('win32') || has('win16') || OSTYPE =~ "CYGWIN"
  echo OSTYPE
en
endf
com! -nargs=0 AirTestOstype call <SID>air_test_ostype()
```

一応、アイコンパスが読み込めているかのテストです。

```vim:test/system.vim
let s:air_test_dir_icon= expand("<sfile>:p:h:h") . "/icon/twitter.png"
fu! s:air_test_system()
  call system("growlnotify -a Twitter -m '" . s:air_test_dir_icon . "/test'")
endf
com! -nargs=0 AirTestSystem call <SID>air_test_system()
```

通知コマンドは、各OSごとに以下の通りです。これは、各自用意してください。

```vim:
" mac
call system("growlnotify -a Twitter -m '" . getline(3) . "'")

" Linux
call system("notify-send -i " . s:tweetvim_notfiy_dir_icon . " '" . getline(3) . "'")

" Windows
call system('growlnotify.exe /i:' . s:tweetvim_notfiy_dir_icon . " '" . getline(3) . "'")
```

###Linux

Linuxでの通知は、`notify-send`を使います。



####Awesome

awesomeの通知は、デフォルトでは`naughty`が使用されている感じですので、各自設定します。表示される場所とか大きさとか表示時間とか。


```lua:~/.config/awesome/rc.lua
naughty.config.defaults.timeout          = 5
naughty.config.defaults.position         = "bottom_right"
naughty.config.defaults.margin           = 4
naughty.config.defaults.width            = 300
naughty.config.defaults.height           = nil
naughty.config.defaults.hover_timeout    = nil
```

http://awesome.naquadah.org/wiki/Naughty
http://awesome.naquadah.org/doc/api/modules/naughty.html


##Lingr

###J6uil

[J6uil.vim](https://github.com/basyura/J6uil.vim)

[j6uil_notify](https://github.com/syui/j6uil_notify)


```~/.vimrc
NeoBundle 'basyura/J6uil.vim'
NeoBundle 'syui/j6uil_notify'
```


###通知

```bash:
$ vim +J6uil +J6uilStartNotify
```

##追記

指定するやつ作りました。

https://github.com/syui/airnotfiy.vim