add m3u8 import capability to multimon

merge-requests/117/head
Moe 2019-09-23 12:09:04 -07:00
parent bcbb6e8083
commit 8980a65805
1 changed files with 53 additions and 3 deletions

View File

@ -1,4 +1,17 @@
$(document).ready(function(e){
var getUrlPieces = function(url){
var el = document.createElement('a');
el.href = url
return el
// el.host // www.somedomain.com (includes port if there is one[1])
// el.hostname // www.somedomain.com
// el.hash // #top
// el.href // http://www.somedomain.com/account/search?filter=a#top
// el.pathname // /account/search
// el.port // (port if there is one[1])
// el.protocol // http:
// el.search // ?filter=a
}
//multi monitor manager
$.multimon={e:$('#multi_mon')};
$.multimon.table=$.multimon.e.find('.tableData tbody');
@ -67,7 +80,8 @@ $.multimon.e.find('.import_config').click(function(){
console.log(newMon)
return newMon
}
parsedData=JSON.parse($.confirm.e.find('textarea').val());
var textFieldData = $.confirm.e.find('textarea').val()
var parsedData = JSON.parse()
//zoneminder one monitor
if(parsedData.monitor){
$.aM.import({
@ -95,8 +109,44 @@ $.multimon.e.find('.import_config').click(function(){
})
}
}catch(err){
$.ccio.log(err)
$.ccio.init('note',{title:lang['Invalid JSON'],text:lang.InvalidJSONText,type:'error'})
//#EXTM3U
if(textFieldData.indexOf('#EXTM3U') > -1 && textFieldData.indexOf('{"') === -1){
var m3u8List = textFieldData.replace('#EXTM3U','').trim().split('\n')
var parsedList = {}
var currentName
m3u8List.forEach(function(line){
if(line.indexOf('#EXTINF:-1,') > -1){
currentName = line.replace('#EXTINF:-1,','').trim()
}else{
parsedList[currentName] = line.trim()
}
})
$.each(parsedList,function(name,url){
var link = getUrlPieces(url)
var newMon = $.aM.generateDefaultMonitorSettings()
newMon.details = JSON.parse(newMon.details)
newMon.details.stream_type = 'mp4'
newMon.mid = 'HLS' + name.toLowerCase()
newMon.name = name
newMon.port = link.port
newMon.host = link.hostname
newMon.path = link.pathname
newMon.details.tv_channel = '1'
newMon.details.tv_channel_id = name
newMon.details.auto_host_enable = '1'
newMon.details.auto_host = url
newMon.details.stream_quality = '1'
newMon.details.stream_fps = ''
newMon.details.stream_vcodec = 'copy'
newMon.details.stream_acodec = 'aac'
newMon.type = 'hls'
newMon.details = JSON.stringify(newMon.details)
postMonitor(newMon)
})
}else{
$.ccio.log(err)
$.ccio.init('note',{title:lang['Invalid JSON'],text:lang.InvalidJSONText,type:'error'})
}
}
// });
});