2018年夏、猛暑過ぎますね。
今日も引きこもりが捗ります、 @shIbaInu42 です。
最近はお仕事で作業プロセスを自動化したり、
自宅でも自動化に思いを馳せたりしています(自動化は大事、板東は英二)。
今回は JXA(Javascript for Automation) と Amazon Dash Button でMacのアプリケーションを遠隔操作したいと思います。
目次
-
- 目的
-
- 準備するもの
-
- 作成と実行
-
- まとめ
1. 目的
帰宅時、ソファに座った状態で「iTunes(on Mac)の音楽をすぐ鳴らしたい」という私の欲望を満たすこと。
2. 準備するもの
- Amazon Dash Button
- JXAとDash Button のNodeモジュール(↓のインポートを実行)
npm i dash-button
npm i jxa
- Dash Buttonを開発用にセットアップ
→ 参考
3. 作成と実行
作成(コーディング)
「Dash Buttonが押されたらiTunesを再生/一時停止する」というコードを書く。
【※】5行目の物理アドレスの取得方法はコチラを参照ください。
//
// remoTunes let us remotely control iTunes via ARP
// [Author]: @shIbaInu42
// Physical address of Dash button
const PHYSIC_ADDR = "XX:XX:XX:XX:XX:XX";
// initialization of valuables
var dBtn = require("dash-button");
var iBtn = new dBtn(PHYSIC_ADDR);
var macApp = require("jxa").Application;
var iTunes = macApp("iTunes");
iBtn.addListener(
() => {
iTunes.playpause();
}
);
実行
作成が完了したら、実行します。
node remoTunes.js
※ハードウェアアクセスの権限がなく、permission deniedされたらsudo node remoTunes.js
してください
実行確認した動画を次に示します。
動作はこんな感じになります(↓)
※流れている音楽は踊ってばかりの国の「!!!(チック・チック・チック)」
4. まとめ
JXAとAmazon Dash Buttonを使ってダイナミックにiTunesを操作してみました。
たった数行でダイナミックな操作ができるようになりました、便利な世の中になったものです。。。
なお、iTunesの操作は他にもトラック情報を取得したり等、様々なコトができますし、
さらに、JXAはiTunesだけでなくFinder等のMacのアプリケーションをコードで操作できるようになります(!)。
自宅や会社で無駄なコトがあったら自動化してみましょう。
「Mac厨は嫌いだよ!世の会社を見てみろ!Windows一択だ!」
という方はJScriptデビューすることをオススメします。
日本の生産性アゲていきましょう。