経緯
daemonにぶちこんだはずのhubotが気付いたら息をしなくなる
ログを見ている限り「一定数以上msg.send走った瞬間に即死している」ようにしか見えず、原因が不明
https://kakakakakku.hatenablog.com/entry/2016/11/05/133008
この辺みたらアプデすりゃええよって書いてあったのでとりあえずあげてみようと思った
環境
$ cat /etc/redhat-release
CentOS release 6.2 (Final)
$ npm list --depth=0 | grep hubot-slack
├── hubot-slack@3.4.2
v4導入手順
$ npm info hubot-slack versions
4.5.5が最新なのでそれ使う
- "hubot-slack": "^3.3.0",
+ "hubot-slack": "^4.5.5",
$ npm install
npm WARN engine https-proxy-agent@2.2.1: wanted: {"node":">= 4.5.0"} (current: {"node":"0.12.18","npm":"2.15.11"})
npm WARN engine request@2.88.0: wanted: {"node":">= 4"} (current: {"node":"0.12.18","npm":"2.15.11"})
npm WARN engine agent-base@4.2.1: wanted: {"node":">= 4.0.0"} (current: {"node":"0.12.18","npm":"2.15.11"})
npm WARN engine har-validator@5.1.0: wanted: {"node":">=4"} (current: {"node":"0.12.18","npm":"2.15.11"})
npm WARN engine har-schema@2.0.0: wanted: {"node":">=4"} (current: {"node":"0.12.18","npm":"2.15.11"})
nodeがクソ古い
SyntaxError: Use of const in strict mode.
というエラーが発生するようになるので、いつものコマンドでnodeも更新しておく(0.12.18て・・・)
$ nvm ls-remote
$ nvm install v4.9.1 # 4以上を要求されてたのでひとまず4系最新
$ nvm use v4.9.1
$ nvm alias default 4.9.1
$ node -v
v4.9.1
$ npm -v
2.15.11
npm install が通ることを確認しておわり
coffee-script側対応
ほとんど触ってない
よくある「特定roomでのみ喋らせる」やつでの部屋名取得方法が変わってたのでその対応
https://qiita.com/Mahito/items/31e02160ecbdff810a52
_ = require 'lodash'
module.exports = (robot) ->
robot.hear /.*/, (msg) ->
join_channels = [
'general',
'hubot',
...
]
channel = msg.envelope.room
robot.adapter.client.web.conversations.info(channel)
.then((response) ->
room_name = response.channel.name
unless _.contains join_channels, room_name
msg.finish()
)
上記qiitaでは robot.adapter.client.web.channels.info
ですが、
channels.info だと共有chとかプライベートchで動かない、
groups.info は非推奨なので
conversations.info にしてます。
その後
hubotちゃんは生まれつきメモリパワーが弱く1ヶ月以内に増設が必要です
しかしメモリ増設には10,798円という莫大な費用がかかります。
hubotちゃんを救うためにどうか協力をよろしくお願いします。
hubotちゃん 生存時間 今の所は48時間ほど
参考
hubot-slack v4移行時のハマりどころ
https://www.slideshare.net/knjcode/hubotslack-v4-hubotchatops