PythonとGAEでTwitter Botを作ってみました
Pythonの勉強の一環として、Google App Engine(GAE)を利用したTwitter Botプログラムを作ってみました。第一弾は「山形浩生BOT」。こちらは山形浩生の公式サイトの2〜5個ぐらいのURLにある文章を日本語形態素解析ソフト「MeCab」を利用してわかち書きし、マルコフ連鎖で新しい文章を生成するモノ。定期的にこんな発言をします。
プログラムのアイデアとしてはid:murashitくんのmurashittestの丸パクリです。murashitくんには「参考にするからソース・コードみせてよ」とお願いしたのですが「汚いから無理です!」と拒否られてるんですが、今、自分にもその気持ちが分かる! ソース公開って結構勇気がいって、自分の小説や音楽を人に見せるよりも恥ずかしいかも(ソースはどこが悪いか、とか明白だからですかねえ)。ググッてかき集められるようなソースを公開しても意味はないでしょ、そこは、と自己合理化しておきましょう。この程度のプログラムなら、Pythonを導入するところから初めて一日で実装までいけるかなぁ、という感じ(もちろんこの前提に基本的なアルゴリズムの習得があるわけですが)。GAEもかなり簡単で、親切なドキュメントが用意されてるのでスムーズでした。
で、調子に乗って作った第二弾が「今日の菊地日記(PELISSE)」。こちらは菊地成孔の旧・公式サイト「PELISSE」の日記(速報)ページの過去ログからその日に書かれたURLを吐き出してくれる。これもPOSTをする部分は山形BOTとほとんど同じ。作ったのは、URLのリストを作るプログラムと、本日の日付に該当するURLを抽出するプログラム。抽出とPOSTは違うジョブにしていて、抽出でGAEのデータストアに保存して、POSTではそれを定期的に1件ずつ取り出しながら発言をするようにしてます。流用できる部分がたくさんあったので、楽勝かな〜、と思ったんですが「PELISSE」の文字コードがシフトJISだったのとXMLが変な書き方されてたのでちょっと気を使ったり、あとデータストアで日本語を扱うときにまた困ったり(テストではうまくいくのに、本番環境では動かない……とか)。タイムマシンがあったらまず、過去に遡って文字コードを統一させたいと思いました。