人権真骨頂

とくがたかいことでゆうめい

オフィスにいる人間をSlackに通知するやつ作った

はじめに

この記事は,Aizu Advent Calendar 2016の8日目の記事.

www.adventar.org

前の記事は, id:misoton665

misoton665.hatenablog.com

すごい!!!!!

明日は, a_r_g_v

なにするやつ

オフィスにいる人間をMACアドレスを利用してSlackに通知するやつ

できたやつ

(時間があれなのは休日に遊んでいたため)

github.com

なにをやったか

SQLiteに保存してあるMACアドレスを探して見つかればSlackに通知するようにした.

いい感じにMACアドレスと人間を紐付けるのに管理ページほしかったのでFlask-Admin使ったけど,何もしなくても管理ページできてすごい.

こんな感じになって,通知されたくない人はここに登録しなければ良いし,通知されてもいい人は自分のMACアドレスをここに登録すればよい.

Raspberry Pi上で動いていて, nginx -> gunicorn -> flask のおそらく定番の構成で動作している.

一定間隔で,arpしてSlackに通知する君だけどいる人間が前回と同じだと通知しなかったり,出ていった人間,新しく来た人間を区別するようにしたかった.前は,arpしてSlackに通知する君はsystemdのtimerで一定間隔で動いてて,Redisに前回の結果を格納していたけど,これだけのためにRedis使うのはなーと思って,デーモン化してグローバル変数に前回の結果を保存するようにした.一定間隔で繰り返すやつは,scheduleってやつを使った.うーん,ファイルとかに吐き出すようにすれば良いのかな,分からん.

かんそう

オフィスにカードキー忘れて入れないときとか,これを見て中に誰がいるのか分かるのでべんり.

Flask-Adminすごかった.Python普段書かないので,どうすれば良いのかまったく分からんかった.設定ファイルってどうするのが普通なんだろう.今回は他に利用する人おらんだろって感じで設定ファイルを利用していないが.

名前がtippyなのは,リポジトリを作るときに名前何にしようかなーと思って横見たら,ティッピーのぬいぐるみがあったからというだけ.

かわいい.