22 February
2005

Moblogでのエントリで画像サイズ を指定したい


要件としてはこんな感じ。

 ・あるユーザに使って貰っているがあまりパソコンが詳しくない。
 ・メールはOKなんでMoblogの機能で更新してもらっている。
 ・ところが添付してくる画像ファイルはほぼデジカメデータのまま。
 ・画像ソフトでイメージサイズを変えてもらうのは敷居が高い、面倒。

で、COREBlogのソースに直接画像サイズを変換するコードを書き込んでいたわけ
ですが当然、COREBlogのバージョンアップ時には書き換え作業が発生する。
なんとかしたいなー、と。
EntryやCommentにはhook関数があるがMoblogのエントリとは別物。

で、jaMailHostなどを参考にごちゃごちゃやっているおり、最近のCOREBlog ML
をながめていてなんとなく頭の中が整理できた。

http://mail.webcore.co.jp/pipermail/coreblog/2005-February/001036.html
http://mail.webcore.co.jp/pipermail/coreblog/2005-February/001040.html

bapluginを覗かせていただくと"add_mail_entry"関数を上書きしていることがわ
かった。「あ、答えがここにあった。」
それならもう、簡単。bapluginの__init__.pyをコピーさせていただいて適当な
プロダクトを作った(__init__.pyとrefresh.txtだけ)。
で、私に必要ないと思われるimport行と処理は消させて貰って

http://mail.webcore.co.jp/pipermail/coreblog/2005-February/001041.html

COREBlogも1.11がでているからついでにバージョンアップしCOREBlog.pyから
"add_mail_entry"の処理をコピペ。
とりあえず"add_mail_entry"関数の変更したい箇所
  posting_body = """<img src="./images/%s" border="0">\n""" % (pictid)
+ posting_body
をborder="1"とかにして様子を探ってみた。
「decryptなんて関数知らないよ」と怒られた。
で、COREBlog.utilityをimportしている行に"decrypt"を追記。どうもPython2.4
対応のためrotorを使わないように変更になったようです。>ご苦労様です。

もう一度productをリフレッシュして実験。おお、今度はいけた。無事border有
りの画像が投稿できた。

最終的には


if pict_attached:
if self.getProperty("moblog_user") == "アカウント名":
#あるアカウントだけリサイズしたいわけですね。
posting_body = """<img src="./images/%s/thumb?width=576" border="0">\n""" % (pictid) + posting_body
else:
posting_body = """<img src="./images/%s" border="0">\n"""
% (pictid) + posting_body

見たいな感じにした。本当はアカウント名とか、widthのサイズ指定とかを
manage画面とかで指定できればいいのだけどまあ今のところ必要なし。
いずれproduct作りの勉強を兼ねてやってみよう。
"thumb...."云々はImageTag_HotFixと言うやつです。

http://coreblog.org/ats/193

で紹介されています。PILが必須。

#で、ここまでやってふと思った。
「COREBlogのバージョンアップで"add_mail_entry"関数が変更になったらこのプ
ラグインも直さないとだめじゃん」
したい処理以外は全部コピペですから。だったらpythonスクリプトでbodyのimg
タグを書き換える方が、、、、。


というわけでmoblogの動作テスト兼です。


Posted by shinobu at 14:43
<< Tulip | Main | リファラーをみてると >>