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
- 便利そうなやつを片っ端から
を書いていきたい
NHK 番組表 API を触る為の Ruby クライアント作った
NHK 番組表 API が公開されたので Ruby の API ライブラリを作った
インストール
下記コマンドでインストール出来る
gem install nhk_program
使い方
こんな感じで使える
client = NHKProgram.new(api_key: 'YOUR_API_KEY') # 明日のNHK総合1の番組表取得 data = client.list('130', 'g1', Date.today + 1) # 違う書き方 # data = client.list('東京', 'NHK総合1', :tomorrow) data.list.g1.each do |program| # 何かする end # 明日のNHK総合1のアニメの番組表取得 data = client.genre('130', 'g1', '0700', Date.today + 1) # 違う書き方 # data = client.genre('東京', 'NHK総合1', 'アニメ/特撮(国内アニメ)', :tomorrow) data.list.g1.each do |program| # 何かする end # みんなのうたの番組詳細取得 data = client.info('130', 'e1', '2014020700918') # 違う書き方 # data = client.info('東京', 'NHKEテレ1', '2014020700918') program = data.list.e1.first # 何かする # 今NHK総合1でやってる番組表取得 data = client.now('130', 'g1') # 違う書き方 # data = client.now('東京', 'NHK総合1') data.nowonair_list.g1.following.each do |program| # 何かする end
その他
深夜のテンションで一気にコード書いたけど今のところ自分で使う予定がない
是非皆さんご活用ください
関連リンク
人間をダメにするソファが僕をダメにした
所謂ビーズクッションってやつ。
- 出版社/メーカー: フレックス販売
- メディア: ホーム&キッチン
- 購入: 3人 クリック: 14回
- この商品を含むブログを見る
半年ほど前に買ってずっと愛用していたが使うのをしばらくやめてみることにした。どうもこれのせいで調子が悪くなっている気がする。
部屋とビーズクッションと僕
普段はビーズクッションにうずまって MacBook でインターネットや開発をしている。ビーズクッションにうずまると両脇のビーズが盛り上がり、膝に MacBook を置いているとキー打つためにはをそこに肘を置くことになる。更にリクライニングした状態だとディスプレイの文字がよく見えないので首を前に出す姿勢になる 。この不自然な姿勢が肩と首に大きな負荷をかけていることに気付いた。ここのところずっと肩こりと頭痛に悩まされてる。
これは MacBook を使っている時の問題なので、普通に本を読んだり TV を見る分には良いと思う。
それとは別に、ビーズクッションにうずまるとだらけた気持ちになってしまう。僕はだらけた人間なのでだらけるのは大好きだが、四六時中ずっとだらけてるわけにもいかない。漢はやるべきときはやらねばならぬ。
僕とビーズクッションのこれから
今は畳に正座し背筋を伸ばしながらこの文章を書いている。膝に負荷がかかっていることを感じるが肩や首には全く負荷を感じない。快適、だと思う、多分。心なしか意識が高まってるがする。
しばらくはビーズクッションなしの生活をしてみる。健康になりたい。