Hubot の Ruby 版 Rubo 作った
Github 社製の Bot フレームワーク Hubot の Ruby 版 Rubo 作った
どうでも良い話
Hubot のメッセージを受け取って正規表現でマッチングしてメッセージを返したり返信したり音楽を再生したりという構造が自作ツイッターのツイートとかイベントとか保存したり通知したりする便利ライブラリと似ている箇所があり自作ツイッター(中略)ライブラリをさらなる高みを目指して開発するための参考になるからだとかブラウザ以外のプラットフォームで極力 JavaScript 書きたくないからだとかどうせ外に出てもチョコレート貰えないしだとか雪降って外に出られなくて暇だしとかそんな理由で書いた
インストール
下記コマンドでインストール出来る
$ gem install rubo
使い方
こんな感じで使える
$ rubo --adapter=shell Rubo> rubo help Rubo die - End rubo process Rubo echo <text> - Reply back with <text> Rubo fake event <event> - Triggers the <event> event for debugging reasons Rubo help - Displays all of the help commands that Rubo knows about. Rubo help <query> - Displays all help commands that match <query>. Rubo ping - Reply with pong Rubo show storage - Display the contents that are persisted in the brain Rubo show users - Display all users that rubo knows about Rubo the rules - Make sure rubo still knows the rules. Rubo time - Reply with current time Rubo> rubo ping PONG Rubo> rubo echo にゃーん にゃーん Rubo> rubo show users 1 Shell Rubo> rubo the rules 第一条 ロボットは人間に危害を加えてはならない。また、その危険を看過することによって、人間に危害を及ぼしてはならない。 第二条 ロボットは人間にあたえられた命令に服従しなければならない。ただし、あたえられた命令が、第一条に反する場合は、この限りでない。 第三条 ロボットは、前掲第一条および第二条に反するおそれのないかぎり、自己をまもらなければならない
よく分かんないんだけど具体的に何が出来るの
Rubo Adapter(Rubo が動ける場所)
- シェル
Rubo Plugin(Rubo が出来ること)
- ヘルプの表示
- ロボット三原則
- ピング
- 偽装イベントの発火
まだ最低限の部分しか書いてないのでシェルでしか動かない
クエリを投げたらラーメン画像検索してきてくれたりもしない
もっと色々させたいんだけど
rubo-
から始まる名前の Gem がインストールされてる場合は全て自動的に読み込まれる下記コマンドオプションで指定ディレクトリ内の .rb ファイルを全て読み込んで起動することが出来る
$ rubo --require "/path/to/my_beautiful_plugins"
Plugin の書き方はピングのソースを読めばなんとなく雰囲気を掴めると思う
これからやりたいこと
Rubo Adapter
- Idobata
- ChatWork
Rubo Plugin
- 便利そうなやつを片っ端から
を書いていきたい