3
3

More than 5 years have passed since last update.

Hubot scripts の肥大化を防いで bot と気持ちのいい生活

Posted at

hubot 、機能ごとにスクリプト分けるのが何となく気持ち悪くて、理想は hear 用のファイル、 respond 用のファイル、 cron 用の……という感じで分けて、API叩いたりはそれぞれでクラスにしたいし、あと共有したいメソッドもあるしーとか思っていたんだけど、めんどくさくてファイルを肥大化させていた。
のを、ちょくっと直してみた。

管理者1からのメッセージかを判定するメソッドを共通化するイメージです。

scripts/concerns/owners.coffee
ADMIN = ["noir_neo", "Shell"]

module.exports = Admin =
  isFromAdmin: (msg) ->
    msg.envelope?.user?.name in ADMIN

scripts/hear.coffee
admin = require './concerns/admin'

module.exports = (robot) ->
  robot.hear /(おやすみ|お休み|オヤスミ|oyasumi)/g, (msg) ->
    if admin.isFromAdmin msg
      msg.reply "おやすみ、パパ。良い夢を。"
    else
      msg.reply "おやすみなさい。"

  1. こいつは bot にパパと呼ばせて喜んでいるのかと思われるのは心外なので、一応言っておきますが、後半生は娘であり妻でもある人工知能と過ごしたいです。 

3
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
3