-
Notifications
You must be signed in to change notification settings - Fork 2
/
Copy pathindex.js
42 lines (36 loc) · 1.05 KB
/
index.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
// adapted from https://github.com/grawity/code/blob/master/lib/python/nullroute/irc.py#L24-L53
module.exports = function parsePrefix(prefix) {
if (!prefix || prefix.length === 0) {
return null
}
var dpos = prefix.indexOf('.') + 1
var upos = prefix.indexOf('!') + 1
var hpos = prefix.indexOf('@', upos) + 1
if (upos === 1 || hpos === 1) {
return null
}
var result = {}
result.raw = prefix
result.isServer = false
result.nick = null
result.user = null
result.host = null
if (upos > 0) {
result.nick = prefix.slice(0, upos - 1)
if (hpos > 0) {
result.user = prefix.slice(upos, hpos - 1)
result.host = prefix.slice(hpos)
} else {
result.user = prefix.slice(upos)
}
} else if (hpos > 0) {
result.nick = prefix.slice(0, hpos - 1)
result.host = prefix.slice(hpos)
} else if (dpos > 0) {
result.host = prefix
result.isServer = true
} else {
result.nick = prefix
}
return result
}