投稿(ページも含めて)が現時点は全部で1025有ります。
ブログレイアウトはマガジンタイプを選択していますので、
各ページに10記事のサマリー(要約・抜粋)が表示されます。
その抜粋が自動選択ですと” ”タグが使用されレイアウトが崩れてしまいます。
その修正をさかのぼってする必要が有りました。
その手段として、構文を書くのがなれないものですのでGUI Scriptingで
しようとしましたが、ウインドウをクリックするポイントがずれてしまうと言うこと、
都度各アプリケーションのウインドウを開くので時間がかかってしまうことが有り、
なるべくAppleScript構文のみで動かすようにしました。
AppleScript、ecto、Jedit Xの組み合わせです。
記事の参照を調べ、本文を取得してタグと空白を正規表現で削除してから、
処理後の本文先頭の4文節を取得し、””タグを文節末に挿入して
サマリーに張り付けると言うものです。それをリピート文で繰り返します。
苦心した点は、
- 記事編集の参照を見つけるのに時間がかかった。
- 〃 を省略するとエラーになる。
- 〃 コマンド。
- 本文にtellしてもクリップボードにコピーされない。
- 文節を選択して動くときとエラーになる場合がある。(いずれもコンパイルはされる。)
- 本文の4行を選択したときに本文が三行以下のときのエラー処理。
- LapTimeが秒数が多いと指数表示になり、エラーになる。
- 記事のアップロードの間隔を5秒空けたが、ectoのプロセスが一時300になった。
などと、いろいろ苦労しましたが、サブサイトのテストを経て
サマリーの修正は終わりました。
1回もエラー無く終了したのは良かったと思います。
1426秒ですので、24分程度かかりました。
手動ですと、集中力が途切れたり、用事等もありますので一気に出来ません。
日中にメンテナンスモードにしての作業ははなかなかしづらいですので、
深夜か早朝に作業することになりますので大変です。
30分程度ですと、日中にウォッチしながら他の作業も出来ますので
AppleScriptでの操作は便利かと思います。
図1
要約を作成
他の言語ではもっと早く処理できるかもしれませんが、
この時間程度で目的の処理がおわれば私にとっては充分です。
——————後日談
要約(サマリー、summary)のさかのぼっての更新は出来ましたので
こんどは追記(footer、extended:ectoでのproperties)を更新しようとしたのですが
エラーが有って文字化けになってしまいます。
ちょっと悩みどころです。
いろいろ動作テストをして、目的の動作を達成した構文を後で見返してみると
この構文でよく動いたものだ。というものがあります。
ectoとAppleScriptに助けられていますね。
——————後日談2
ectoの追記(extended)にはHTMLで入力、アップロードしないと
正しく表示されないので、問題点が解決するまでの間に
サイトでの記事のエントリーナンバーとecto上での記事IDが一致しない問題が
有りましたので、追記エリアにはテキストなら文字化けが表示されないことに
注目して、entory numberをリピート文を使って入れてみました。
500記事をectoの追記エリアに入れるには27秒、
それをアップロードするには、14分20秒かかりました。全部で15分程度です。
たくさんの量の送信命令をectoのActivity Viewer側にdumpするので
エラーにならないかと心配しましたが、大丈夫でした。
AppleScriptにdelayを入れなくても大丈夫なようです。
しかし、しつこく参照にtellしないと、動かないのには困ります。
──────────後日談3
本文中に構文を書くと動作にエラーを起こすらしく構文が消えてしまいます。
そういえば、本文中に構文を書く方のブログを見ると
画像にしてあったり、テキストでも別エリアにしていますね。注意が必要でした。
- ––──────────4行以下の場合4行──────────を追加
- tell application “Jedit X“
- activate
- open ““ as POSIX file ––ここにパスを入力
- set paraNum to count paragraph
- if result ≥ 4 then
- result
- else if result < 4 then
- set paragraph (paraNum + 1) to return & ¬
- “──────────“ & resurn & “──────────“ & return & “──────────“ & ¬
- return & “──────────“
- end if
- end tell
──────────後日談4
文中に各コードは、以後CrayonSyntaxHighlighterで書くことにしました。
ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー