Qiita Teams that are logged in
You are not logged in to any team

Log in to Qiita Team
Community
OrganizationAdvent CalendarQiitadon (β)
Service
Qiita JobsQiita ZineQiita Blog
10
Help us understand the problem. What is going on with this article?
@esehara@github

HubotのScriptを翻訳するとかわいい

More than 5 years have passed since last update.

Hubotを、HipChatやIRCにいさせて、いろいろな告知をさせているところは多いかと思われます。自分のところもそうなのですが、しかし生のママの状態でHubotを使うと

@hubot task add hogehoge

みたいになってしまう!Hubotかわいくない!俺は下みたいにしたいんだ!

@hubot やる あれとかこれとか

つーわけで、この記事はHubotを日本語にするためのコツみたいなのを書いておきます。

コツ: msg.send あたりを見る

例えば、ここでHubot Scriptの一つである tasks.coffeeを見てみましょう。下のようなラインがありますね。ふむふむ

  robot.respond /(task add|add task) (.+?)$/i, (msg) ->
    task = tasks.add msg.match[2]
    msg.send "Task added: ##{task.num} - #{task.task}"

msg.sendはご存じの通り、各位にメッセージを送るやつです。まずこのあたりを書き換えてしましましょう。

  robot.respond /(task add|add task) (.+?)$/i, (msg) ->
    task = tasks.add msg.match[2]
    msg.send "おしごと追加しましたー: ##{task.num} - #{task.task}"

ぐっと身近になりましたね。

正規表現の部分を書き換える

例えば、robot.respondであったり、robot.hearといった部分の正規表現は、そういう発言があるか、あるいはそういうリプライが内容にあったかで、タスクを実行します。とはいえ、いちいち task addみたいに書くのもかわいくない!だから下のように書き換える!

  robot.respond /(やる)( | )(.+?)$/i, (msg) ->
    task = tasks.add msg.match[3]
    msg.send "おしごと追加しましたー: ##{task.num} - #{task.task}"

まとめ: メッセージが日本語で書けると親しみやすい

hubotについて、なんか弄ってみたいけど難しそうだなー、とおもう人は多いと思いますが、まず最初にこういったメッセージ部分の翻訳から始めてみると、わりと自分だけのHubot感が出てきてお薦めです。

10
Help us understand the problem. What is going on with this article?
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
esehara@github
本物のプログラマーではないほうを担当しています

Comments

No comments
Sign up for free and join this conversation.
Sign Up
If you already have a Qiita account Login
10
Help us understand the problem. What is going on with this article?