2011-01-10

20 minutes blogging trial [2011-01-09 Sun]

blogger.com 経由でアップロードした画像ファイルの direct link が取得できました。 googleclはwindows版でのコンパイル済みのモノを使っていたので、開発待ちという状況でした。 python の gdata を取ってきて、ドキュメントを見ていくと、 (画素数を指定されていない)オリジナル画像のURLは photo.content.srcで出力されることが分かりました。 こんな感じです。

picasa-direct-url.pyの内容。

#!/usr/bin/python2.5

import gdata.photos.service
import gdata.media
import gdata.geo

gd_client = gdata.photos.service.PhotosService()
gd_client.email = 'change.me@gmail.com'     # Set your Picasaweb e-mail address...
gd_client.password = 'change.your.password'  # ... and password
gd_client.source = 'api-sample-google-com'
gd_client.ProgrammaticLogin()

albums = gd_client.GetUserFeed()
for album in albums.entry:
  print 'Album: %s (%s)' % (album.title.text, album.numphotos.text)

  photos = gd_client.GetFeed('/data/feed/api/user/default/albumid/%s?kind=photo' % (album.gphoto_id.text))
  for photo in photos.entry:
      print 'Photo:', photo.title.text, '\n', photo.content.src

これを起動すると、

path/to/gdata-2.0.13/samples>picasa-direct-url.py
Album: Chemical-X (16)
(snip)
Photo: conventional-way-converting-html2blogger.png
http://lh6.ggpht.com/_PPVUM1Hnh_Y/TSb5A6CE8AI/AAAAAAAAAaY/OS4N7ZdiBn8/convention
al-way-converting-html2blogger.png
(snip)

長いURLが出力されています。

これで、org-modeでのテキスト作成->emacsからblogger.comへの自動投稿 への道が更に開けそうです。 画像も対応してblogger.comに自動投稿してくれたらそれはとても便利になります。

ただ、org-googlecl.elのみを利用するかというと、それはちょっと分かりません。 現状のorg-googlecl.elで文字列を送る機能を実装して、 画像を挿入したいときには、そのdirect-link のURLを api で取得、それをelispでhtmlのAタグまで整形。 この方法が、一番感性が早そうです。

googleclに画像を含めたポスト機能を求めるのは結構時間が必要になりそうです。 org-mode内でorg-babelを使って生成した画像を含めて、googlclが全部をポストするには、今の情報では足りなさそうだからです。 直リンクするためのアドレスを取得しなければいけません。 その機能をgoogleclが作られるのを待つしかないわけです。 googlecl wikiで探しても、希望は一件のみで、それに対応するチケットが切られていない用です。

Comment by gialloporpora, Jul 23, 2010

Is it possible to have an option to print the url-direct after posting an image on Picasa? I would like to see the direct link to the image that I have posted, better if I could select output format (html, BBCode) to embeed it. Another thing, is it possible to accept also URL (remote images) as input, not only local images?

Sandro

残念なことに何も反応がありません。

ですので、google apiが用意されていて、gdataで操作できるなら、自分で直接やった方が早そうです。 何が知りたいかはもう分かっているわけですから。 phthonはほとんどいじったことがありませんが、まぁ、何とかなるでしょう。。

最初に想像したこと、

XMLのやりとり全てをelispで書いて実現する

という悪夢の様な状況1と比べれば、よっぽど楽になりそうです。

python勉強時間確保の優先順位が上がりました。 楽しいことを勉強できるのは最高に幸せな時間です。

今日はemacsとblogger.comとの周りの状況を説明するのに、35分もかかってしまいました。 20minじゃないですよね。 全然時間が足りませんでした。

Footnotes:

1 atom-blogger.elというライブラリがあります。2006年に公開されております。詳しくは@ Blogger 投稿用の Emacs パッケージをご覧下さい。

Related Posts: