twitterのmacアプリが終了したので自分のタイムラインを雑に通知しまくるアプリを作った

github.com


:warning: これは特にtwittermacアプリを代替するものではありません。


twittermacアプリが終了したので自分のタイムラインを雑に通知しまくるアプリを作った。というか、以前から自分自身のtimelineを何らかのnotificatorを使って通知するということをやっていたのだけれど(記憶が確かならそれがtwitterアプリのnotification的なものの機能を使っていたはず)。それが動かなくなったので作ったという感じ。デスクトップ環境をlinuxに変えた時にその機能がなくなってしまいちょっとだけ困っていた。macでも動かなくなったのでせっかくなのでgoで雑なツールを作った。

自分のtimelineを通知しまくること

なぜ自分のtimelineを通知しまくるようにしたかったかと言えば、端的に言えばノイズ的な情報が欲しかったため。timeline自体を全部把握しなくても良く取りこぼしがあっても良いのだけれど。何らかの情報がずっと継続的に流れてくるという状態になっており、時折わからないキーワードや言葉・単語が出てくる、興味を持ったら覚えておきあとで調べる、と言うようなことがしたかったため。

全部通知すると邪魔かもと思うかもしれないけれど。意外と常に通知が流れている状態でも、集中し始めたときには全く気にならなくなる(これは人によるかもしれない)。

重要な情報(?)は度々話者を変えて複数回現れるし。全ての情報を把握しようという切迫感もなく。知らなかった興味の有りそうなキーワードを偶発的に知ることができる。みたいな感じでとても良い感じだった。

そんなわけでBGM的な視覚表現とでも言えば良いのかわからないけれど。そんな感じの効果をもたらす何かとしてtimelineを通知しまくる感じのものが結構便利で欲しかったりする(主観的な話)。

egoist

作ったアプリはegoistというもの(後で良い名前が思いついたら変えたい)。基本的に自分用のツールには独裁者っぽい感じの名前を付けている。そんなわけで今回はegoist(ちなみにgistへの投稿ツールはselfishという名前)。

ほとんど既存のライブラリを雑に組み合わせただけのもの。以下の2つが結構便利だった。

anaconda

anaconcaはtwitter用のライブラリ。自分でOAuth認証してAPIを叩いてとかでも良い気がしたけれど。めんどくさいので。

beeep

beeepはクロスプラットフォームの通知用のライブラリ

  • macではたぶんAppleScript経由で通知のapiを呼んでいる
  • linuxではdbus経由でlibnotify(send-notify)の通知の機能を呼んでいる

みたいな形。特にlinux版で毎回notify-sendのコマンドも叩くのもなんだし。cgoあたりでlibnotifyのラッパーでも書くかとも思ったりしたけれど。dbusを使うのは正しそうだった。

細かい気になる点

細かい気になる点は幾つかあって。まずuserstream apiが後々使えなくなるということ。なので別の方法に後々切り替える必要がある。

あと、どうせなのでユーザーのアイコンも通知に表示したい。

そしてgnomeの通知の表示では全文を表示せずに途中で省略されてしまうのでこれを直したい(gnomeでの通知の設定可能なオプション少なすぎる気がする?)。