UNPKG

900 Btext/coffeescriptView Raw
1_ = require "underscore"
2Fuse = require "fuse.js"
3
4class Utils
5 @robot: null
6
7 @findRoom: (msg) ->
8 room = msg.envelope.room
9 if _.isUndefined(room)
10 room = msg.envelope.user.reply_to
11 room
12
13 @lookupUserWithGithub: (github) ->
14 return if not github
15
16 findMatch = (user) ->
17 name = user.name or user.login
18 return unless name
19 users = Utils.robot.brain.users()
20 users = _(users).keys().map (id) ->
21 u = users[id]
22 id: u.id
23 name: u.name
24 real_name: u.real_name
25
26 f = new Fuse users,
27 keys: ['real_name']
28 shouldSort: yes
29 verbose: no
30 threshold: 0.55
31
32 results = f.search name
33 result = if results? and results.length >=1 then results[0] else undefined
34 return result
35
36 if github.fetch?
37 github.fetch().then findMatch
38 else
39 findMatch github
40
41module.exports = Utils