AlfredWorkflowで遊ぶページ

Lesson2.入力パラメータを利用してURLを組み立てる

開発メモ

ワークフロー

1.英語と日本語のキーワードで起動させる

 RunScriptのインプットとなるキーワードを2つ繋げるだけでOKです
 パラメータが全角の場合があることを考慮して、スクリプトで半角化しています

2.全角数字を半角に変換する

 Sedコマンドで変換しています。数字だけなので、見た目でわかりやすいスクリプトですね
 よく見る例では0〜9と並べていますが、試しに9〜0としてみました。もちろん動きます
 sed 'y/9876543210/9876543210/'

3.コマンドの結果を変数に格納する

 バックスラッシュで囲むとコマンドの結果を変数に代入できます
 下記のコードは、$1の数字部分を半角化して変数queryに格納します
 query=`echo $1|sed 'y/9876543210/9876543210/'`
 ちなみに私はUK配列キーボードなので、バックスラッシュが簡単に入力できます

4.文字列の部分参照

 timelineのURLに必要なyyyy-mm-ddを作成する際にパラメータを部分参照します
 queryには入力されたyyyymmdd形式の日付けが入っている想定です。
 ${query:0:4}"-"${query:4:2}"-"${query:6:2}
 部分参照の構文は ${変数:開始位置:長さ} となりますが、開始位置は
 先頭が0となります
 ※ちなみにyyyy-mm-ddとしてユーザーから入力させるのであれば
 FeaturesのWeb Searchのカスタム検索で実現する方が簡単です
 ”-”をユーザーに書かせない点が、実はこのワークフローの肝なのです

5.URLを開く

 ワークフローのオブジェクトを使わずにスクリプトからOPENをしてみました
 英数字だけのURLならopenで良さそうです
 日本語がある場合は%エンコードが必要になりそうな気がします

RunScript

背景

 趣味で一眼レフを使って風景写真を撮っています
 写真の位置情報はスマホから取得する筈なのですが、スマホとカメラが連携する前に
 撮影が完了してしまい位置情報が取得できないことがよくあります
 そこで撮影日から訪れた場所を確認するためにこのツールを作ってみました

取扱説明

機能:

 特定の日付のgoogle timelineを表示させる

インストール:

 1.alfredworkflowをダウンロード
 2.ファイルをダブルクリックしてワークフローに登録

使い方:

 Alfredからキーワードで起動
 gt yyyymmdd
 または
 場所 yyyymmdd
 ※私がalfredを日本語でweb検索に使うことが多いので、日本語でも起動できるようにしました
 ”場所”よりも”アリバイ”みたいなキーワードが良いかも。。。

トップページに戻る