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の動作テスト兼です。