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文字超えたとか、重複エラーとかの区別をエラーメッセージで識別する必要があって、すごく残念な気分になりました。