kenkovlog

けんこふたんっオフィシャユブヨグッ
アンッ!アンッ!アンッ!アンッ!

dzen2 twitter

dzen でTwitter のTL を表示できるようにしようと格闘。

dzen の使い方

公式サイト のドキュメント(README) が詳しいです。

TL を表示する

自作のtwitter_oauth を使用してstreaming API を使ってTL を流します。

"""
test.py
"""

import sys, os
import twitter_oauth

if __name__=='__main__':
    consumer_key = '****'
    consumer_secret = '****'
    oauth_token = '****'
    oauth_token_secret = '****'

    api = twitter_oauth.Api(consumer_key, consumer_secret,
                            oauth_token, oauth_token_secret)

    try:
        for status in api.user_stream():
            text = (u'^fg(green)[{username}] ^fg(){text}'.format(username=status.user.screen_name, text=status.text).encode('utf-8'))
            print text
            # 次の行でflush しないとパイプでうまく出力されない
            sys.stdout.flush()
    except KeyboardInterrupt:
        print "Exit TwitterGrowl, Bye>ω<ノ"
        sys.exit()

あとはコマンドラインから

$ python test.py  | dzen2 -u -h 30 -fn '-*-ricty-medium-*-*-*-14-*-*-*-*-*-*-*' -ta l -y 870  -w 600

します。

-h で高さを調節し-y でy のポジションを調整して、うまく一番下に表示されるようにしています。 そうすることで、ウインドウがdzen にかぶらなくなります。(ウインドウの高さが調節されます)

なお、python のコードでflush しないとパイプで出力先を変更するときにバッファリングされて、うまく出力できません。

課題

  • -l オプションを指定してマウスがかぶった時にTL を10 くらい表示できるようにする。
  • twitter には関係ないけれど、gdbar を使用するとグラフとかかけるらしいのでやってみたい。
けんこふたん