Created
November 19, 2013 13:53
-
-
Save mwmaleks/7545684 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
/** | |
* 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