ktvmanager/app.js

74 lines
1.9 KiB
JavaScript
Raw Normal View History

2021-02-04 16:57:45 +00:00
fs = require('fs');
2021-02-04 17:15:52 +00:00
var tableify = require('tableify');
const express = require('express')
2021-02-04 17:34:58 +00:00
const basicAuth = require('express-basic-auth')
2021-02-04 17:15:52 +00:00
const app = express()
2021-02-04 17:24:13 +00:00
const port = 6969
2021-02-04 16:57:45 +00:00
2021-02-05 10:27:17 +00:00
let DNSArray = require('./DNSArray.json')
let streamArrays = require('./streamArray.json')
2021-02-06 14:23:12 +00:00
const otherDNS = require('./otherDNS.json')
2021-02-04 16:57:45 +00:00
2021-02-06 11:19:15 +00:00
const { gotRequest } = require('./gotRequest')
2021-02-04 16:57:45 +00:00
function writeFile(streamArrays) {
fs.writeFileSync('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---')
2021-02-06 14:23:12 +00:00
DNSList.unshift(...otherDNS)
2021-02-04 16:57:45 +00:00
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
}
2021-02-05 10:27:17 +00:00
async function main() {
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)
2021-02-04 17:15:52 +00:00
return streamArrays
2021-02-04 16:57:45 +00:00
}
2021-02-04 17:15:52 +00:00
function arrayToTable(array) {
return tableify(array)
}
2021-02-06 11:19:15 +00:00
app.use(basicAuth({
users: { 'BBLBTV': 'BBLBTV' },
challenge: true,
realm: 'foo',
}))
app.get('/', async (req, res) => {
let fullStreamArray = await main()
let fullStreamHTML = await arrayToTable(fullStreamArray)
res.send(fullStreamHTML)
})
app.listen(port, () => {
console.log(`DNS Logger listening at http://localhost:${port}`)
})
2021-02-06 14:23:12 +00:00