hubot で、抽選して誰かにメンション飛ばしたくなることがあります。
自分で実装しようかなと思ったら、先人がすでに作成済みだったのでそれを紹介します。
厳正な抽選をhubotで行う話で紹介されていて、ソースはGithubで公開されています。
インストールと設定
インストール
% npm install hubot-reviewer-choice –save
設定
external-script.json ファイルに以下の項目を追加する。ファイルはJSONなので、複数ある場合は、カンマで区切って挿入。
[“hubot-reviewer-choice”]
私用例
引数に渡した一覧から1つを選んでメンションを飛ばす
hubot choice yamada sato suzuki
厳正な抽選の結果、「@yamada」に決まりました
あらかじめグループを登録しておいて、グループを呼び出して、グループから1つを選択してメンションを飛ばす
hubot choice set GroupName Yamada Sato Suzuki Taro
グループ:GroupNameを設定しました
hubot choice $GroupName
厳正な抽選の結果、「@Suzuki」に決まりました
グループを確認する
hubot choice list
GroupName :Yamada, Sato, Suzuki, Taro
確認事項
hubotをリスタートしたときにグループ情報が永続化されていないような気がする。
ただ、ソースを見ると、brain使ってるから永続化されてそうなんだけどなぁ。
違うか、setAutoSaveとかがないから、Redis永続化はしていないのか。