2005年07月17日

moblog スクリプト更新

Movable Type用のperlによるmoblogスクリプト、post2blogを更新。
Download file

メタデータである位置情報をエントリー時に本文テキストに静的に埋め込んでしまうより、メタなまま保持させて必要なときにプラグインで加工処理する方が美しいということで、位置情報の取り出しは廃止した。

更新内容:
・位置情報取り出し機能の廃止
・カテゴリー設定機能の追加

2006-09-29 更新内容:
・ネストしたMIMEパートに対応
・MIMEパートの並び順通りに添付ファイルを本文に挿入

設定方法その他は基本的には旧版と大差ないが、位置情報取り出しの廃止に伴い、Image::Infoはpost2blog単体では不要になった。

2006-09-29 追記
入れ子になったMIMEでエラーが起きるのを修正するべくAppleのMail.app(添付をAppleDoubleで送るので入れ子になる)でテストを繰り返すうち、画像の直後に「↑これがその画像です」と書いたりして添付画像と本文の位置関係で情報を示すことがあるのに気づいたので、それまでの「まとめて添付ファイル+本文」からメール通りに並べるように変更。

設定部分:
my $MT_DIR = '/Library/WebServer/Documents/mt/';
Movable Typeをインストールしているディレクトリ。
my $url = 'http://www.your-site.com/movabletype/mt-xmlrpc.cgi'; # CGIPath + 'mt-xmlrpc.cgi'
mt-xmlrpc.cgiのURL
my $blog_id = 1;
ポスト先のblog ID
my $username = 'Melody';
my $password = 'Nelson';
ポストするユーザ名とパスワード
my $category_id = 1;
プライマリのカテゴリ。0ならカテゴリを設定しない。
my @categories = (2, 3, 4);
その他のカテゴリのリスト。プライマリのカテゴリが0ならこれも無視される。
my $parse_path = '/Users/Shared/post2blog';
メールをParseするときにファイルを展開するディレクトリ
my $ffmpeg = '/usr/local/bin/ffmpeg';
ffmpegをインストールしているなら、そのパス。''にするとamcや3gpのサムネールを生成しない。
my ($maxx, $maxy) = (320, 320);
添付写真の表示サイズ

位置情報を持つエントリーから地図サービスへリンクするなどの機能は、locations.plプラグインでどうぞ。

Posted by jiro at 2005年07月17日 22:30 | トラックバック (14)
コメント

質問です。
メールに添付した画像ファイルの保存先というのは、Perlのなかのどこで指定しているのでしょうか(どこをいじれば保存先を変更できるでしょうか)?
教えていただければさいわいです。

Posted by: 相馬称 at 2005年10月06日 11:53

metaWeblog.newMediaObjectの'name'にディレクトリ名を含んで渡してやればオーケーです。archives以下に置きたいなら
'name' => 'archives/'.$filename
てな感じでいけると思います。

Posted by: jm at 2005年10月15日 19:08

ありがとうございます。

Posted by: 相馬称 at 2005年10月22日 23:20

post2blogを利用させて頂いています。
MT3からMT4にアップグレードした際2点問題が起き色々と調べてみたのですが、解決せずにこちらに書き込ませて頂きました。

・公開日の時間
 いくつかパターンがあるのですが、基本的には公開日の時間が投稿した時間のぴったり9時間前となってしまいます。GMTからの時間を考えれば、JSTの時間をさらに9時間引いていると推測できます。
 パターンとしては、「投稿した時点で9時間前に設定されるている」「投稿したものはその瞬間の時間だが、1つ前の投稿の時間が書き直され今の時間より9時間前になってしまう」「最初は問題なかったのに、ある投稿から突然に9時間前の投稿となってしまう」です。正常なときもあったので、こちらの設定やサーバの問題もあるかもしれません。

・カテゴリ指定
 MT4ではカテゴリ指定が変わったかのようで、カテゴリを何か指定して投稿すると、再構築の際にエラーになるようです。投稿してから管理ページにアクセスするとエラーとなってログインできなくなります。管理ページにログインした状態で投稿すると、再構築はエラーになりますが、記事一覧には反映されているようです。カテゴリを0とすればエラーは起こらないので、これで使っています。

 以上の2点です。突然の書き込みですが、どうぞよろしくお願いします。

Posted by: kakimoto at 2008年04月02日 01:24

 昨日書き込みましたkakimotoです。
 昨日の今日で申し訳ないのですが、上述の2点、とりあえず解決しました。

 まず、時間の件ですが、これは私の表現がまずくて、「(タイムゾーンに関係なく)とにかくGMTの時間で投稿される」というものでした。別の所で「BlogWriteで9時間ずれる問題がある」というヒントを頂き、簡単な解決法(MT4.1の新機能カスタムフィールドをごっそり削除)を見つけてとりあえずは解決しています。

カテゴリの件ですが、「複数のカテゴリ指定」に問題があるのではないかと推測し、post2blogのちょうど真ん中にあるforeachを使った複数カテゴリを指定する3行を全てコメントアウトするとカテゴリが設定されて投稿されて、再構築もできました。私の方だけで解決したものかもしれませんがご参考に頂ければと思います。

Posted by: kakimoto at 2008年04月02日 23:22

最近手元のマシンを取り替えて、テストベッドがなくなっていたため、コメントが遅れました。
確認してみたのですが、これ、CustomFieldsに含まれるXMLRPCServer.pmのバグですね。引数の数を間違えてます。とほほ。
addons/Commercial.pack/lib/CustomFields/XMLRPCServer.pm
の16行目、
my ($cb, $mt, $entry, $original) = @_;

my ($mt, $entry, $original) = @_;
にすれば直るはずです。SixApart、ちゃんとテストしてんのかなあ。

Posted by: motonaga at 2008年04月10日 13:36

カテゴリーの件は、こちらの環境では再現しませんでした。複数のカテゴリー割当も問題なく動いているようです。

Posted by: motonaga at 2008年04月10日 13:48

 どうもです。応対ありがとうございます。
 実は、post2blogを使っている別の方にも相談したところ、私の方で起こった現象はそちらでは起こってない、ということでした。もしかしたらこちらの環境に問題があるのかもしれません。

 こちらの環境は、さくらインターネットで、SQLITEを利用。MT4.1を新規インストールして利用、です。

 どうも、ありがとうございました。

Posted by: kakimoto at 2008年04月28日 13:44

こんにちわ
POST2BLOGで携帯から投稿時に、本文に <) があるとそれ以降がエントリーに反映されないようです。

なにか対策は可能でしょうか?

環境は
さくらのレンタルサーバー
Movable Type Pro version 4.21-ja

です。

Posted by: 伊藤 at 2008年12月08日 16:33
コメントする









名前、アドレスを登録しますか?