twitter.com をログストレージにする、の続き

適当にやっていたエラーハンドリングを改善して0.1.1にする、という遊び。

140文字を超えるログメッセージは 140文字に切り詰めてはき出すようにしました。これで効率よく内容を伝えるログメッセージを考える習慣が身につくはずです。

ちなみに使っていて気がついたことですが、先日書いた

同じログが大量にでる場合はtwitterが自動的にブロックしてくれますw

について。どうもtwitterの動作をしていると、どれだけ時間がたっていても、直前と同じpostは受け付けないようです。なので、

LOG_FORMAT = "[%(asctime)s] (%(levelname)s) - %(message)s *%(name)s*"
LOG_DATEFORMAT = "%H:%M"
handler.setFormatter(logging.Formatter(LOG_FORMAT, LOG_DATEFORMAT))

とかしておくと、分単位でかならずPOSTする文字列が変わるので、分単位の重複ログ除去ができます。秒単位にしたければ %H:%M:%S で。

それはともかく、https で oauth 認証だとすごく重いので、非同期の書き出しにしたいのですが、何かいいライブラリでしょうかね。普通にやるなら threading + Queue での実装になりそうですが、単なるネタなのでそこまでまじめにやりたくない。むしろなんかよさげなライブラリのソースを読んでPythonの書き方の勉強をしたいのです。

tweepy については正常系は非常に使いやすかったものの、例外がすべからくTweepErrorというクラスで表現されているので 140文字超えたとか、重複エラーとかの区別をエラーメッセージで識別する必要があって、すごく残念な気分になりました。