esaのAlfred WorkflowをGoで作りました
作ったもの
とりあえずtokenとチーム名を登録して記事を検索できるだけです。
注意点
ちなみに、esaのAPIは利用制限があるので検索しすぎにご注意ください
https://docs.esa.io/posts/102#2-3-0
現時点では、ユーザ毎に15分間に75リクエストまで受け付けます。 とのこと
alfred-esa-workflow作ったんだけど、 API利用制限が15分間に75リクエストということで速攻で使えなくなった :innocent: pic.twitter.com/0BRWGTXaM9
— きょこみ@k02 (@k_yokomi) January 28, 2017
参考にしたもの
使ったライブラリ
filterで一覧表示するのがこんなに楽に実装できて感謝
esaのClientすでに作っている方がいてesaのAPI仕様はあまり見ないでもサクッと作れました! 感謝
最初、直接 Open in Finder
したフォルダ内にバイナリを放り込んで開発してたんですが、 普通に xxx.alfredworkflow
をダブルクリックしてInstallして動作確認したかったので、 alfred-workflow-packager
を使うようにしました。(まあ、色々replaceしてzipに固めるだけっぽいですが)
ただ、これはMacでAlfred3がインストールされている前提のコードがあるので、ちょっと書き直してCIで動くようにしようかなと思ってます。
GoでAlfredWorkflowを作る手順(雑メモ)
AlfredWorkflowつくるぞ〜と思ってから最初どうすればいいかわからない具合いが結構すごかったです。
とりあえず自分は、似てるworkflowをinstallして Alfred上で Open in Finder
して中身を漁ってつくりを把握してつくってみました。
思ったより単純な構造で、基本的には以下の流れでつくればいいのかなという理解。
- 普通にCLIツールをGoで作る
-
Script filter
での出力はgo-alfred
等を使ってxmlをPrintする Run Script
してPost Notification
に表示する出力は普通にfmt.Print
でOK
-
- Alfred上でkeywordsとかをとりあえず作成して
./<バイナリ名> search "{query}"
みたいな感じでCLIツールの呼び出しする Open URL
とか適当なActionを紐付けて、とりあえず動くところまでいくOpen in Finder
してicon.png
とinfo.plist
だけコピーしてGoのProjectにコピーする- あとは
alfred-workflow-packager
を使ってxxx.alfredworkflow
を作成して、ダブルクリックしてインストールして動作確認していく感じ
まとめ
Alfred便利なのでどんどん作っていくぞ!!!!!!