有沒有辦法找到用戶名(數字xxxx_xxxxxx或全名)的@mention名稱,反之亦然?在HipChat上的Hubot中匹配用戶名和@mention名稱
查看msg.message對象時,有一個用戶對象,其中包含id,jid和消息來源的名稱。我希望找到他的@ @ @ @名稱,並且可能會在他們的信息中找到他們@提到的任何人的用戶名。
有沒有辦法找到用戶名(數字xxxx_xxxxxx或全名)的@mention名稱,反之亦然?在HipChat上的Hubot中匹配用戶名和@mention名稱
查看msg.message對象時,有一個用戶對象,其中包含id,jid和消息來源的名稱。我希望找到他的@ @ @ @名稱,並且可能會在他們的信息中找到他們@提到的任何人的用戶名。
我也想要這個。但由於它不在xmpp消息上,hubot不會知道它。我認爲你需要添加一個命令,將提到的名稱設置爲用戶的屬性。例如:
robot.respond /mentionname is @?(.+)$/i, (msg) ->
mentionname = msg.match[2]
user = robot.brain.userForId(msg.envelope.user.id)
user.mentionname = mentionname
然後,您可以在其他自定義命令中查找它。你添加另一個方法到大腦userForMentionName,它和userForName有很多相同的地方。把它添加到你的腳本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
或者,您可以修改userForName來檢查userName或提到名稱字段,但這可能會打破其他的東西。無論哪種方式,你都需要你的用戶告訴hubot他們提到的名字是什麼......也許hubot-hipchat適配器可以查看它,如果它有這些信息......我會看看。
- 編輯 -
忽略一切:D的hipchat適配器增加了一個「mention_name」字段存儲在大腦中的用戶對象。所以你所要做的就是循環遍歷用戶並找到一個與之匹配的名稱