繰り返しで検索結果のノート内容を全て取得する[AppleScript][Evernote]
前回は検索結果のノートの内容を取得するところまでやりました。
set note1 to find notes "notebook:inbox"
set text1 to HTML content of item 1 of note1
二つ目の文のitem 1 の所を、2,3,4…と増やしていけば、検索結果のノートの内容全てにアクセスできます。
で、そういう時はrepeat。いろいろ構文があるようですが、リストを扱うときに便利なのが
repeat with i in list1
end repeat
という感じのもの。変数iに、リストの内容を順番に突っ込んでいってくれます。おそらくリストの最後の要素までたどり着けば終了、という構文なのでしょう。
今のところ、順番は気にしていませんので、この構文を使ってみます。
set text2 to ""
set note1 to find notes "notebook:inbox"
repeat with i in note1
set text1 to HTML content of i
set text2 to text2 & text1
end repeat
多少形が変わっていることに注意してください。
iにはリストの要素が代入されますので、
item i of note1
だとエラーになります(なりました)。
ようは一回目のループが回っているときは
i = item 1 of note1
二回目のループの時は
i = item 2 of note1
という風にiの中身はなっているわけです。だから「HTML content of i」という記述でその中身を取り出せます。
set text2 to text2 & text1
は他にもっとクールな書き方があるのかもしれませんが、とりあえずとして。
text2という大きな箱を準備し、そこにtext1の内容をループごとに追記していきます。
で、最終的に全てのノートの要素がtext2に入る、というわけですね。これはまあ、リストに保存したほうがいいのかもしれません。後の方の処理がよくわかっていないので、とりあえずこの方法にしておきます。
しかし、単純にこのやり方だと、<HTML>や<BODY>が一つの箱に複数入ることになってしまいます。次はその改善。
あと、検索結果が空だったときの条件分岐も必要ですね。それもまた今度。