2010/12/11

TwitterとGoogle App Engineの自分用Webアプリケーション

最近タイムラインがリアルタイムで追えなくなってきたり、過去にみたアレのURLが知りたいとかいったときのために、自分のHomeタイムライン(自分とフォローしている人のツイート全部)を保存して、後で閲覧できるようにしたいなぁと思っていた。
とりあえず、タイムラインのデータを取得して、保存するところまでをGoogleAppEngineで作ってcronを回していたら、2ヶ月ぐらいでDataStoreの無料枠1GB一杯になって、止まってしまっていた。

一定期間が過ぎたツイートは順次削除していくことも考えたが、せっかく貯めたデータを消してしまうのはもったいないし、こういった機能が無いから作るわけで、何か良い解決策は無いものかと思っていた。(課金してまで作ろうという発想はなかった)それと、保存したデータをどうやって閲覧するかも問題で、本気でつくると結構な作業になる。

そんなこんなで、しばらく経ったある日、よく他人のツイートを紹介するのに使われる、1ツイートだけの画面を見た時に、ここにもリツイートやら返信やらの機能があって、ツイート1つ1つに対して付与されているステータスIDとユーザ名でURLを特定できることに思い至った時に、コレでかつる!とひらめいた。

つまり、取得したタイムラインのデータを整形して、自分宛にメール送信する。ツイート文と共に上記のURLを記載しておけば、メーラーでタイムラインを追いつつ、必要があればURLからWebに飛んで、リツイート/返信/お気に入り等の機能も使える。なおかつメール形式にすることで、アーカイブと検索機能も手に入る。といったお手軽かつ要件も充分に満たしたWebアプリケーションを思いついた。(ツイートはDataStoreに登録しておき、一定時間毎にをまとめてメール。送信済みフラグの立ったのデータは順次DataStoreから削除)

現在1週間ほど稼働してますが、問題なく動いている。

そしていくつか課題も見えてきた。
1.メール送信にTaskQueueを使う
2.時刻変換の調査
3.メールをもっと見やすく
4.メンテナンス時の対応

1.メール送信にTaskQueueを使う
ここはTaskQueueを使うべきと思ってはいますが、TaskQueueをまだちゃんと理解してないので未実装。追って対応予定

2.時刻変換の調査
文字列から時刻に変換して、日本の時間に変換する。→なぜかエラーになるので調査中
(現状ツイートされた時間を日本時間に変換できていない)
※12/12 dateutilを使うことで対応。これ便利ですね。

3.メールをもっと見やすく
どんなに頑張ってもテキストだと限界がある。HTMLメールにして、読みやすくしたい
※12/12 HTMLメール対応。しかしツイート本文のリンクが…

4.メンテナンス時の対応
自分宛にメッセージ出してもしょうがないので、何の対応もしていないが、どうしますかねぇ

ぼちぼちやっていきますか。

0 件のコメント:

コメントを投稿