こんにちは。亀山です。弊社では様々なバックオフィス業務にマネーフォワードを利用しています。休暇の管理のためにクラウド勤怠を導入し、ブラウザから毎日出勤・退勤の記録を行っています。
でもクリックがめんどくさすぎる
そうだ CLI にしよう
使うもの
Puppeteer
GUI なしの Chrome を Node から操作できる便利なやつです。
Headless Recorder
Headless Recorder - Chrome ウェブストア
ブラウザの操作を記録して Puppeteer のスクリプトとして出力するツールです。
できたもの
こちらです。
ほとんど Headless Recorder が出力したスクリプトがそのまま入っています。パスワードなどをターミナルから入力する機能を実装し、CLI として簡単に整えるだけで完成です。
npx github:ryohey/money-forward-attendance-cli clock in
で出勤することができます。
工夫点
認証に必要なパスワードは node-keytar を使って Keychain に保存します。最初の実行時に一度だけターミナルで訊ね、次回から入力しなくてもいいようになっています。
今後
このコマンドを取り込んだ、cov
コマンドを作成しました。
今回作成したスクリプトをサブコマンドとして持ち、cov oha
cov otu
のコマンドで出勤、退勤を行うことができます。
コベリンの Slack では出勤・退勤時に #kintai
チャンネルにて「おは」「おつ」の挨拶をすることが良しとされていますが、本コマンドに Slack への投稿機能も実装されることで、こちらも半自動化されることが期待されています。id:takkumattsu が実装してくれると言っていました。
ゆくゆくは、会社のあらゆることを cov
コマンド経由で行えるようにし、Company as a CLI を実現できたら嬉しいです。
Company as a CLI とは
会社の様々な業務を CLI として利用できるようにするという概念です。僕が考えました。究極的には cov employee new
を叩くと社員が1人増えます。メリットは特にありません。