カエレバ風ブックマークレットのリンクをキーボードショートカット一発で修正するサービスを作った

  • 投稿日:
  • by
  • カテゴリ:

Amazonリンク作成のツールとして、
カエレバ風をありがたく使わせていただいている。

ところがいつからか、こちらで作成したリンクから、
リンク切れが発見されるようになってしまった。
調べてみたところ、広告のトラッキング用の画像の
読み込みが遅いということのようだった。
Amazonアソシエイト広告のトラッキング用「ir」画像の読み込みが遅い - piyajk.com

https://ir-jp.amazon-adsystem.com/e/ir?...

というリンクを

https://fls-fe.amazon-adsystem.com/1/associates-ads/1/OP/r/json?...

に修正すれば良いようだった。

作成したリンクの膨大な文字列(3000字以上)の中から、
上のリンクを探し出して置換するとか、
めんどくさくてタンスの角に小指をぶつけてしまいそうである。

そこで、ショートカット一発で上記の置換を行うようにしようと思った。
楽をするためには全力を尽くすタイプです。

5分にも及ぶ調査の結果、以下のサイトを参考にすればできると判断し、
ツールはAutomatorを使うこととした。
[ Mac ] サービスを利用してファイルのパスをコピー・文字列置換する - Qiita

手順は基本的に上記サイトに沿うが、
微妙に違うところがあるので一応全部書いておく。

1. Automatorを起動

「アプリケーション」フォルダにあるAutomatorを開く。
Finderで ⌘+Shift+A を押してアプリケーションフォルダを開いてもいいし、
Launchpadから auto とでも打って検索してもいいし、お好きにどうぞ。

Kaereba-link-replacement01.png

2. 新規サービスの作成

Automatorアプリの「ファイル」メニューの「新規」から、
「クイックアクション」を選択する。

Kaereba-link-replacement02.png

3. アクションの追加

3.1 「クリップボードの内容を取得」

ウインドウ上の方の検索窓に「クリップ」と入力して、
出てくる「クリップボードの内容を取得」
右下のスペースにドラッグ&ドロップする。

Kaereba-link-replacement03.png

ドロップしたスペースの上の方にある
「ワークフローが受け取る項目」「テキスト」
「検索対象」「すべてのアプリケーション」でOK。

3.2 アクションの追加「シェルスクリプトを実行」

同様に検索窓に「シェル」と入力して、
出てくる「シェルスクリプトを実行」を右下のスペース、
上で設定した「クリップボードの内容を取得」の下に
ドラッグ&ドロップする。

下の画像のように、「シェル」「/bin/bash」を、
「入力の引き渡し方法」「引数として」を選択する。

下のスペースには、以下のように入力する。

for f in "$@"
do
    echo $f | sed -e "s/ir-jp\.amazon-adsystem\.com\/\e\/ir/fls-fe\.amazon-adsystem\.com\/1\/associates-ads\/\/OP\/r\/json/g"
done

3.3 「クリップボードにコピー」

3.1同様、ウインドウ上の方の検索窓に「クリップ」と入力して、
出てくる「クリップボードにコピー」
3.2で入力した「シェルスクリプトを実行」の下にドラッグ&ドロップする。

結果は以下のようになるはず。

Kaereba-link-replacement04.png

3.4 保存

できたら、名前をつけて保存しておく。
私は「カエレバ風テキスト置換」としたが、
お好きな名前でどうぞ。

4. ショートカットを設定する

作ったサービスをショートカット一発で呼び出せるようにする。

「システム環境設定」の「キーボード」「ショートカット」→「サービス」
「テキスト」の項目に、上で保存したサービスが出てくるはず。

Kaereba-link-replacement05.png

右側のショートカットを設定する空間をクリックして、
好きなショートカットを設定する。
私は他のショートカットとかぶらないように、
⌘+Shift+Option+C とした。手がつりそう。

これで、「カエレバ風」ブックマークレット で作成したリンクを
コピーした状態で ⌘+Shift+Option+C を押せば、
リンクが置換された状態でコピーし直されるようになった。

動作確認として、作業後のURLをエディターとかに貼り付けて、
リンクがちゃんと入れ替わっていることをチェックしてみてください。


今回は「リンク切れのURLの置換」という目的だったが、
Automatorを使うと、簡単にクリップボードのテキストを 置換することができるとお分かりいただけたかと思う。

他の用途でも使えるテクニックだと思うので、
覚えておきたい(自分が)。