2011年11月23日水曜日

tumblr関連のスクリプティングまとめ・反省

このエントリーをブックマークに追加 このエントリーを含むはてなブックマーク
唐突にtumblr関係のプログラムをごにょごにょしたので、その簡単なまとめと反省。

コードはgithubに置いてある。

メモを見ると
Goal
非同期書き込み非同期読み込み、重複contentなしのtumblr client
pointされている画像とかも表示できる(twitterのpicsとか)
らしい。


  • 最初の頃はUIを作る気でいた。面倒なのでpythonを使うつもりでいた。
  • getをかけている間固まるのが厭だったので、twistedを選択。(まあまあの決断かな。遠い未来は分からないので悪い決断出なければよしとすべきだろう。)
  • pyqtをインストールできないのでwxを試す。
  • とっつきはwx.html.windowを使ってレンダーしたのだったが、依存する画像データのメモリ渡しが出来ない様だったので捨てる。このままでは表示系がないのでproxyとして実装して、UIは後回し。(これはよい決断だったと思う。)
  • とりあえず動かしたproxyでもfirefoxの読み込みの遅さが改善されて驚く。どういう作りなんだか。IPv6がらみ??(根拠なし)
  • proxy上で特定のhostに関してhookするやり口はよかったのだが、hostにマッチする方法がやりすぎだった。
  • proxyとcacheのプロセスを分けたのは正解だった。pluginも分離すべきかもしれない。repが短くなりデバッグがやりやすい。

  • dashboardの取得でハマる。ブラウザのクッキーを覗き見して使うのではなくてapiを使うべきだった。(反省)

  • twisted.web.client.getPageとかでのヘッダーの扱いで思い込みが多かった。(反省)
    • uaやcookieを渡しても書いてくれるだろう→ダメ。
    • content-typeを付けてくれない! c.f. urllib.openurlは勝手にpostにしてくれるし、コンテントタイプを付けてくれる。
今後
  • tumblr api v2はoauthなのだが対応するのか? メリットデメリットは?
  • package cacheデータの置き場所とか
  • prefetchの機能改善:
    • 現状、/api/dashboardを読み込んだときのxmlのデータでpointされる画像しか拾っていない
    • dashboardのhtmlをlocalで生成する。(/dashboard読み込みの遅さを改善する。)
    • endless scrollに対応する。
    • cacheされていなかったことでmissしたcontentもcacheに書き込む。
  • reblog graphの生成とか重複排除とか・・・たぶんpostのdbが必要になる。
  • UIどうしよう?外部プレーヤの起動もやってみたい。

0 件のコメント: