Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- var events = require('events');
- var sys = require("sys");
- var fs = require("fs");
- var compress = require(".././compress");
- function doDecompress(decompressor, input, proxysponse) {
- var d1 = input.substr(0, 25);
- var d2 = input.substr(25);
- sys.puts('Making decompression requests...');
- var output = '';
- decompressor.setInputEncoding('binary');
- decompressor.setEncoding('utf8');
- decompressor.addListener('data', function(data) {
- output += data;
- }).addListener('error', function(err) {
- throw err;
- }).addListener('end', function() {
- sys.puts('Decompressed length: ' + output.length);
- sys.puts('output: ' +output);
- var body_regexp = new RegExp("<head>");
- output = output.replace(body_regexp, "<head><base href=\"http://www.mashedpotatoes.nl/\">");
- proxysponse.end(output);
- //proxysponse.end();
- });
- decompressor.write(d1);
- decompressor.write(d2);
- decompressor.close();
- sys.puts('Requests done.');
- }
- module.exports = {
- index: function(request, response){
- var iframe_url = "www.mashedpotatoes.nl";
- var http = require('http');
- var httpClient = http.createClient(80, iframe_url);
- var headers = request.headers;
- headers.host = iframe_url;
- console.log('request url: ' + request.url);
- var rurl_regexp = new RegExp("draft");
- var rurl = request.url.replace(rurl_regexp, "");
- console.log('request url after: ' + rurl);
- var remoteRequest = httpClient.request(request.method, rurl, headers);
- request.on('data', function(chunk) {
- remoteRequest.write(chunk);
- });
- request.on('end', function() {
- remoteRequest.end();
- });
- var remoteBody = '';
- remoteRequest.on('response', function (remoteResponse){
- var href_regexp = new RegExp('\<a href="(.*)"', 'g');
- var script_regexp = new RegExp('<script(.|[\n\r])*</script>', 'g');
- var object_regexp = new RegExp('<object(.|[\n\r])*</object>', 'g');
- remoteResponse.headers['content-encoding'] = "text/html";
- response.writeHead(remoteResponse.statusCode, remoteResponse.headers);
- remoteResponse.on('data', function (chunk) {
- remoteBody = remoteBody + chunk.toString('binary');
- console.log('Receiving chunk...');
- });
- remoteResponse.on('end', function() {
- console.log('Started decompression after receiving everything..');
- doDecompress(new compress.GunzipStream(), remoteBody, response);
- response.end();
- });
- });
- }
- };
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement