Shinobi/web/pages/embed.ejs

72 lines
2.8 KiB
Plaintext

<%
var forceUrlPrefix
var urlPrefix = ``
var targetPort = config.ssl && config.ssl.port && protocol === 'https' ? config.ssl.port : config.port
var addonsEnabled = {}
var rawAddonList = decodeURI(data.addon || '').split('|');
rawAddonList.forEach(function(piece){
var pieceParts = piece.split('=');
var key = pieceParts[0];
var value = pieceParts[1] || true;
addonsEnabled[key] = value;
});
function getAddon(addonTag){
return addonsEnabled[addonTag];
}
var streamWidth = parseInt(getAddon('width')) || 640
var streamHeight = parseInt(getAddon('height')) || 480
var hasGUI = getAddon('gui')
var isFullscreen = getAddon('fullscreen')
var isRelativeUrl = getAddon('relative')
if(forceUrlPrefix){
urlPrefix = forceUrlPrefix
}else if(isRelativeUrl){
urlPrefix = ''
}else if(config.baseURL){
urlPrefix = config.baseURL
}else if(!targetPort || targetPort === '' || targetPort == 80 || targetPort == 443){
urlPrefix = baseUrl
}else{
urlPrefix = `${baseUrl}:${targetPort}`
}
if(urlPrefix.endsWith('/') === false){
urlPrefix += '/'
}
%>
<script src="<%- urlPrefix %>assets/vendor/js/socket.io.min.js"></script>
<script src="<%- urlPrefix %>assets/vendor/js/poseidon.js"></script>
<script src="<%- urlPrefix %>assets/vendor/js/hls.min.js"></script>
<script src="<%- urlPrefix %>assets/vendor/js/flv.min.js"></script>
<script>
var urlPrefix = `<%- urlPrefix %>`;
var $user = <%- JSON.stringify($user) %>;
var definitions = <%- JSON.stringify(define) %>;
var lang = $user.lang;
var hasGUI = <%- hasGUI || false %>;
var streamWidth = <%- streamWidth %>;
var streamHeight = <%- streamHeight %>;
var monitorId = `<%- data.id %>`;
var monitorConfig = <%- JSON.stringify(mon) %>;
var loadedMonitors = {}
loadedMonitors[monitorId] = monitorConfig;
</script>
<% if(getAddon('jquery')){ %>
<script src="<%- urlPrefix %>assets/vendor/js/jquery.min.js"></script>
<% };
if(hasGUI){ %>
<link rel="stylesheet" href="<%- urlPrefix %>assets/css/bs5.embed.gui.css">
<link rel="stylesheet" href="<%- urlPrefix %>assets/css/bs5.embed.detections.css">
<% };
if(isFullscreen){ %>
<link rel="stylesheet" href="<%- urlPrefix %>assets/css/bs5.embed.fullscreen.css">
<script src="<%- urlPrefix %>assets/js/bs5.embed.fullscreen.js"></script>
<% } %>
<div class="shinobi_stream" id="monitors_live">
<div class="stream-element-container"></div>
<button type="button" class="unmute-embed-audio"><%- lang['Unmute'] %></button>
</div>
<script src="<%- urlPrefix %>assets/js/bs5.embed.utils.js"></script>
<script src="<%- urlPrefix %>assets/js/bs5.websocket.js"></script>
<script src="<%- urlPrefix %>assets/js/bs5.embed.js"></script>