Программа для скачивания
Долго мучился, пока не понял, что прописывать асинхронную функцию (которая потому и асинхронна, что результат надо подождать) и тут же ссылаться на генерируемую ею переменную - не самая лучшая идея. Код:
const https = require('https');
const fs = require('fs');
function readURL(url) {
return new Promise((resolve, reject) => {
https.get(url, (res) => {
const { statusCode } = res;
res.setEncoding('utf8');
let rawData = '';
res.on('data', chunk => rawData += chunk);
res.on('end', () => resolve(rawData));
}).on('error', (e) => reject(e));
})
};
let fileContent = fs.readFileSync('linksHere.txt', 'utf8');
ListOfLinks = fileContent.split('\n');
let html = 'kkfgk';
for (let strokes=0; strokes < ListOfLinks.length; strokes++) {
if ((ListOfLinks[strokes].includes('xvideos')) && (ListOfLinks[strokes].includes('/video'))) {
console.log('Link, {' + ListOfLinks[strokes] + "} is founded in " +strokes +" stroke!");
readURL(ListOfLinks[strokes]).then(data => {
html = data;
let findTitle = ((html.split('title>'))[1]);
let cutTitle = ((findTitle.split('<'))[0]);
let file = fs.createWriteStream(cutTitle + ".mp4");
console.log('Creating '+cutTitle+' file');
let videoFile = (html.split("UrlHigh('"))[1]
videoFile = (videoFile.split("');"))[0]
console.log('Trying to download '+cutTitle+' file');
let request = https.get(videoFile, function(response) {
response.pipe(file);
});
});
} else {
console.log('Huston, {' + ListOfLinks[strokes] + "} is not a link we are looking for!");
};
};
Запрашивает список ссылок из файла linksHere.txt, файлы скачивает ВСЕ параллельно. Запускается через NODE.js.