All checks were successful
Build and Publish Docker Image / build-and-push (push) Successful in 22s
62 lines
1.6 KiB
JavaScript
62 lines
1.6 KiB
JavaScript
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
|
|
} |