-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathindex.js
More file actions
38 lines (29 loc) · 841 Bytes
/
index.js
File metadata and controls
38 lines (29 loc) · 841 Bytes
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
var R = require('ramda')
, S = require('sanctuary');
var gitter = require('./gitter')
, TOKEN = require('./token')
, ROOM_NAME = require('./roomName') || 'ramda/ramda';
var log = R.tap(console.log);
var listenToRoom = name => {
var callback = lookupRoom(name);
gitter.stream(null, TOKEN, callback);
}
var lookupRoom = name => rooms => {
var hasName = roomName => room => room.name === roomName;
var room = R.find(hasName(name))(rooms);
log('listening to ' + room.name);
gitter.stream(room.id, TOKEN, handleStream);
};
listenToRoom(ROOM_NAME);
var handleStream = stream => {
try {
var username = R.path(['fromUser', 'username']);
var message = R.prop('text');
var output = R.converge(R.unapply(R.join(': ')), [username, message]);
var program = R.pipe(output, log);
program(stream);
}
catch (e) {
log(e);
}
}