差分 | 一覧 | RSS | FrontPage | 更新履歴

posttdiary.rb改造 - v1.71 をリリースしました。

目次

v1.71 をリリースしました。

English document is here: http://ks.nwr.jp/prog/posttdiary.html

はじめに

ダウンロード

ここからダウンロードできます: http://ks.nwr.jp/pub/tdiary/posttdiary-ex.rb

2005.3.14より、tDiaryのcontribにも追加されました。 SourceForge?のCVSから入手できます: http://cvs.sourceforge.net/viewcvs.py/tdiary/contrib/util/posttdiary/

過去のバージョンなどはこちら: http://ks.nwr.jp/pub/tdiary/

主な追加機能

動作に必要なもの

インストール

"|IFS=' ' && exec ~/bin/posttdiary-ex.rb (オプションずらずら)(url) (username) (password) || exit 75"
|preline ~/bin/posttdiary-ex.rb (オプションずらずら)(url) (username) (password)

処理の流れは、こんな感じになります:

使い方の例

絵日記プラグイン機能追加版と組み合わせる例(推奨)

posttdiary-ex.rb -a /home/hogehoge/htdocs/tdiary/ -g 800x800 -c -s -e -v 3 http://www.yoursite.jp/~hogehoge/tdiary/update.rb tdiary_username tdiary_password

絵日記プラグイン機能追加版の設定をtdiary.confから読み込んで使います。-a オプションでtdiary.confの位置を指定しています。絵日記プラグイン機能追加版の設定が済んでいれば、サムネイルのサイズや画像の保存先なども自動的に読み込みます。

Wiki スタイル+絵日記プラグイン機能追加版で利用する例

posttdiary-ex.rb -a /home/hogehoge/htdocs/tdiary/ -g 800x800 -c -s -w http://www.yoursite.jp/~hogehoge/tdiary/update.rb tdiary_username tdiary_password

上記で -e オプションの代わりに-wを指定すると、Wiki スタイルに合うように出力します。 新設したばかりですので、要望などありましたらこのページの末尾に追記よろしく!

tdiary.conf を使わない例

posttdiary-ex.rb -i /home/hogehoge/htdocs/tdiary/diary-images/ -u http://www.yoursite.jp/~hogehoge/tdiary/diary-images/ -s -t 100x100 -g 900x900 -c -y -v 3 http://www.yoursite.jp/~hogehoge/tdiary/update.rb tdiary_username tdiary_password

絵日記プラグイン(機能追加版)を利用していない場合や-aオプションを使わない場合は、保存先やURL等をオプションで設定してやる必要があります。

tDiary以外のシステムと使う例

posttdiary-ex.rb -i /home/hogehoge/htdocs/tdiary/diary-images/ -u http://www.yoursite.jp/~hogehoge/tdiary/diary-images/ -s -t 100x100 -g 900x900 -c -v 0 -d

tDiary以外のプログラムと組み合わせるための使い方です。tDiaryのシステムが無くても使えます。サムネイル作成などの処理を行った後、日記の更新を行う代わりに、標準出力に生成したテキストを出力して終了します。

メールサーバとは別のwebサーバを利用する(リモートモード)例

posttdiary-ex.rb -i /home/hogehoge/tmp/ -u http://www.remotesite.jp/~hogehoge/diary-images/ -s -g 900x900 -c -v 0 -R -D /home/hogehoge/htdocs/diary-images/ -Y 0 http://www.remotesite.jp/~hogehoge/tdiary/update.rb tdiary_username tdiary_password

メールを受け取って処理するサーバと、tDiaryを走らせているサーバが完全に別の場合です。画像もHTTP経由でPOSTします(ブラウザの編集画面で画像を追加するのと同じ手順を利用しています)。サムネイルは転送されませんので、ここで設定しても無駄です。-D, -Y は絵日記プラグイン機能追加版では必須です("元祖"絵日記プラグインでは不要です)。

動作チェックの方法

