Skip to content

Instantly share code, notes, and snippets.

@mwmaleks
Created November 19, 2013 13:53
Show Gist options
  • Save mwmaleks/7545684 to your computer and use it in GitHub Desktop.
Save mwmaleks/7545684 to your computer and use it in GitHub Desktop.
/**
* Created by mwmaleks on 19.11.13.
*/
/**
* И так, смотри у тебя есть механизм получаени ястраниц с форума кубань ру
* Твоя задача сводится к тому, чтобы сначала получить данные, а уже потом все данные
* найти разницу между всеми данными и записать эту разницу в файл.
* Далее смотри по тексту
*/
var http = require('http');
var path = require('path');
var fs = require('fs');
var fileName = path.resolve(process.env.PWD, 'data.txt');
var Promise = require('promise')
var getPage = function(URL) {
var promise = new Promise();
var site = http.createClient(80, 'forums.kuban.ru');
var request = site.request('GET', URL, {
'host': 'forums.kuban.ru',
'user-agent': 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/31.0.1650.48 Safari/537.36',
});
request.end();
request.on('response', function (response) {
console.log('STATUS: ' + response.statusCode);
console.log('HEADERS: ' + JSON.stringify(response.headers));
response.setEncoding('utf8');
var text = '';
response.on('data', function (chunk) {
text += chunk;
});
response.on('end', function() {
if (response.statusCode === 200) {
promise.resolve(text);
}
else {
promise.reject('Error :' + response.statusCode);
}
});
});
return promise;
};
var getWithId = function(id) {
return '/users/' + id.toString() + '/';
};
var processData = function (data) {
// Предпологается, что именно в этой функции ты получишь разницу
// между текстом от всех запросов.
// и после исполнения всех запишешь в файл их разницу
// функцяи сохранения в файл
//saveData(data);
};
function saveData(text) {
// эта функция выполняет синхронное сохранение текста в конец файла
return fs.appendFileSync(fileName, text);
}
// Дальше пойдут три запроса
// И самое интересное, то что не известно на какой запрос придет ответ первым
var a = [];
var promises = [
getPage(getWithId(2198335)).then(
function (data) {
console.log(data);
a.push(data);
}),
getPage(getWithId(2198336)).then(
function (data) {
console.log(data);
a.push(data);
}),
getPage(getWithId(2198337)).then(
function (data) {
console.log(data);
a.push(data);
})
];
when(promises, processData(a) );
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment