下に行くほど新しいコメント。トラックバックは UTF-8 で。

お! 来ましたね。
でも「Download できません。」ですって。iDisk 直接だから kaoru_ari さん専用ですか?


なかなかファイルの転送ができなくて、エントリのアップの方が先になってしまいました。

でも、やっとアップできたようです。てか、ちょっと前からアップはされていたんですが、iBlog のほうの更新ができなくて。

なぜか(心当たりはありますが)、公開がリセットされてしまい、1時間半上もファイル転送してました。しかも、途中でエラーになったので、エントリによっては 404 になってるかもしれません。

>iDisk 直接だから kaoru_ari さん専用ですか?

どなたかダウンロードして、解凍できるか試して下さ〜い。(私は成功しましたが)


それが URL が http://idisk.mac.com/kaoru_ari/ P...logSpy3.0.0.dmg になっているので、http://homepage.mac.com/kaoru_ari/.Public/iBlogSpy3.0.0.dmg にしないとダウンロードできないんです。


 お疲れさんです。ちゃんと解凍出来ましたよ〜。仕事がバタバタしてるので試すのは先かも知れません。といいつつ新しモノ好きなのでいじっちゃうかも。


to OKAMURA さん
idisk.mac.com の場合は、.Public としないはず…

to mojo さん
ほっ… たいしたものじゃないので、ヒマなときにどうぞ。


あ、そうなんだ。辿ってダウンロードできなかったのは単にアップロードが完了していなかったからなんですね。

それはそうと preview after に対応しているは確認とれました。publish after はしてくれませんでした。

一つ可能ならお願いがあります。preview after で iblogPatcher の実行が終わる確認が動作から見てコマンドの発行後に文字列が現れたかどうかで見ていると推測しているのですが、これをコマンド前の文字列と同じ文字列が現れたかどうかにすることはできないでしょうか。

というのは今未公開のプラグインではだらだらと文字列が出力されるので、終わりかと勘違いされているんです。実行中なのでターミナルが確認ダイアログを出して切られはしないので、致命的ではありませんが、プロンプトを条件にすれば汎用性が維持できるかと思います。


やっぱ私以外の環境では終了判定に問題がありますか…

ターミナルの終了判定には、ウインドウ名が「perl」でないこと、でおこなっています。バックグラウンドでターミナルを起動させているのも、画面を再描画させたいからなんです。

プロンプトが取得できるかどうか、やってみますね。


とりあえず、最前面のウインドウのプロセスが busy かどうか判定することにしました。
夜アップします。


アップしました。ただし、 Publish after はダメですけど。


どうもー。
取り敢えずダウンロードしておきます。お試しは明日くらいになります。


Gravatar あ!ちょっと巡回をさぼっていたらいつの間に。
早速頂きました。まだエントリしてないので使ってませんが、取りあえず、
property target_pub_xml_n :
の所はFTPの場合、また、ログファイルでいいんでしょうかね。まだエントリしてないので、次確認してみますが。と、言うか、現状 PublishAfter は使わないので、どこでも関係ない?

それと取りあえず起動だけはしてみたのですが、何気に iBlog を終了してから、 iBlog Spy が終了するまでのブランクが長くなったような気がしますが気のせいでしょうか?

P.S.
OKAMURA さんがさりげなく突っ込んでますが、動作しないのは「PublishAfter」ですよね? エントリが PreviewAfter になってますが。


Gravatar げ! preview after になってますね。ちょっと電波の入りが悪いので、訂正できないっす orz

今回は、publish after の監視対象はログファイルと rss.xml です。t0mori さんの場合は、公開用ファイルの作成先の rss.xml にしてください。

iBlog Spy の終了が遅いですか。やっぱ delay のかけ過ぎかなぁ。すべてdelay (waste_time / 4) にしたんですがね。
前のバージョンと違って、0にしても動作上は問題ありません。


Gravatar 終了の遅さの原因を検証しようと思って、前のバージョンのソースを読んのですが、あまりにきたないスクリプトだったので挫折しました。今のがきれいだとは言えないのが寂しいですが。

to t0mori さん
ncftpput_cmd を入れる場所が分かりにくかったら、コメントしてくださいね。

ところで、前から思ってるんですが、スクリプトを編集するときに「システム環境設定」と「ぶろっぐぴんぴん」が起動するのも不満です。
くきさんの iBlogTagAssist みたいに、設定を別ファイルにしたいんですが、本体と設定ファイルを置く場所が制限されちゃうんです。

いい方法を知っている方、教えて下さい。


Gravatar >ncftpput_cmd を入れる場所が分かりにくかったら、コメントしてくださいね。

あ、ありがとうございます。
ただ、今はPreviewAfter時にPreviewディレクトリに正しいRSSに変換して、 iBlog でアップロードしてるので使っていないのです。でも、コマンド送信の追記部分として覚えておきます。

システム環境設定とぶろっぐぴんぴんが起動するのはそう言う事だったのですか。あと、起動中の編集はNGみたいですね。うっかりやってしまってあれこれ巻き込んでハングしてしまいました。(FireWire転送時のハングと似た感じだったので、crashreporterdのハングみたいでした。うちだけかも知れません)


Gravatar スクリプトの修正版を 3.0.2 としてアップしました。

更新履歴
3.0.2 (2005.03.1
・サブルーチン呼び出しのあちこちで my 〜が抜けていたのを念のため修正
・1カ所だけ modification date の取得が as text になっていたのを修正
・do_ibP() の preview と publish を一つにまとめた
・後述の条件、1. 2. の場合、publish after のコマンドを、公開が更新されたブログにだけ実施するようにした

ダウンロード

publish after に対応したものです。ただし、自分で検証できる条件にありませんので、試さない方がいいかと。多分ダメなような気がします。

publish after の条件として、
1. ローカル iDisk 同期
2. iDisk 常時マウント
3. Publish 後 iDisk マウント
の3つを考えなければいけない(それが目標)なので、骨が折れます。

to t0mori さん
ncftpput_cmd は、on idle ハンドルの中、2カ所の my blogPingPing() の直前に入れて下さい。
また、BlogPingPing を開くスクリプトを使っていらっしゃると思うので、my blogPingPing() をコメントアウトした上でスクリプトを走らせる処理を入れた方がいいですね。(釈迦に説法)

起動中の編集は、AppleScript の特性として問題ないはずです。私はいつも、起動中に編集作業をおこなっています。
ただし、起動中(スクリプトの start up 中のことです)にいくつかの外部環境の検証を行っている関係で、スクリプトを開くと外部アプリケーションが起動を始めます。このときに「接続エラー」が発生する可能性はあります。
また、上記の理由で起動に時間がかかりますので、iBlog が起動する以前にスクリプトを編集して保存するのもまずいかもしれません。

ハングされたとはちょっとびっくり。
ヒトバシラー合格です(笑)


Gravatar >BlogPingPing を開くスクリプトを使っていらっしゃると思うので

あは。実はそれも使ってなかったり。
以前ご相談した、 iBlog Spy 2 で FTP 環境だと監視するファイルをログファイルにするしかなくて、結局、何度もPublishAfterの処理が為されるので、ぶろっぐぴんぴんは起動するだけでPingしないように iblogPatcher のブログ定義ファイルを書き換えてしまいました。

なので、 PublishAfter が使えない現状はまだ結局2を使ってます。3.01は kill -s SIGKILL でも死ななくて強制ログアウトしか道が無かったもので、ちょっと怖くて(^^;
それと、うちでは 3.01 で Publish 後にぶろっぐぴんぴんは起動しない(起動するのは Script を編集する時のみ)んですが、これって変? あと、Preview後のブラウザリロードもまだなんですよね?(うちだけだったらやだなぁ......)

ハングした時は iBlog Spy を起動後、 iBlog が起動して何やらエントリを書いてるうちにふと思い立ち、 ScriptEditor を起動し、「最近使った項目」からアクセスしたんですが、何かのタイミングが悪かったのかも知れません。ハングが深刻になったのはこう言った際に Dock から強制終了しようとした為で、うちの G5 じゃしばしば起こるのです。 iBlog Spy の所為じゃないと思います。


Gravatar 3.0.2 では publish after 実行の一部にバグがあります。mounted_idisk_mode="n" でエラーが出ます。
3.0.3 で解決しましたが、アップはまだです。

to t0mori さん
ぶろっぐぴんぴんが起動しない原因は、まだ見つけられません。しばらくお待ちください。3.0.3 では直ってるのかも。
ハングの件、了解しました。
私は、(iBlogSpy以外の)アプリケーションが応答しない場合、ターミナルから kill します。(ターミナルはログイン項目に入れて、常時起動しています)
Dock からは強制終了がきかない場合が多いので…
それと previw 後のリロードがないと、やっぱ物足りないですよね。
今回のバージョンは、Safari に依存しない形式にしたかった(私自身がiBookではFirefoxを使っていますから)ので、割愛してしまいました。
System Events を使って対応させてみたいと思います。設定項目がひとつ増えてしまいますが、iblogPatcher 以外への対応へも開けますし。


Gravatar 僕も常に Terminal は起動してるんですが、つい、先に「command+option+esc」を押してしまうんです。長年の癖ですね。で、ここでハングした場合は大抵 Dock でもダメなんですが、これまたつい Dock に行っちゃうんです(学習能力無し(^^;) こうなるとたとえ Terminal が起動してても、 Terminal をアクティブにする事そのものが出来なくなっちゃうんですよね。ウィンドウクリックではアクティブになるので、何かやばい事をやる時は大抵 Terminal ウィンドウを隅っこに表示させるようにしてます。

個人的には iBlog Spy 自体のダイアログは表示せずに Preview 後のブラウザリロードが欲しいです。 iBlog 自体がブラウザで表示する機能を持っているので、やはり iBlog Spy も同じように動作してくれると美しいなぁ、と思ってしまいます。

取りあえず気を取り直して3.03を使用させて頂きますです。また何かあったらヒトバシラー報告しますね。


Gravatar 3.03 じゃなくて3.02でしたね、上のコメント。
で、設定しようと思ってスクリプトエディタで開いたのですが、なぜかぶろっぐぴんぴんが起動してすぐに終了してしまいます。で、 iBlog Spy 3.02 を設定して保存しようとすると、ぶろっぐぴんぴんが起動していないので、コンパイル出来ない、みたいなメッセージが返ってきました。
この状態で手動でぶろっぐぴんぴんを起動しても終了してしまいます。仕方ないので保存せずにそのまま終了したらぶろっぐぴんぴんが起動出来るようになりました。

と言う訳で、設定出来ず......。この症状、僕だけでしょうか。


Gravatar t0mori さんだけかどうかはわかりませんが… (少なくとも、私のところではうまくいきます)

ぶろっぐぴんぴんの扱いを変えようかと思っています。
現行のスクリプトではぶろっぐぴんぴんをもっていない人には設定もできないわけなんですよねぇ。
前みたいに「上級者向け」ということでコメントアウトしてしまうか、ぶろっぐぴんぴんへのフルパスを設定してもらって System Events から開こうかと。
preview after と publish after のあとに、それぞれファイルを開けるようにすると、非 iblogPatcher ユーザ向けにも使えるスクリプトになるかな…


Gravatar 上記の件、こっちのシステムの問題だった模様です。再起動したら症状、出なくなりました。
お騒がせしました。


Gravatar 入れ違いにレス頂いていた事に気付きませんでした。
上記の件、その後 iBlog Spy2 も起動出来なく(正確には iBlog が勝手に終了してしまって、何やらアップルスクリプトのエラーが出る)なってしまったので、どうも SystemEvent が暴走かなんかしてたみたいです。 Terminal で top 実行中だと落ちてしまったりとか、ちょっと変でした。起動しっぱなしで1週間近く経っていたので(^^; お騒がせしました。

>preview after と publish after のあとに、それ
>ぞれファイルを開けるようにすると、
>非 iblogPatcher ユーザ向けにも使えるスクリプト
>になるかな…

ああ、確かにその方がいいかもですね。汎用性も高くなるし。それぞれの環境でどうしたいかの設定も細かく出来そう。


Gravatar System Event の暴走ではなく、Cocoa 系のアプリや、AppleScript でありがちのようなエラーの気がします。どうも、初期設定ファイルの取得に失敗しているような… だから System Event の暴走と表現できるか(笑) ああ、Carbon でもあるか。たいてい、ソフトの再インストールで対応してました。

プレビュー、パブリッシュのあとのファイルオープンの件、少なくとも私の環境ならプレビューのあとに iBlogFreezer 、パブリッシュのあとにぶろっぐぴんぴんが起動できると便利かなと思いまして。
アプリ起動としてはスマートではないのですが、System Event でのファイルオープンの場合、対象を 「""(null)」 にすれば何も起こらないし、非 iblogPatcher ユーザがターミナルの do script を null にしても、ターミナルが起動するだけで、 iBlog Spy が終了するなりしてくれます。
できれば、OKAMURA さんの拡張 CommonLib.js 作成スクリプトにも対応したいなと。
ユーザを獲得できるかどうかは別問題として(笑)


Gravatar あれ? RSS には 3.03 の更新記録が出てるんですが、エントリには無い? と思ったらトップは更新されてますね。エントリページがアップされてないのかなぁ......。手動(3.02のリンクを書き換えて)でダウンロードしてみました

>System Event の暴走ではなく、Cocoa 系のアプリ
>や、AppleScript でありがちのようなエラーの気が
>します。

あ、そうなんですか。うちでは少なくともアプリの起動なんかでは初めて見たような感じでした。バックアップソフトでの細かいファイルコピーとかで似たような事になった事はありますが。これは FireWire 機器によって出たり出なかったりなので、多分、ハードウェアの問題と思います。


Gravatar ぬ。直ってた(^^;

で、使ってみたのですが、どうもスクリプトエラーが出てしまいます。
正確には一回目に使った時はエラーは出ずに「iblogPatcher is running in background process...」と出て、ブラウザをリロード。しかし、 iblogPatcher は当たっておらず。
2 回目に使った時は同じメッセージが出た所で、エラーが出て止まってしまいました。設定は3.02と同じにしてるんですけど。

出来たら iblogPatcher を当てる時はTerminalはカレントになって欲しいです。やっぱ不安なので。


Gravatar あは、直しました。
そのときに、iBlog Spy の use_publish_after "y"、mounted_idisk_mode "n" を試したところ、publish after の実行時にダイアログ関係でエラーが出ましたが、なんとかうまく動作しました。

t0mori さんのエラーは preview after ですよね。
ターゲット指定の記述に問題があるのかもしれません。
次のコメントに書く AppleScript を Finder でターゲットファイルを選択した状態で使ってみていただけませんか?


Gravatar tell application "Finder"
try
get the selection
if the result is not {} then
get the selection as text
set the path_to_target to the result
if the path_to_target is not "" then
display dialog the path_to_target buttons {"Cancel", "Clipboard"} default button 2 with icon note
set the clipboard to path_to_target
else
display dialog "Error: More than 2 items are selected." buttons {"Cancel"} default button 1 with icon caution
end if
else
display dialog "Error: No items are selected." buttons {"Cancel"} default button 1 with icon caution
end if
on error the error_message number the error_number
if the error_number is not -128 then
set the error_text to "Error: " & the error_number & ". " & the error_message
display dialog the error_text buttons {"Cancel"} default button 1
else
error number -128
end if
end try
end tell


Gravatar 使ってみました。
上のAppleScriptを使って取得したパスで設定( pre_log, pub_log, target_pre_html_1, target_pub_xml_1)を書き直しました。しかし、変わらずです。1回目と同じようにエラーは出ませんが、「iblogPatcher is running in background process...」が出て、 Terminal ウィンドウには何も起こらずブラウザリロード、そして iblogPatcher は適用されておらず、です。リロード前に一瞬 Terminal がカレントになりますが、すぐ Safari に移ります。
他の部分の設定は以下の通り。
property number_of_blogs : 1
property use_ibPatcher : "y"
property use_after_command : "n"
property terminal_after : ""
property mounted_idisk_mode : "n"
property use_blogpingping : "y"


Gravatar ターミナルが iBlogPatcher のコマンドを受け取る前に閉じられてしまっている可能性が高いです。

今、delay の掛け方を見直しているのですが、いちど、
property terminal_after : ""
にして試してみていただけませんか? よろしくお願いします。


Gravatar ん? 上に書いたように元々その設定なのですが。手前に Terminal ウィンドウが見える状態で使っても同じでした。


Gravatar そうでしたね。
G5 のマシンと G3 では違い過ぎかなぁ。

property ibP_pre_cmnd_1 : "iblogPatcher --blog myblog.txt preview after"

tell application "Terminal"
do script ibP_pre_cmnd_1
end tell

これ単体でスクリプトを組むと、動きますか?


Gravatar 試してみました。動かなかったです。正確には Terminal に property ibP_pre_cmnd_1 の内容は渡されませんでした。 Terminal もカレントに来なかったです。

3.02 までは難あれど、 Terminal に渡す所までは出来てたと思うんですが。 iBlog Spy 2.1 は問題なく動いてます。


Gravatar ぐうっ! すごく難解かも。でも、 t0mori さんにお付き合いいただいたおかげで、ちょっと読めてきました。

operty ibP_pre_cmnd_1 : "iblogPatcher --blog myblog.txt preview after"

tell application "Terminal"
do script with command ibP_pre_cmnd_1
end tell

ではどうでしょう? 私の環境では前のスクリプトでも動くのですが、省略可能な要素だと思っていたものが、環境によっては省略していけないものなのかも…

これが原因だといいんだけど…


Gravatar 「この identifier の後に identifier を書く事はできません。」と構文エラーが出て一瞬、ダメか?と思いましたが、単に property の頭2文字が欠けていただけでした(^^;

今度はちゃんと動きましたよ〜。 Terminal に渡されて、 PreviewAfter が実行されました。


Gravatar ScriptEditor の Terminal の用語解説開くと
「 data to be passed to the Terminal application as the command line, deprecated, use direct parameter」
なんてありますね。これがうちに該当するのかしらん?


Gravatar よかったぁ。

>これがうちに該当するのかしらん?

『data to be passed to the Terminal application as the command line』の部分は、一緒なんですが。あとが理解できましぇん。

よし、次のバージョンで、しばらくおとなしくできそう。一部とはいえ、publish after のテストもしましたので、βにしようかな。

アップしましたら、も一度だけお付き合いください。お願いします。


Gravatar 「データをコマンドラインとして Terminal アプリケーションに通す、 推奨されない場合、直接パラメータを使用」でしょうかね......。何のこっちゃい(^^;

以下、ヒトバシラー報告。

1) PreviewAfter については問題なくなりました。

2) PublishAfter はなぜだかループして実行されます。
最初は起動時と終了時だけかと思ったんですが、 Publish した後眺めていたら、 waste_time で指定したウェイトが経過したサイクルで延々と繰り返していました。(6回目までは確認)

3) ぶろっぐぴんぴんが起動しない。
これ、ここにプロパティが用意されて初めて気付いたんですが、うちの場合は iBlog 関係のものは全て "~/Applications" にしているのでした( iBlog Spy も)。で、プロパティをうちの環境に合わせた正しい位置に指定し直しましたが、やはり音沙汰無しでした。

但し、2) 3) の PublishAfter 絡みに関しては、うちは Publish したファイルがローカルから確認出来る位置にありませんので、 property target_pub_xml_1 にはプレビューディレクトリの rss.xml を指定しています。この辺の環境差なのかも知れません。また、ここを property pub_log と同じログファイルに変更してみましたが、これも変化ありませんでした。


Gravatar publish after がループされる件、原因をつかむことができました。実際に試してみて、うまくいったらアップします。
ぶろっぐぴんぴんが起動しない理由がわからない…
property open_file_after_preview : "Mac:Users:kaoru:Library:Application Support:iBlogFreezer-1.1:iBlogFreezer"
property open_file_after_publish : "Mac:Applications:BlogPingPing for Mac.app"
property open_file_list : {open_file_after_preview, open_file_after_publish}

repeat with i from 1 to 2
openFile(i)
end repeat

on openFile(pre_pub)
set now_open_file to item pre_pub of open_file_list
if now_open_file is not "" then
tell application "System Events"
open file now_open_file
end tell
end if
end openFile

これ動きます?

t0mori さんの環境で publish after を効かせるには、
property target_pub_xml_1 に .CHANGE_ENCODE.time を指定するといいかもしれません。と、思いません?


Gravatar >これ動きます?

動きます。

> .CHANGE_ENCODE.time を指定するといいかもしれません。と、思いません?

む、 PreviewAfter 時に生成される物だから同じなような気もしますが。やっぱりファイルの更新を拾ってるんですよね?


Gravatar あ、なるほど、 PublishAfter 時に .CHANGE_ENCODE.time をローカルのどこかに出力すればいいですね。3.05が出たらやってみます。


Gravatar バグフィクスして、3.0.5 として公開しました。
Download

t0mori さん
.CHANGE_ENCODE.time は preview after で生成して、それを publish after のトリガにすればいいと思います。それならば、確実に preview after のあとに publish after が実行されます。
現在の iDisk ユーザ向けのアルゴリズムでは、プレビュー用 rss.xml を publish after の監視ファイルとして指定した場合、iBlog がプレビューと公開を連続して行なった場合(たとえば… う〜ん、プレビューボタンを押さずに、いきなり公開した場合かな)、preview after と publish after が逆順で行われる可能性があるのではないかと思うからです。
ま、publish after での処理内容によっては、逆順でも問題ないと思いますが。


Gravatar ああ、そう言えば rss.xml は Publish 後に書き換えられるんですよね。なぜこんな仕様なのか分りませんが、 [$DocumentRoot$] などが展開されていないファイルに。
了解です。後ほど試してみますです。


Gravatar 3.05、動作、概ね良好です。
一点、気付いた所。と言うか想像ですが、 PublishAfter が "y" でないとぶろっぐぴんぴんが起動しないってことはないですか?
うちの場合、現状 PublishAfter で行ってるのはぶろっぐぴんぴんの起動だけなのですが、注意して見ていると...

1. PublishAfter を "n" →ぶろっぐぴんぴんは起動せず。

2. PublishAfter を "y" → PublishAfter でぶろっぐぴんぴん起動→ iBlog Spy のダイアログが出る→ Terminal がカレントになる→ぶろっぐぴんぴんがカレントになる。

と言う動きでした。

今回は PublishAfter のターゲットファイルを .CHANGE_ENCODE.time でも動作しましたし、プレビューディレクトリの rss.xml でも動作しました。うちの場合、 Publish 時にプレビューディレクトリの rss.xml が iBlog によって置き換えられるので、このバグらしき動きを使う事にした方が良さそうです。


Gravatar あ、あと、以前から気になっているのですが、ウェイトの時間の property waste_time の値が 4/1(秒)って、ホントですか?
なんかもっと長いように思いますが。4で設定して、8秒以上掛かってるように思います。16秒くらい掛かってるような...... 1*4 が正解ってことはないです?


Gravatar あ、しまった。上の間違い。1/4(秒)ですね(^^;


Gravatar 言われてみれば… 公開後、publish after 処理が完了しないと、次の openFile() が発動しない仕様になってますね。
publish after を使用するかどうかとは関係なく、公開後にファイルを開いたほうが、現状の publish after の使われ方に即してますね。次回、改良します。


waste_time の件、調べてみたのですが、問題はないようです。でも、プレビューが終了してから preview after がかかるまでが長過ぎますよね。
多分、プレビューが終わってからも、ログファイルの書き換えが続いているんだと思います。
書き換えがバッファされているのかなぁ。

いろいろと変更したバージョンをアップする予定です。

それにしても、助かりました t0mori さん。お付き合いいただき、ありがとうございます。


Gravatar >プレビューが終わってからも、ログファイルの書き
>換えが続いているんだと思います。

あ、なるほど〜。

>それにしても、助かりました

いえいえ。お陰様で3.05で今は運営出来てます。こんな便利なもん、使わずにいられよか、って感じ。って、こちらも忙しくて、新しいエントリひとつしか挙げてないですが......(^^;


Name:

Email:

URL:

Comment:  ?

 

JavaScript powered by (^^)v2

Commenting by HaloScan