« index
Coverage for /home/spion/Documents/ircee/lib/protocol.js : 100%
36 lines |
36 run |
0 missing |
0 partial |
5 blocks |
5 blocks run |
0 blocks missing
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 | var split = require('split'), Stream = require('stream'), duplex = require('duplexer'); exports.parse = function protocol_parse(line) { var m = line.match(/^(:(\S+))?\s*([^:]\S+)\s+([^:]+)?(\s*:(.+))?/); var raw = m[0], source = m[2], cmd = m[3], params = m[4], text = m[6]; if (params) params = params.trim().split(' '); var target = params ? params[0] : null; var user = source ? source.match('(.+)!(.+)@(.+)') : null; return { raw: raw, source: source, cmd: cmd, user: user ? { address: user[0], nick: user[1], user: user[2], host: user[3] } : null, params: params, target: target, text: text } } exports.construct = function protocol_construct(args) { args = [].slice.call(args); var last = args.length - 1; if (args[last] !== null) args[last] = ':' + args[last]; else delete args[last]; return args.join(' ') + '\n'; } |