Ejemplo n.º 1
0
var filternet = require('filternet');

var myProxy = filternet.createProxyServer();

// You can rewrite the request as it's being sent to the remote server.
// (just headers)
myProxy.on('interceptRequest', function (requestInfo, callback) {
	console.log(requestInfo);
 if(requestInfo.host.indexOf("boxee.tv")>-1 && requestInfo.path.indexOf("/api/get_recommendations")>-1){
   requestInfo.host = 'localhost';
   requestInfo.port = '9001';
 }
 callback(requestInfo);
});

myProxy.on('error', function (error, locationInfo) {
 console.log(locationInfo);
 console.log(error.stack);
});

require('boxee-server');
Ejemplo n.º 2
0
function serve(data, options) {

    var file = options.file;
    var basePath = path.resolve(options.explode_path);

    console.log("Serving " + _.size(data) + " http transaction in '" + file + "' on port " + options.port);

    if (options.explode) {
        console.log("Content in '" + basePath + "' will take precedence.");
    }
    

    var interceptingProxy = filternet.createProxyServer(options);

    interceptingProxy.on("interceptRequest", function (request, response, callback) {


//        if(responseData) {
//            if (options.debug) {
//                console.log(path + " => HTTP " +  responseData.statusCode + " " + responseData.size  + "b");
//            }
//
//            response.writeHead(responseData.statusCode, responseData.headers);
//            if (responseData.size > 0) {
//                var buf;
//                if (options.explode && (buf = getFile(path))) {
//                    var buf = getFile(path, options.debug);
//                    response.write(new Buffer(buf, 'utf-8')); 
//                } else {
//                    response.write(new Buffer(responseData.data, 'base64'));
//                }
//            }
//        } else {
//            console.log(path + " => NOT FOUND");  
//            response.writeHead(404, "Not found by offly");
//        }

        var transforms = getTransforms(options, data);
        if (options.debug) {
            console.log(_.reduce(transforms, function(memo, transform) { return memo + "['" + transform.name + "' (" + transform.priority + ")]-> \n"; }, "Online pipeline: \n"));
        }


        var noOpStream = es.mapSync(function(transaction) {
            return transaction;
        });
    
        _.reduce(transforms, function(memo, transform) {
            return memo.pipe(transform.stream);
        }, noOpStream)
        .pipe(concat(function (data) {
            var d = data[0].response;
            
            response.writeHead(d.statusCode, d.headers);
            if (d.data) {
                response.write(d.data);
            }
            response.end();
        }));

        noOpStream.end({
            "request" : request,
            "response" : {}
        });
    });
    
    interceptingProxy.on('error', function (error) {
        console.log(error.stack);
    });
}