2006年1月8日日曜日

mail2mt-newpost.pl

あれこれ調べて、こねくって作り、一応動いているようなので置いておく。

概要:
・Movable TypeのBlogに対してXML-RPC経由で記事を新規にpostするスクリプト。
・Perlで書いている。
・fmlなどで運用されているMLの記事を標準入力から読み込んで使うことを想定している。
・記事のHeaderのSunject:,Date:,X-ML-Name:, X-Mail-Count:を読み込み、
 BlogのTitle,Date,Category,individual-archive URLに変換する。

前提:
・Movable Typeで動かしているBlogがある。
・XML-RPC経由でのBlog記事の追加を許可している。
・ML毎のCategoryをあらかじめ用意している。

使い方:
・記事1通をBlogに登録する場合:
 $ perl mail2mt-newpost.pl < MLの個別の記事
・複数のファイルを連続して読み込みたいときはfindを使ったり、shでスクリプトを書くべし。


TODO:
・スクリプトが汚いので直したい。
 特にCategoriesを取得して、該当のCategory IDを取得する部分は良い手があるはず。
・ヘッダにX-ML-Name:が無いMLの場合は、List-Id:を代わりに取得するようにする。
・Date:ヘッダからBlog投稿時刻を設定する部分にまだbugがあるみたいなので直す。
 #年月日は正しいようだけど、時刻が00:00:00になってしまうようだ。
・記事中のE-mail addressをSPAMよけのために書き直す処理を追加する。
・記事が長いときに、bodyとextendに分ける処理を追加する。
Tips:
・Movable Typeの[Blogの設定]→[アーカイブの設定]→[アーカイブ・ファイルのテンプレート]→[individual archive]で、
 テンプレートに

<$MTEntryCategory$>/<$MTEntryKeywords dirify="1"$>.html

などと書くと、幸せになれそう。
ご注意:
・もちろん、公開されるMLの記事は公開が前提となっているものに限る。
 #Blogが隠蔽されているとかIntranetで運営されているなら話は別だろうけど。
ダウンロード:
mail2mt-newpost.pl

0 件のコメント:

コメントを投稿