UNPKG

1.14 kBtext/coffeescriptView Raw
1{EventEmitter} = require 'events'
2S = require 'string'
3Log = require 'log'
4RemoteSlack = require './remote-slack'
5
6class Relay extends EventEmitter
7
8 constructor: (@localRoom, @remote, @remoteRoom) ->
9 @logger = new Log process.env.SLACK_LOG_LEVEL or 'info'
10 if @remote then @remote.on 'remote.error', @RemoteError
11 'constructor'
12
13 RemoteError: (error) =>
14 if error.msg is 'invalid channel id'
15 @emit 'invalidChannel', @
16
17 toString: () ->
18 t = S(@remote.token).padLeft(5)
19 token = S(S('*').repeat(5) + S(t.substr(t.length - 5)))
20 local = S(@localRoom + ',').padRight(20)
21 remote = S(@remoteRoom + ',').padRight(20)
22 'local-channel: ' + local + ' remote-channel: ' + remote + ' remote-token: ' + token
23
24 toJSON: () ->
25 {'local-channel': @localRoom.toString(), 'remote-channel': @remoteRoom.toString(), 'remote-token': @remote.token.toString()}
26
27 @fromJSON: (o) ->
28# obj = JSON.parse json
29 remote = new RemoteSlack(o['remote-token'])
30 remote.login()
31 new Relay o['local-channel'], remote, o['remote-channel']
32
33
34module.exports = Relay
\No newline at end of file