Rubotyすしゆきプラグインruboty-yasyを公開した
すしゆきを表示してくれる。 naoyaさんのhubot-sushiyukiをRubotyに移植した。
TL; DR
Rubotyプラグインをつくるのを楽にして、みんなに面白いスクリプトいっぱい公開してほしい。
ハマったところ
gemの名前被り
ruboty-sushiyukiが存在するのに気づかずに作り始めてしまい、別の名前にリネームしたりで手間どった。
部屋全体に流れているメッセージの受け取り方がわからなかった
Rubotyのハンドラーでon
を使うと、デフォルトだと@ruboty
で自分宛にきたメッセージにしか反応しない。
全体の発言に反応するためにはall
オプションをtrue
に設定する。
module Ruboty module Handlers class Yasy < Base on /寿司|鮨|スシ|:sushi:|🍣/, name: 'gossip', description: ':sushi: | 壁 | :ear:', all: true end end end
元々がhubotのプロジェクトなのでgemを公開するのに必要なファイル群がない
bundle gem
などでgemのプロジェクトを作成するとrubygemsに公開するために必要なものが一通りそろっていて便利。
Rubotyで何かしらハンドラーとアクションを作る場合、lib/ruboty/handlers/your_handler.rb
やlib/ruboty/your_gem/actions/your_action.rb
が必要になる。
それらのファイルを作成するための補助的なコマンドが欲しい。 例えば、以下のようなイメージです。
ruboty gem your_gem
ruboty generate handler your_handler
ruboty generate action your_action
元々がhubotのプロジェクトなのでrubyじゃない
Hubotのスクリプトを移植するだけだがそれなりに手間がかかる。 HubotのスクリプトをRubotyのhandlerとして実行できるようなプラグインが求められている。 sstephenson/execjsなどを使って実現できないだろうか。
まとめ
Rubotyプラグインをつくるのを楽にして、みんなに面白いスクリプトいっぱい公開してほしい。
自分のプラグイン作成の体験から以下のようなことをやるともっと楽にプラグインつくれるんじゃないかなと考えます。
rubotyプラグインの作成の障壁を下げたい
毎日rubotyのプラグインを公開し続けて4日目になった。
私が一からrubotyのプラグインを作るお作法は以下の通りだった。
3の部分が以外と手間がかかる感触で、そこが無ければプラグイン作成の障壁が下がると思う。
上の方であげたruboty gem
コマンドがあれば1や3を自動で作れるのではないだろうか。
- 既存のプラグインがないかrubygems.orgで確認する
bundle gem ruboty-yo
でgemを作る- 会話に反応してリアクションをとるには
lib/ruboty/handlers/yo
とlib/ruboty/your_plugin/actions/yo.rb
のファイルが必要 rake release
で公開
HubotスクリプトをRubotyで動かす
今回はHubotスクリプトを人間が読んで解釈してRubotyにわかるように翻訳した。 Hubotのプラグインのインターフェイスはある程度決まっている。 RubotyとHubotスクリプトの間をつなぐようなハンドラーがあれば、HubotスクリプトをそのままRubotyのスクリプトとして動かすことも出来るのではないかと考えている。