const axios = require('axios'); const fs = require('fs'); const baseURL = 'https://vcb-s.nmm-hd.org'; axios.defaults.baseURL = baseURL; const visitedLinks = []; const files = []; async function getURL(url, first = false) { if (visitedLinks.includes(url)) return; else visitedLinks.push(url); console.log('>>>', decodeURI(url)); const body = { action: 'get', items: { href: url, what: 1 } }; const { data: { items } } = await axios.post(url + '?', body); let file = items.filter(i => i.fetched === undefined); if (!first) file = file.filter(i => !['/Menu.xlsx', '/readme.txt'].includes(i.href)); file.map(i => { files.push(i.href); }); return Promise.all( items.filter(i => i.fetched === false).map(i => getURL(i.href)) ); } getURL('/', true).then(() => { fs.writeFileSync('url.txt', files.map(i => baseURL + i).join('\n')); });