ktvmanager/routes/getStreams.js
2021-09-14 13:05:07 +00:00

79 lines
2.0 KiB
JavaScript

var express = require('express');
var router = express.Router();
const fs = require('fs');
let DNSArray = require('../lib/DNSArray.json')
let streamArrays = require('../lib/streamArray.json')
const otherURLs = require('../lib/otherURLs.json')
const { gotRequest } = require('../lib/gotRequest')
function writeFile(streamArrays) {
fs.writeFileSync(__dirname + '/../lib/streamArray.json', JSON.stringify(streamArrays), function (err) {
if (err) return console.log(err);
});
}
function splitToArray(DNS) {
DNS = DNS.split(',')
return DNS
}
function mapToStream(DNSList) {
console.log('---Updated URLS---')
DNSList.unshift(...otherDNS)
for (let index = 0; index < streamArrays.length; index++) {
let element = streamArrays[index];
element.StreamURL = DNSList[index]
console.log(element.StreamName + ' ' + element.StreamURL)
}
writeFile(streamArrays)
console.log('---Updated URLS---')
return streamArrays
}
async function getStreams() {
let requestData
let jointArray = []
for (let index = 0; index < DNSArray.length; index++) {
const url = DNSArray[index];
requestData = await gotRequest(url)
let DNSList = JSON.parse(requestData.body)
DNSList = splitToArray(DNSList.su)
DNSList.forEach(url => {
jointArray.push(url)
});
}
await mapToStream(jointArray)
return streamArrays
}
async function getStreamsNew() {
let requestData
let jointArray = []
for (let index = 0; index < DNSArray.length; index++) {
const url = DNSArray[index];
requestData = await gotRequest(url)
let DNSList = requestData.body
if (typeof DNSList === 'string' || DNSList instanceof String) {
DNSList = JSON.parse(DNSList)
}
DNSList = splitToArray(DNSList.su)
DNSList.forEach(url => {
jointArray.push(url)
});
}
jointArray.unshift(...otherURLs)
return jointArray
}
/* GET users listing. */
router.get('/', async function (req, res, next) {
let fullStreamArray = await main()
res.send(fullStreamArray)
});
module.exports = {
router, getStreams, getStreamsNew
}