AdventCalendarにエントリーするつもりはなかったのですが、空きがあったのでエントリーしてみました。ちょうどRubyの勉強がてらに2つgem(プラグイン)をリリースしたので、リリースしたgemについて紹介させて頂きます。
ホッテントリを表示するプラグインについて(ruboty-hatena_hotentry)
概要
- みんなが大好きなはてブのホッテントリを表示するプラグイン
- 内部的には、はてなから提供されているRSSフィードを取得し、Nokogiriを使用してパースしています
公開情報
インストール手順はGitHubのREADMEをご参照ください
使用方法
※ rubotyの部分は自分でつけたBOTの名前に適宜置き換えてください
全体
ruboty hotentry all
世の中
ruboty hotentry social
政治と経済
ruboty hotentry economics
暮らし
ruboty hotentry life
学び
ruboty hotentry knowledge
テクノロジー
ruboty hotentry it
おもしろ
ruboty hotentry fun
エンタメ
ruboty hotentry entertainment
アニメとゲーム
ruboty hotentry game
使用例
ruboty-slackと組み合わせてitカテゴリのホッテントリを表示した例が以下となります。
RubotyとSlackを連携させる方法に関しては、Rubotyの作者である@r7kamuraさんの記事、Ruby製HubotクローンのRubotyをSlackで動かすを読めば容易に導入できるかと思います。
ruboty-cronと組み合わせて、よく見るカテゴリを定期的に表示させるようにしてもいいかもしれません。
ちなみにBOTのアイコンは小さくてわかりずらいですが、パズドラのハクというキャラです。
BOTの応答メッセージの語尾に任意の文字を付与するプラグインについて(ruboty-message_suffix)
概要
- 機能的には名前の通りですが、プラグインと呼ぶのはちょっと違うかもしれません
- BOTに対し、より愛着が湧くかもしれません
- 内部的にはオープンクラスを使用し、Ruboty::Message#replyを書き換えている
公開情報
インストール手順はGitHubのREADMEをご参照ください
使用方法
環境変数RUBOT_MESSAGE_SUFFIXに語尾に付与したい文字を設定するだけです。
例えば、京都弁チックなBOTにするために「どすぅ」を語尾に付与したい場合、
export RUBOT_MESSAGE_SUFFIX=どすぅ
を設定します。
また、Rubotyにはdotenvを利用するための口が用意してあるので、カレントディレクトリに.envファイルを置いて、.envファイルにRUBOT_MESSAGE_SUFFIX=どすぅ
を定義し、ruboty --dotenv
で起動する手もあります。
使用例
ruboty-slackとruboty-talkと組み合わせてみます。語尾(RUBOT_MESSAGE_SUFFIX)には、少し前に流行った侵略!イカ娘の主人公イカ娘(古い?)の口癖である「でゲソ」と「イカ?」を設定してみます。候補を複数設定する場合は、カンマ区切りでexport RUBOT_MESSAGE_SUFFIX=でゲソ,イカ?
と設定します。これで「でゲソ」か「イカ?」がランダムで抽出されます。
ruboty-talkの詳細については、DocomoruでBOTと雑に会話するを読むと良いと思います。
と、ちょっとよくわからない会話になってしまいましたが、どこかで誰かが言ってた言葉を借りると、BOTはちょっと頭が悪いくらいがかわいいと思います。
所感
- Rubyの会社でChatOpsの導入を検討しているのであれば、HubotよりもRubotyの方が個人的には推し。CoffeeScriptが苦でなければHubotでもいいかもしれない。(弊社もHubotだけど、いつかしれっと乗り換えたい)
- 何か要望等あればPRお待ちしております
謝辞
参考サイト
- r7kamura/ruboty
- LT駆動開発で Ruboty の使い方っぽいことを適当に紹介した
- Ruboty のコードリーディングで Ruboty の仕組みを理解すると共に Ruby の設計・実装の定石を学ぶ
- はてブAPIでwebサービスを作りたい全ての人に向けて書きました
参考書籍
明日の記事は...
@tbpgrさんとなります