まずは、前回の課題の答えから。
正解は、5個目に出てくるアクション「テキスト」の中身を
(•_•)
( •_•)>⌐■-■
(⌐■_■)
から
(•_•)
( •_•)>⌐□-□
(⌐□_□)
に書き換えればいい。簡単だっただろうが、ともかく一度自分で書き換えてみることが大切である。
「後で読む」の改造
さて、今回の「改造」は、「後で読む」を使う。ギャラリーで検索すれば出てくる。中身はこんな感じ。
細かくは自分で確認してもらうとして、今回はいきなりこれを使ってみる。Safariを立ち上げ、何か適当なページ(このページでもいい)を開いて、このショートカットを発動させる。
すると、選択肢が出てくるので「リーディングリスト」を選択する。「リンクが保存されました!」となれば、当面はOKだ。
その後、Safariでリーディングリストを開いてみよう。Safariの下メニューにある本を開いたアイコンのボタンがそれだ。どうだろうか、うまく開いていたページが保存されていただろうか。
場合によって、ここは分かれる。もし、このページや、URLがhttps://ではじまるページならば、ページは保存されていないはずである。逆に、http://で始まるページならば、うまく保存されているだろう。
ここが今回の改造ポイントだ。
s一個だけの違い
では、「後で読む」ショートカットの中身を覗いてみよう。
ストレートに読めば、「Input」という名前の変数にhttp://という文字列が「含まれている」場合、なんらかの処理が行われることがわかる。
それはいいのだが、たとえば、このページのURLの先頭は、https://である。で、この二つ(http://とhttps://)は、一見よく似ているが、プログラム側から見れば、別の文字列いなる。だから、「http://が含まれてるかな〜、う〜ん、ないな、じゃあパス」みたいなことになって、綺麗にスルーされる。なかなか融通が効かないのだが、その辺は人間側が合わせるしかない。
となると、このショートカットを、https://でも使えるようには、少しの「改造」が必要である。
さて、どうするか。
望ましい動作としては、プログラム君が「http://かhttps://が含まれてるかな〜」と探してくれればいい。あるいは、http://を探したあとに、https://を探してくれてもいい。
それを踏まえた上で、この「次の場合」がどういうものなのかを見ていこう。
「次の場合」
まず、冒頭で何かしらをinputという変数に放り込んでいる。これは、safariを開いているときなどは、そのページのURLがそこに設定されていると、とりあえずは理解しておく。
で、それが本当にURLなのかどうかを、この「次の場合」で確かめている。確かめ方は簡単で、その中身にhttp://が含まれているかどうかで判断する。
もし含まれていれば、そのままその中身を次のアクションに手渡す。
含まれていないときは、クリップボードの中身を次のアクションに手渡す。ということは、ページを開いていないときでも、何かURLをコピーした後に、このショートカットを発動すると、それをリーディングリストに送り込める、という寸法である。
このように「次の場合」というのは、ある条件を満たすときに行う動作と、満たさないときに行う動作を分けることができる。プログラミングっぽく言えば、条件分岐、というやつだ。
この処理のおかげで、かなり複雑なことができるのだが、現状は「http://」だけしか探してくれないので、「https://」の場合はそれに合致せず、クリップボードがコピーされてしまう、という問題が生じている。
さて、ここで課題である。このショートカットの通常の動作に加えて「https://」のページでもきちんとリーディングリストに保存されるようにするには、どう「改造」すればいいだろうか。
一応、ヒントを言えば、新しい道具立ては必要ない。この記事にある情報だけで「改造」はできるはずだ。ただしこれは(前回に比べれば)ちょっとだけ難しいかもしれない。
解答は次回に載せるので、それまではちょこちょこ自分で改造してみてほしい。