Karl 07340e9341
All checks were successful
Build and Publish Docker Image / build-and-push (push) Successful in 22s
allow the urls to stull build if a source dies
2025-07-13 16:51:40 +01:00

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
}