ユーザー名(数値xxxx_xxxxxxまたはフルネーム)の@mention名を見つける方法はありますか?HipChatでHubotのユーザー名と@mention名を一致させよ
msg.messageオブジェクトには、メッセージの元の人物のid、jid、および名前を持つユーザーオブジェクトがあります。私は、その人の@mention名と、潜在的に彼らのメッセージに記されている人のユーザ名を見つけたいと思います。
ユーザー名(数値xxxx_xxxxxxまたはフルネーム)の@mention名を見つける方法はありますか?HipChatでHubotのユーザー名と@mention名を一致させよ
msg.messageオブジェクトには、メッセージの元の人物のid、jid、および名前を持つユーザーオブジェクトがあります。私は、その人の@mention名と、潜在的に彼らのメッセージに記されている人のユーザ名を見つけたいと思います。
私もこれも必要です。しかし、それはxmppメッセージではないので、ハブットはそれについて知りません。私は、あなたの名前をユーザのプロパティとして設定するコマンドを追加する必要があると思います。次のようなものがあります。
robot.respond /mentionname is @?(.+)$/i, (msg) ->
mentionname = msg.match[2]
user = robot.brain.userForId(msg.envelope.user.id)
user.mentionname = mentionname
他のカスタムコマンドで調べることができます。 userForNameと同じように脳のuserForMentionNameに別のメソッドを追加します。これをur script initで脳に追加します。
userForMentionName = (name) ->
result = null
lowerName = name.toLowerCase()
for k of (robot.brain.data.users or { })
mentionName = robot.brain.data.users[k]['mention_name']
if mentionName? and mentionName.toLowerCase() is lowerName
result = robot.brain.data.users[k]
result
別の方法としては、ユーザ名またはmentionnameフィールドをチェックするためにuserForNameを変更することができ、それは他のものを壊すかもしれません。いずれにしても、あなたのurlのユーザ名が何であるかをhubotに伝える必要があります。または、hubot-hipchatアダプタがその情報を持っているかどうかを調べることができます。
- 編集 -
はすべてのことを無視:D hipchatアダプタは、脳に保存されているユーザーオブジェクトに「mention_name」フィールドを追加します。だからあなたがしなければならないことは、ユーザをループして、一致する言及名を持つものを見つけることです。