transit-im
Version:
express-like framework for AIM bots creation (ICQ as well)
105 lines (78 loc) • 2.36 kB
JavaScript
// Generated by CoffeeScript 1.6.3
(function() {
var app, niceFormat, transit;
transit = require('transit-im');
app = transit();
app.use({
install: function(transit) {
return transit.client(this);
},
receive: function(callback) {
this.callback = callback;
},
start: function() {},
sendBack: function(userId, data, cb) {}
});
app.use(function(req, res, next) {
console.log(req.user);
console.log(req.command);
console.log(req.data);
console.log(req.handlers);
console.log(req.handler);
console.log(req.session);
req.data = "[" + req.data + "]";
req.attr("data", "[" + req.data + "]");
res.sendBack("Data received, processing...");
return next();
});
app.use({
install: function(transit) {
transit.extendRequest("myRequestProperty");
return function(req, res, next) {
req.attr("myRequestProperty", "dummy");
return next();
};
}
});
app.receive(function(req, res) {
return res.sendBack("Echoed: " + req.data);
});
app.use(transit.commandParser);
app.receive('hello', function(req, res) {
return res.sendBack('hi');
});
app.receive('iam {name}', function(req, res) {
return res.sendBack("hi " + req.name);
});
app.receive('wishes {{list}}', function(req, res) {
return res.sendBack("your wish list has " + req.list.length + " items");
});
niceFormat = function(data, options, callback) {
var braces, formattedData, _ref;
braces = (_ref = options != null ? options.braces : void 0) != null ? _ref : "[]";
formattedData = braces[0] + data + braces[1];
return callback(null, formattedData);
};
app.formatOutput(niceFormat);
app.sendBack(11, "hi!", function() {});
app.receive(function(req, res) {
return res.sendBack(req.data, {
braces: "<>"
});
});
app.formatOutput("niceFormat", niceFormat);
app.sendBack.niceFormat(11, "hi!", function() {});
app.receive(function(req, res) {
return res.niceFormat(req.data, {
braces: "<>"
});
});
app.use(transit.commandParser());
app.use(transit.doNotWaitForResponse());
app.use(transit.echo());
app.use(transit.html2txt());
app.use(transit.sessions());
app.use(transit.autohelp());
app.use(transit.alias());
app.use(transit.chain());
}).call(this);