設定不備などでエラーが発生した場合、そのメールはメールサーバでエラーとして扱われます。が、すぐに返送されずに暫くサーバに滞留したりするため、トラブルの元になります。

下記のような手順で、テストしてから実用に供しましょう。 実際にメールを受信させる前に、-d や -b オプションを用いて、コマンドラインでテストすると良いでしょう。

~/bin/posttdiary-ex.rb (オプションずらずら) -d < samplemail-1.txt

update.rb のURLや、tDiaryのusername/password は指定不要です。

正常なら、処理されたテキストが画面に出力されます。

~/bin/posttdiary-ex.rb (オプションずらずら) (url) (username) (password) < samplemail-1.txt

エラーが表示されず、日記にテスト用のメッセージと画像が追加されればOKです。

"|IFS=' ' && exec ~/bin/posttdiary-ex.rb (オプションずらずら)-b /home/hoge/result.txt || exit 75"

update.rb のURLや、tDiaryのusername/password は指定不要です。

/home/hoge/ は書き込みたいディレクトリ名に置き換えて下さい。

正常なら、result.txt に処理結果が保存されます。文字化けしたりしてないかどうか、目でざっとチェックして下さい。

この -b オプションは日記の更新をしませんので、(tDiaryに結果が渡される前の)procmailやmaildropなどによる振り分け処理のデバッグにも便利です。

デバッグ用に、受信したメールをそのままファイルに保存するスクリプトを下記に置いておきます。中のwritefileを適宜書き換えてご利用下さい。 http://ks.nwr.jp/pub/misc/mailtest.rb

"|IFS=' ' && exec ~/bin/posttdiary-ex.rb (オプションずらずら)(url) (username) (password) || exit 75"

トラブルシューティング

posttdiary-ex.rb が起動できない

"posttdiary-ex: *** execution failed: (****) not found" などと言われる

テスト中に"authorization required" などと言われる場合

画像の代わりに短い文字列が表示される

テキスト本文は正常だが、画像が表示されない

いろいろな場合が考えられます。下記のような点をご確認下さい。

元画像だけが出てきて、サムネイル表示にならない

特定の端末に依存して問題が起こる場合

特定の機種の携帯から更新した時だけ

する場合、posttdiary-ex.rbが想定していない形式のメールの可能性があります。できるだけ対応したいと思いますので、このページの末尾やさくらぃの日記にご一報をお願いします。

posttdiary-ex.rb 自体のバグ

エラーメッセージで

などと言われる場合は、たぶんposttdiary-ex.rbのバグです(汗)。このページの末尾やさくらぃの日記にご一報頂けると助かります。

書式

通常のモード

posttdiary-ex.rb (オプション類) (update.rb のURL) (tDiaryのユーザーID) (tDiaryのパスワード)

最後にupdate.rbをHTTP経由で呼び出して、日記を更新します。

フィルタモード

posttdiary-ex.rb (-dまたは-bを含むオプション類)

tDiary以外のプログラムと組み合わせて使うための書式です。詳しくは--filter-mode を参照。

オプション一覧(基本編)

よく使われそうなオプション類。 詳細はこちら:(posttdiary-ex)オプション一覧・基本編

オプション省略形意味tdiary.confから読み込み可能
--help-hヘルプを表示して終了--h
--read-conffile directory-a指定された場所の tdiary.conf から各種設定を読む--a /home/hoge/htdocs/tdiary/
--image-path dirname-i画像の保存先を指定o-i /home/hoge/htdocs/diary-images/
--image-url URL-u画像保存先のURLを指定o-u http://your.site/~hoge/diary-images/
--use-subject-sメールのSubjectを小見出しに使用--s
--make-thumbnail size-tサムネイルを指定されたサイズで生成o-t 120x120
--image-geometry size-g添付画像が大きい時、指定サイズに収まるように縮小--g 800x800
--use-image-ex-e絵日記プラグイン機能追加版と連携する--e
--wiki-style-wWikiスタイルモード--w
--blog-style-Bblogkitモード--B
--read-exif-cEXIFのユーザコメント情報を画像の代替テキスト(ALT)に設定--c
--hour-offset offset-otDiaryの時差設定o-o -4
--yearly-dir-y年ごとに別のディレクトリに画像を格納o-y

