AlfredWorkflowで遊ぶページ

Lesson5.複数のパラメータを利用する

開発メモ

ワークフロー

1.検索結果のURLを解析する

 とりあえずジョルダンの乗換案内で色々試して解析 
  &eki1=出発駅(駅の文字は不要、%エンコードなし)
  &eki2=到着駅(駅の文字は不要、%エンコードなし)
  &eki3=経由駅(駅の文字は不要、%エンコードなし)
  &Dym=年月
  &Ddd=日
  &Dhh=時
  &Dmn=分
  &Cway=0が出発時間、1が到着時間
  
 Alfredの入力が複雑にならないようにパラメータを考えます
 出発駅、到着駅、到着時間(省略可)、当日検索のみでいいかな
 そうすると、たぶんこんなURLをつくればいけそう

https://www.jorudan.co.jp/norikae/cgi/nori.cgi?&eki1=出発駅&eki2=到着駅&S=検索&Dhh=時間&Dmn=分&Cway=1

2.入力パラメータを分割する

 alfredの入力として3つの要素を空白で区切って入力してもらうようにします
 3つの要素は、出発駅、到着駅、到着時間(省略可)で順番固定です

 Alfredのワークフローユーティリティのsplit arg to valsが使えそうです
 駅名(全角)と到着時間(半角)の入力となるので、区切り文字としては
 全角空白と半角空白の2つを使いたかったのですが、その設定方法がわかりません
 そこでスクリプトで実装することにしました

arr=(`echo $query |sed  's/ / /g'`) 


 sedで全角空白を半角空白に置き換えてから配列に代入してみました
 括弧で括ると区切り文字で分割して配列に代入することができます
 つまり、arr[1],arr[2],arr[3]にそれぞれ格納します
 ※ちなみにAlfredのsplit arg to valsを使うと、配列ではなく
 split1,split2,split3というような変数になります

3.省略可能パラメータが入力されているか確認する

 3番目のパラメータの有無をチェックして到着時刻をつけるかどうか
 コントロールします。こんなif文です

if [ ${arr[3]} ]; then


 あとはOpen URLの受け渡してアクセしします
 Httpsから始まる全体のURLをechoしていますので、後続フローのOpenURLの
 URL欄には{query}だけを記載します
 
 RunScript
 

背景

 今回は複数パラメータに挑戦してみました
 split arg to valsを目論んでいたのですが、敢えなく失敗
 スクリプトで対応しました
 路線検索はナビタイム、駅探、ヤフーなどURLが露出しているので
 どれでもよかったのですがジョルダンで実装しました
 なおgoogleは埋め込み型のwebアプリで、『〇〇駅から××駅』という
 入力だけでOKなのでAlfredのワークフローを作るまでもないです。。。

取扱説明

機能:

 ジョルダン乗り換え案内を検索する

インストール:

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

使い方:

 Alfredへキーワード『電車』+パタメータ(出発駅、到着駅、到着時間)

トップページに戻る