【AppleScript】ブログ記事1025サマリー(要約、抜粋)を更新する

2013-10-10

下記の記事は、以前書いたものに少し手を加えたものです。
多少古くなっている点はご容赦ください。 

投稿(ページも含めて)が現時点は全部で1025有ります。
ブログレイアウトはマガジンタイプを選択していますので
各ページに10記事のサマリー(要約・抜粋)が表示されます。
その抜粋が自動選択ですとタグが使用されレイアウトが崩れてしまいます。
その修正をさかのぼってする必要が有りました。
その手段として構文を書くのがなれないものですのでGUI Scriptingで
しようとしましたがウインドウをクリックするポイントがずれてしまうと言うこと
都度各アプリケーションのウインドウを開くので時間がかかってしまうことが有り
なるべくAppleScript構文のみで動かすようにしました。
AppleScriptectoJedit Xの組み合わせです。

記事の参照を調べ本文を取得してタグと空白を正規表現で削除してから
処理後の本文先頭の4文節を取得しタグを文節末に挿入して
サマリーに張り付けると言うものです。
それをリピート文で繰り返します。

苦心した点は
1 記事編集の参照を見つけるのに時間がかかった。
2 〃を省略するとエラーになる。
3 〃コマンド。
4 本文にtellしてもクリップボードにコピーされない。
5 文節を選択して動くときとエラーになる場合がある。(いずれもコンパイルはされる。)
6 本文の4行を選択したときに本文が三行以下のときのエラー処理。
7 LapTimeが秒数が多いと指数表示になりエラーになる。
8 記事のアップロードの間隔を5秒空けたがectoのプロセスが一時300になった。

などといろいろ苦労しましたがサブサイトのテストを経て
サマリーの修正は終わりました。
1回もエラー無く終了したのは良かったと思います。
1426秒ですので24分程度かかりました。
手動ですと集中力が途切れたり用事等もありますので一気に出来ません。
日中にメンテナンスモードにしての作業ははなかなかしづらいですので
深夜か早朝に作業することになりますので大変です。
30分程度ですと日中にウォッチしながら他の作業も出来ますので
AppleScriptでの操作は便利かと思います。
この時間程度で目的の処理がおわれば私にとっては充分です。

——————後日談
要約(サマリーsummary)のさかのぼっての更新は出来ましたので
こんどは追記(footerextended: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
自己サイトですと、CrayonSyntaxHighlighterを使いますが、オフィシャルサイトですので
preタグにて拙構文を書いています。
投稿者 梶原
ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー 

ページトップに戻る↑                           ページ一番下へ↓

Since1991 © Shimayugu All Rights Reserved.
アップルおよびアップルのロゴは、米国および他の国々で登録されたApple Inc.の商標です。
湘南マッキントッシュユーザーズグループは、独立したユーザグループで、Apple Japan合同会社が権限を与えた団体、支援する団体、またはその他に承認する団体ではありません。