var express = require('express'); var router = express.Router(); const fs = require('fs'); let DNSArray = require('../DNSArray.json') const otherURLs = require('../otherURLs.json') const { makeRequest } = require('../lib/makeRequest') function splitToArray(DNS) { DNS = DNS.split(',') return DNS } async function getStreamsNew() { let requestData let jointArray = [] for (let index = 0; index < DNSArray.length; index++) { const url = DNSArray[index]; try { requestData = await makeRequest(url) let DNSList = requestData.body if (typeof DNSList === 'string' || DNSList instanceof String) { try { DNSList = JSON.parse(DNSList) } catch (error) { console.error(`Failed to parse JSON for url: ${url}`); continue; // skip to next url } } let extractedUrls; if (DNSList && DNSList.su) { extractedUrls = splitToArray(DNSList.su); } else if (DNSList && DNSList.fu) { extractedUrls = splitToArray(DNSList.fu); } else { console.error(`Could not find 'su' or 'fu' for url: ${url}`); continue; // skip to next url } extractedUrls.forEach(url => { jointArray.push(url) }); } catch (error) { console.error(`Failed to process url: ${url}`, error); } } jointArray.unshift(...otherURLs.using) jointArray = [...new Set(jointArray)] return jointArray } /* GET users listing. */ router.get('/', async function (req, res, next) { let fullStreamArray = await getStreamsNew() res.send(fullStreamArray) }); module.exports = { router, getStreamsNew }