add tool createMonitorsJsonFromTxt.js
parent
d4e7c3d679
commit
03b2a74223
|
|
@ -0,0 +1,58 @@
|
|||
const fs = require('fs')
|
||||
const URL = require('url')
|
||||
const monitorBasePath = process.argv[2];
|
||||
const importFilePath = process.argv[3];
|
||||
if(!importFilePath){
|
||||
console.error('Missing Import File Path.')
|
||||
return console.error(`Example Use : node ./createMonitorsJsonFromTxt.js MONITOR_BASE.json PLAIN_LIST.txt`)
|
||||
}
|
||||
const monitorBase = require(monitorBasePath)
|
||||
function getUrlProtocol(urlString){
|
||||
let modifiedUrlString = `${urlString}`.split('://')
|
||||
const originalProtocol = `${modifiedUrlString[0]}`
|
||||
return originalProtocol
|
||||
}
|
||||
function modifyUrlProtocol(urlString,newProtocol){
|
||||
let modifiedUrlString = `${urlString}`.split('://')
|
||||
const originalProtocol = `${modifiedUrlString[0]}`
|
||||
modifiedUrlString[0] = newProtocol;
|
||||
modifiedUrlString = modifiedUrlString.join('://')
|
||||
return modifiedUrlString
|
||||
}
|
||||
function getUrlParts(urlString){
|
||||
const originalProtocol = getUrlProtocol(urlString)
|
||||
const modifiedUrlString = modifyUrlProtocol(urlString,'http')
|
||||
const url = URL.parse(modifiedUrlString)
|
||||
const data = {}
|
||||
Object.keys(url).forEach(function(key){
|
||||
const value = url[key];
|
||||
if(value && typeof value !== 'function')data[key] = url[key];
|
||||
});
|
||||
data.href = `${urlString}`
|
||||
data.origin = modifyUrlProtocol(data.origin,originalProtocol)
|
||||
data.protocol = `${originalProtocol}:`
|
||||
return data
|
||||
}
|
||||
function makeConfig(streamUrl){
|
||||
// streamUrl = 'rtsp://1.1.1.1:554/'
|
||||
const copyOfBaseConfig = Object.assign({},monitorBase)
|
||||
const urlParts = getUrlParts(streamUrl)
|
||||
copyOfBaseConfig.host = urlParts.hostname
|
||||
copyOfBaseConfig.port = urlParts.port
|
||||
copyOfBaseConfig.path = urlParts.pathname
|
||||
copyOfBaseConfig.details.auto_host = streamUrl
|
||||
copyOfBaseConfig.details.rtsp_transport = 'tcp'
|
||||
return copyOfBaseConfig
|
||||
}
|
||||
|
||||
function run(){
|
||||
const importList = fs.readFileSync(importFilePath,'utf8').split('\n')
|
||||
const newMonitorsList = []
|
||||
const fileName = `${importFilePath}.json`
|
||||
importList.forEach((streamUrl) => {
|
||||
newMonitorsList.push(makeConfig(streamUrl))
|
||||
})
|
||||
console.log(`New JSON written to ${fileName}`)
|
||||
fs.writeFileSync(fileName,JSON.stringify(newMonitorsList));
|
||||
}
|
||||
run()
|
||||
Loading…
Reference in New Issue