オプション一覧(応用編)

もっと凝りたい方向け。 詳細はこちら:(posttdiary-ex)オプション解説・応用編

オプション省略形意味tdiary.confから読み込み可能
--convert-path fullpath_of_convert-Cconvert(とidentify)のフルパス名を指定o-C /usr/local/bin/convert
--exif-path fullpath_of_exif-Eexifのフルパス名を指定--E /usr/local/bin/exif
--remote-mode-R画像もリモートのwebサーバへHTTP経由で転送する(リモートモード)--R
--remote-image-path remote_dirname-Dリモートサーバでの画像保存先--D /home/ksakurai/htdocs/diary-images/
--remote-yearly-dir switch-Yリモートサーバで年別のディレクトリに分けるかどうか--Y 1
--preserve-local-images-Pリモートモードでもローカルの画像を消去しない--P
--class-name class_name-n画像タグのクラス名を指定--n diaryimage
--add-div number_of_images-v指定数以上の画像を div でまとめる--v 3
--threshold-size threshold_image_size -z指定サイズより大きければサムネイルをつくるo-z 160x160
--image-format format_string-f画像タグのフォーマットを設定--f \"{{image \$0}}\"
--use-original-name-r添付時の画像ファイル名を代替テキストに設定--r
--pass-filename-pシリアル番号の代わりに実ファイル名を出力--p
--filter-mode-dtDiaryを呼ばずに標準出力にテキストを出力--d
--write-to-file filename-btDiaryを呼ばずに指定ファイルにテキストを出力--b /home/hoge/result.txt
--date-margin date_margin-j指定日数以上先の日付の指定を無視--j 10
--upload-only-U画像のアップロードのみ--U
--rotate LEFT/RIGHT-T画像の回転--T RIGHT

日付指定機能

メールごとに、どの日付の日記に追記するかを指定できます。数日分を書き溜めておいて、一気に送信する、ということが可能です。
_Date#年-月-日

の形式で記述します。 たとえば2005年1月15日の日記に追記したい場合、メール本文に

_Date#2005-1-15

の一行を追加します。

_Date#20050115

のように8桁で入力してもOK。(でも、見間違えやすいかも?)

間違って今日から7日以上ずれた日付を指定すると、投稿日時の日記として処理されます。--date-marginオプションで設定変更可能です。

画像回転機能

画像を左または右に90度回転させることができます。これには3通りのやり方があります。

EXIF情報を利用して自動回転

 --read-exif オプションが有効になっている場合、EXIFのorientationタグを利用して、自動的に左または右に90度回転させます。

この機能を無効にするには、--rotate オプションを指定してやります。

注1:添付された画像に正しいorientation情報が含まれていないと、却っておかしなことになります。

注2:ImageMagick?のconvert --rotate機能を使用しています。これが無い古いバージョンではエラーを起こすかも。

メールにコマンド文字列を入れる

メール本文に
_ROT_RIGHT# または _ROT_LEFT# の一行を入力しておくと、そのメールの添付画像を右90度または左90度回転します。 画像ごとの指定はできません。

_ROT_NONE# を指定すると、回転しません。

コマンドラインで指定する

 --rotate LEFT
または
 --rotate RIGHT
で回転します。

 --rotate NONE
で回転しなくなります。

優先順位

メール本文、コマンドライン、EXIF情報の順で優先します。

known bugs

関連リンク

オリジナルのwebページ
http://tdiary-users.sourceforge.jp/cgi-bin/wiki.cgi?posttdiary%2Erb
tDiary.org
http://www.tdiary.org/
tDiary-users-project
http://tdiary-users.sourceforge.jp/cgi-bin/wiki.cgi
さくらぃの日記
http://ks.nwr.jp/d/

履歴

コメント: