blogSetomits

Welcome to blogSetomits

sakurasakurasakura
昼ご飯を買いに川向こうのローソンへ。(神田)川のあっち側は桜並木になっててきれいな。ということで、自慢の洋ぽんで写真を。
Posted at 12:32 | Comments : 3

モブロぐ場合はいくつかの文字をエスケープ

いくつかの文字をエスケープで書いた方法だと、いちいちlineごとにreplaceをするので、これはなんなので以下のように変更。
1550行目あたりかな、
posting_body = join(body_l[1:], "\n")
を以下のように変更。
bodybuf = join(body_l[1:], "\n") bodybuf = replace(bodybuf ,"&", "&amp;") bodybuf = replace(bodybuf, "<", "&lt;") bodybuf = replace(bodybuf, ">", "&gt;") bodybuf = replace(bodybuf, "\\", "&#092;") posting_body = bodybuf
Posted at 11:12 | Comments : 0

いくつかの文字をエスケープ

COREBlogでは、エントリを追加する際にいくつかのHTMLタグが利用できる。ブラウザからエントリを追加する際には、自分の意図でタグを入力するから問題ないし、タグのつもりでなく"<"とか">"を使っても、エントリの表示が崩れていることに気づきやすいので、比較的早い段階で問題に対処できると思う。でも、moblog機能を使った場合には、表示が崩れていることになかなか気づかないんじゃないかな。

ということで、moblog機能を使ってエントリを追加した場合にのみ、いくつかの文字をエスケープすることにします。つまり、メールに含まれる"&"を"&amp;"に、"<"を"&lt;"に、">"を"&gt;"に、"\"を"&#092;"にそれぞれ変換するわけです。

これらの変換をどこでするのが適切なのかは怪しいのですが、僕はCOREBlog.pyの1513行目あたりの
line = replace(line,"\n","") line = replace(line,"\r","")

line = replace(line, "&", "&amp;") line = replace(line, "<", "&lt;") line = replace(line, ">", "&gt;") line = replace(line, "\\", "&#092;")
という4行を追加しました。
ここでの表示はアレですが、もちろん上の2行と同じブロックとして適切にインデントします。

これでmoblogで、
<晩ご飯> * チンジャオロース & フカヒレスープ * \950
みたいな内容のエントリを追加してもちゃんと表示されます。
Posted at 01:11 | Comments : 0

モブログメールの自動削除

COREBlogのモブログ機能では、携帯などから特定のメールアドレスに対してメールを送信し、その後ブラウザなどで特定のURLにアクセスすることによって、前述のアドレス宛のメールをPOPリクエストを発行し、エントリを追加する仕組みになっています。
でもって、URLにアクセスするところに関しては先日書いたとおり、.forwardにちょこっと書くことによってうまく動くようになったわけですが、スプールにはメールがたまり続けます。なので、メーラなどで定期的にメールの削除をするように勧められているのですが、それすらも面倒なのでどうにかならんかなと思い、ちといじってみました。

(ここからPCによる編集)
具体的に何をしたかというと、ZopeのCOREBlogのプロダクトの保存されているディレクトリ(うちの場合は「/var/zope/Products/COREBlog/」)内のCOREBlog.pyを編集しました。このファイルでは1450行目で
ml = m.retr(cnt)[1]
として、cnt番目のメッセージを取り出しています。なので、この処理の後で同じcnt番目のメッセージを削除するためのフラグを立てればそれでOKです。ということで、1450行目と同じブロック内の次の行に、
m.dele(cnt)
という1行を挿入しました。
あとはZopeの再起動を行って、モブログ用のアドレスにメールを送信したら、想定どおりの動きをしてくれました。

PythonのPOPまわりの使用方法については、Pythonのライブラリリファレンスの「11.9.1 POP3 オブジェクト 」のあたりをご覧ください。
なお、ここに書かれていることは僕が個人的にしていることで、このことにより何らかの問題が発生しても一切責任は取りませんので、自己責任にて編集してください。
Posted at 10:45 | Comments : 2

.forwardを使って

このCOREBlogというBlogシステムでは、Moblog機能を利用するには
  • Moblogの設定画面で指定したメールアドレスに向けてメールを送る
  • 同じ設定画面の下の方にあるURLにアクセスする
という過程を踏まなければならない。なお、そのURLにアクセスする際はZopeの認証に使っているユーザ名とパスワードを入力しなくてはいけません。COREBlogのサイト内のMoblogの設定方法を見ると、WgetなどをCronで動かしてうんぬんと書かれているけど、うちのマシンは非力なので少しでも負荷がかからないように、メールを送ったときにだけURLにアクセスするようにしてみました。

今回の例では、Blogシステムが動いているマシンがメールサーバもしており、このメールサーバ上のアカウントがMoblog用のメールアドレスとし、このアカウントをmobsetoとします。また、Zopeでのアカウントをseto、パスワードをotesとします。また、メール読み込みようのURLがhttp://hoge.com/blog/seto/receiveであるとします。なお、これらは実在しませんので試したりしないように。

/home/mobseto/.forwardを以下のように編集。
\mobseto "| wget -O - --http-user=seto --http-passwd=otes http://localhost/blog/seto/receive"

これでmobseto@hoge.comにメールを送ると、そのときだけメールの読み込みを行います。あー、もちろんWgetがインストールされている必要があります。
Posted at 01:32 | Comments : 0