mirror of
				https://github.com/DigitalDevices/octonet.git
				synced 2023-10-10 11:36:52 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			480 lines
		
	
	
		
			17 KiB
		
	
	
	
		
			HTML
		
	
	
	
	
	
			
		
		
	
	
			480 lines
		
	
	
		
			17 KiB
		
	
	
	
		
			HTML
		
	
	
	
	
	
<!DOCTYPE HTML>
 | 
						|
<html>
 | 
						|
<head>
 | 
						|
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
 | 
						|
<title>OctopusNet</title>
 | 
						|
<link rel="stylesheet" type="text/css" href="/style.css">
 | 
						|
<script type="text/javascript" src="/menu.js"></script>
 | 
						|
<!--  Add included scripts here -->
 | 
						|
<script type="text/javascript" src="/systeminfo.lua"></script>
 | 
						|
<script type="text/javascript">Octoserve = false;</script>
 | 
						|
<script type="text/javascript" src="/octoserve/serverinfo.js"></script>
 | 
						|
 | 
						|
<!-- Add page scripts here -->
 | 
						|
<script type="text/javascript">
 | 
						|
var hasCable = false;
 | 
						|
var hasSat = false;
 | 
						|
var hasTer = false;
 | 
						|
 | 
						|
var xmlhttp = new XMLHttpRequest();
 | 
						|
var url = "/channelscan.lua?select=keys";
 | 
						|
 | 
						|
xmlhttp.onreadystatechange=function()
 | 
						|
{
 | 
						|
    if (xmlhttp.readyState == 4 )
 | 
						|
    {
 | 
						|
      if( xmlhttp.status == 200 )
 | 
						|
         myFunction(xmlhttp.responseText);
 | 
						|
    }
 | 
						|
}
 | 
						|
 | 
						|
function myFunction(response)
 | 
						|
{
 | 
						|
   var kl = JSON.parse(response);
 | 
						|
 | 
						|
   document.Cable.Select.length = 0;
 | 
						|
   document.Satellite1.Select.length = 0;
 | 
						|
   document.Satellite2.Select.length = 0;
 | 
						|
   document.Satellite3.Select.length = 0;
 | 
						|
   document.Satellite4.Select.length = 0;
 | 
						|
 | 
						|
   document.Cable.Select.options[0] = (new Option("-", null, false, true) );
 | 
						|
   document.Satellite1.Select.options[0] = (new Option("-", null, false, true) );
 | 
						|
   document.Satellite2.Select.options[0] = (new Option("-", null, false, true) );
 | 
						|
   document.Satellite3.Select.options[0] = (new Option("-", null, false, true) );
 | 
						|
   document.Satellite4.Select.options[0] = (new Option("-", null, false, true) );
 | 
						|
 | 
						|
   var iCable = 1;
 | 
						|
   var iSat = 1;
 | 
						|
 | 
						|
   for(var i = 0; i < kl.KeyList.length; i++)
 | 
						|
   {
 | 
						|
      if( (hasCable && kl.KeyList[i].DVBType.indexOf("C") >= 0) ||
 | 
						|
          (hasTer   && kl.KeyList[i].DVBType.indexOf("T") >= 0) )
 | 
						|
      {
 | 
						|
         var Select = (kl.KeyList[i].Key == "UM");
 | 
						|
         document.Cable.Select.options[iCable] = (new Option(kl.KeyList[i].Title, kl.KeyList[i].Key, false, Select) );
 | 
						|
         iCable += 1;
 | 
						|
      }
 | 
						|
      if( (hasSat && kl.KeyList[i].DVBType.indexOf("S") >= 0) )
 | 
						|
      {
 | 
						|
         var Select = (kl.KeyList[i].Key == "0192");
 | 
						|
         document.Satellite1.Select.options[iSat] = (new Option(kl.KeyList[i].Title, kl.KeyList[i].Key, false, Select) );
 | 
						|
         document.Satellite2.Select.options[iSat] = (new Option(kl.KeyList[i].Title, kl.KeyList[i].Key, false, false) );
 | 
						|
         document.Satellite3.Select.options[iSat] = (new Option(kl.KeyList[i].Title, kl.KeyList[i].Key, false, false) );
 | 
						|
         document.Satellite4.Select.options[iSat] = (new Option(kl.KeyList[i].Title, kl.KeyList[i].Key, false, false) );
 | 
						|
         iSat += 1;
 | 
						|
      }
 | 
						|
   }
 | 
						|
 | 
						|
   if( iCable > 1 )
 | 
						|
      document.getElementById("trCable").style.display = "table-row";
 | 
						|
   if( iSat > 1 )
 | 
						|
   {
 | 
						|
      document.getElementById("trSat1").style.display = "table-row";
 | 
						|
      document.getElementById("trSat2").style.display = "table-row";
 | 
						|
      document.getElementById("trSat3").style.display = "table-row";
 | 
						|
      document.getElementById("trSat4").style.display = "table-row";
 | 
						|
   }
 | 
						|
 | 
						|
}
 | 
						|
 | 
						|
function SetSource(Src,SourceIndex)
 | 
						|
{
 | 
						|
}
 | 
						|
 | 
						|
function OnLoad()
 | 
						|
{
 | 
						|
   for(var i = 0; i < Octoserve.TunerList.length; i++ )
 | 
						|
   {
 | 
						|
      if( Octoserve.TunerList[i] )
 | 
						|
      {
 | 
						|
         if( Octoserve.TunerList[i].Desc.indexOf("C/T") >= 0 ) hasCable = true;
 | 
						|
         if( Octoserve.TunerList[i].Desc.indexOf("C/C2") >= 0 ) hasCable = true;
 | 
						|
         if( Octoserve.TunerList[i].Desc.indexOf("S/S2") >= 0 ) hasSat = true;
 | 
						|
      }
 | 
						|
   }
 | 
						|
   // TODO: differentiate between dvbc and dvbt
 | 
						|
   hasTer = hasCable;
 | 
						|
 | 
						|
   xmlhttp.open("GET", url, true);
 | 
						|
   xmlhttp.send();
 | 
						|
 | 
						|
}
 | 
						|
 | 
						|
function DisableButtons(disabled)
 | 
						|
{
 | 
						|
   document.getElementById("EpgButton").disabled = disabled;
 | 
						|
   document.getElementById("ScanButton").disabled = disabled;
 | 
						|
   document.getElementById("StatusButton").disabled = disabled;
 | 
						|
   document.getElementById("DeleteButton").disabled = disabled;
 | 
						|
   document.getElementById("DeleteAllButton").disabled = disabled;
 | 
						|
   document.getElementById("RestoreButton").disabled = disabled;
 | 
						|
   document.getElementById("UploadButton").disabled = disabled;
 | 
						|
}
 | 
						|
 | 
						|
 | 
						|
var ScanReq = new XMLHttpRequest();
 | 
						|
 | 
						|
ScanReq.onreadystatechange=function()
 | 
						|
{
 | 
						|
    if (ScanReq.readyState == 4 )
 | 
						|
    {
 | 
						|
      if( ScanReq.status == 200 )
 | 
						|
         ScanStatus(ScanReq.responseText);
 | 
						|
      else
 | 
						|
      {
 | 
						|
         document.getElementById("scancount").firstChild.nodeValue = "\u00A0";
 | 
						|
         document.getElementById("scantext").firstChild.nodeValue = "Error " + ScanReq.status;
 | 
						|
         DisableButtons(false);
 | 
						|
      }
 | 
						|
    }
 | 
						|
}
 | 
						|
 | 
						|
function GetStatus()
 | 
						|
{
 | 
						|
   ScanReq.open("GET", "/channelscan.lua?select=status&t=" + Math.random(), true);
 | 
						|
   ScanReq.send();
 | 
						|
}
 | 
						|
 | 
						|
function ScanStatus(response)
 | 
						|
{
 | 
						|
   var s = JSON.parse(response);
 | 
						|
   var done = true;
 | 
						|
   if( s.status )
 | 
						|
   {
 | 
						|
      if( s.status == "active" )
 | 
						|
      {
 | 
						|
         document.getElementById("scancount").firstChild.nodeValue = s.count;
 | 
						|
         document.getElementById("scantext").firstChild.nodeValue = s.msg;
 | 
						|
         done = false;
 | 
						|
      }
 | 
						|
      else if( s.status == "busy" )
 | 
						|
      {
 | 
						|
         document.getElementById("scancount").firstChild.nodeValue = "\u00A0";
 | 
						|
         document.getElementById("scantext").firstChild.nodeValue = "BUSY";
 | 
						|
      }
 | 
						|
      else if( s.status == "done" )
 | 
						|
      {
 | 
						|
         document.getElementById("scancount").firstChild.nodeValue = s.count;
 | 
						|
         document.getElementById("scantext").firstChild.nodeValue = s.msg;
 | 
						|
      }
 | 
						|
      else if( s.status == "deleted" )
 | 
						|
      {
 | 
						|
         document.getElementById("scancount").firstChild.nodeValue = "\u00A0";
 | 
						|
         document.getElementById("scantext").firstChild.nodeValue = "Channel list deleted";
 | 
						|
      }
 | 
						|
      else if( s.status == "restored" )
 | 
						|
      {
 | 
						|
         document.getElementById("scancount").firstChild.nodeValue = "\u00A0";
 | 
						|
         if( s.count == 0 )
 | 
						|
            document.getElementById("scantext").firstChild.nodeValue = "Nothing restored";
 | 
						|
         else
 | 
						|
            document.getElementById("scantext").firstChild.nodeValue = "Previous channel list restored";
 | 
						|
      }
 | 
						|
      else if( s.status == "error" )
 | 
						|
      {
 | 
						|
         document.getElementById("scancount").firstChild.nodeValue = "Error";
 | 
						|
         document.getElementById("scantext").firstChild.nodeValue = s.msg;
 | 
						|
      }
 | 
						|
      else if( s.status == "updated" )
 | 
						|
      {
 | 
						|
         document.getElementById("scancount").firstChild.nodeValue = "\u00A0";
 | 
						|
         document.getElementById("scantext").firstChild.nodeValue = s.msg + " updated";
 | 
						|
      }
 | 
						|
      else if( s.status == "retry" )
 | 
						|
      {
 | 
						|
         done = false;
 | 
						|
      }
 | 
						|
   }
 | 
						|
 | 
						|
   if( done )
 | 
						|
   {
 | 
						|
      DisableButtons(false);
 | 
						|
   }
 | 
						|
   else
 | 
						|
      window.setTimeout(GetStatus,500);
 | 
						|
}
 | 
						|
 | 
						|
 | 
						|
function InitiateScan()
 | 
						|
{
 | 
						|
   DisableButtons(true);
 | 
						|
 | 
						|
   var param = "";
 | 
						|
   for(var i = 1; i < document.Cable.Select.options.length; i += 1)
 | 
						|
   {
 | 
						|
      if( document.Cable.Select.options[i].selected )
 | 
						|
         param = param + "&key=" + document.Cable.Select.options[i].value;
 | 
						|
   }
 | 
						|
   for(var i = 1; i < document.Satellite1.Select.options.length; i += 1)
 | 
						|
   {
 | 
						|
      if( document.Satellite1.Select.options[i].selected )
 | 
						|
         param = param + "&key=" + document.Satellite1.Select.options[i].value + ".1";
 | 
						|
   }
 | 
						|
   for(var i = 1; i < document.Satellite2.Select.options.length; i += 1)
 | 
						|
   {
 | 
						|
      if( document.Satellite2.Select.options[i].selected )
 | 
						|
         param = param + "&key=" + document.Satellite2.Select.options[i].value + ".2";
 | 
						|
   }
 | 
						|
   for(var i = 1; i < document.Satellite3.Select.options.length; i += 1)
 | 
						|
   {
 | 
						|
      if( document.Satellite3.Select.options[i].selected )
 | 
						|
         param = param + "&key=" + document.Satellite3.Select.options[i].value + ".3";
 | 
						|
   }
 | 
						|
   for(var i = 1; i < document.Satellite4.Select.options.length; i += 1)
 | 
						|
   {
 | 
						|
      if( document.Satellite4.Select.options[i].selected )
 | 
						|
         param = param + "&key=" + document.Satellite4.Select.options[i].value + ".4";
 | 
						|
   }
 | 
						|
 | 
						|
   if( param != "" )
 | 
						|
   {
 | 
						|
      ScanReq.open("POST", "/channelscan.lua", true);
 | 
						|
      ScanReq.setRequestHeader("Content-type","application/x-www-form-urlencoded");
 | 
						|
      ScanReq.send("select=scan" + param + "&sitables=1&sort=1&restartdms=1");
 | 
						|
      document.getElementById("scancount").firstChild.nodeValue = "\u00A0";
 | 
						|
      document.getElementById("scantext").firstChild.nodeValue = "Scanning...";
 | 
						|
   }
 | 
						|
   else
 | 
						|
   {
 | 
						|
      document.getElementById("scancount").firstChild.nodeValue = "\u00A0";
 | 
						|
      document.getElementById("scantext").firstChild.nodeValue = "\u00A0";
 | 
						|
   }
 | 
						|
}
 | 
						|
 | 
						|
function InitiateEPGScan()
 | 
						|
{
 | 
						|
   DisableButtons(true);
 | 
						|
      ScanReq.open("POST", "/channelscan.lua", true);
 | 
						|
      ScanReq.setRequestHeader("Content-type","application/x-www-form-urlencoded");
 | 
						|
      ScanReq.send("select=epg");
 | 
						|
      document.getElementById("scancount").firstChild.nodeValue = "\u00A0";
 | 
						|
      document.getElementById("scantext").firstChild.nodeValue = "Scanning...";
 | 
						|
}
 | 
						|
 | 
						|
function PollStatus()
 | 
						|
{
 | 
						|
   DisableButtons(true);
 | 
						|
   GetStatus();
 | 
						|
}
 | 
						|
 | 
						|
function DeleteScan(all)
 | 
						|
{
 | 
						|
   DisableButtons(true);
 | 
						|
   ScanReq.open("POST", "/channelscan.lua", true);
 | 
						|
   ScanReq.setRequestHeader("Content-type","application/x-www-form-urlencoded");
 | 
						|
   ScanReq.send("select=delete" + (all ? "&all=true" : ""));
 | 
						|
}
 | 
						|
 | 
						|
function RestoreScan()
 | 
						|
{
 | 
						|
   DisableButtons(true);
 | 
						|
   ScanReq.open("POST", "/channelscan.lua", true);
 | 
						|
   ScanReq.setRequestHeader("Content-type","application/x-www-form-urlencoded");
 | 
						|
   ScanReq.send("select=restore");
 | 
						|
}
 | 
						|
 | 
						|
 | 
						|
function Uploader(event)
 | 
						|
{
 | 
						|
   event.preventDefault();
 | 
						|
   document.getElementById("scancount").firstChild.nodeValue = "\u00A0";
 | 
						|
   document.getElementById("scantext").firstChild.nodeValue = "\u00A0";
 | 
						|
   var fileSelect = document.getElementById("UploadList");
 | 
						|
   if( fileSelect.files.length > 0 )
 | 
						|
   {
 | 
						|
      var formData = new FormData();
 | 
						|
      formData.append('filename', fileSelect.files[0], fileSelect.files[0].name)
 | 
						|
      DisableButtons(true);
 | 
						|
      ScanReq.open("POST", "/channelscan.lua", true);
 | 
						|
      ScanReq.send(formData);
 | 
						|
   }
 | 
						|
}
 | 
						|
 | 
						|
</script>
 | 
						|
 | 
						|
</head>
 | 
						|
<body onload="OnLoad()">
 | 
						|
 | 
						|
<table class="maintable">
 | 
						|
  <colgroup>
 | 
						|
    <col style="width: 182px"/>
 | 
						|
    <col style="width: 728px"/>
 | 
						|
  </colgroup>
 | 
						|
  <tr><td class="maintd" colspan="2">
 | 
						|
    <a href="http://www.digitaldevices.de"><img src="/BannerDD.jpg" alt="DD" width="910" height="130" /></a>
 | 
						|
  </td></tr>
 | 
						|
  <tr><td class="maintd" colspan="2"> </td></tr>
 | 
						|
  <tr>
 | 
						|
    <td class="maintd"><script type="text/javascript">CreateMenu();</script></td>
 | 
						|
    <td class="content">
 | 
						|
      <div>
 | 
						|
        <!-- Begin Content -->
 | 
						|
        <table cellpadding="2px" class="center-div">
 | 
						|
          <tr id="trCable" style="display:none">
 | 
						|
            <td>Cable</td>
 | 
						|
            <td style="text-align:right">
 | 
						|
              <form name="Cable" action="">
 | 
						|
                <select name="Select" size="1" style="width: 300px" onchange="SetSource(0,document.Cable.Select.selectedIndex)" >
 | 
						|
                </select>
 | 
						|
              </form>
 | 
						|
            </td>
 | 
						|
          </tr>
 | 
						|
          <tr id="trSat1" style="display:none">
 | 
						|
            <td>Satellite 1</td>
 | 
						|
            <td style="text-align:right">
 | 
						|
              <form name="Satellite1" action="">
 | 
						|
                <select name="Select" size="1" style="width: 300px" onchange="SetSource(1,document.Satellite1.Select.selectedIndex)" >
 | 
						|
                </select>
 | 
						|
              </form>
 | 
						|
            </td>
 | 
						|
          </tr>
 | 
						|
          <tr id="trSat2" style="display:none">
 | 
						|
            <td>Satellite 2</td>
 | 
						|
            <td style="text-align:right">
 | 
						|
              <form name="Satellite2" action="">
 | 
						|
                <select name="Select" size="1" style="width: 300px" onchange="SetSource(2,document.Satellite2.Select.selectedIndex)" >
 | 
						|
                </select>
 | 
						|
              </form>
 | 
						|
            </td>
 | 
						|
          </tr>
 | 
						|
          <tr id="trSat3" style="display:none">
 | 
						|
            <td>Satellite 3</td>
 | 
						|
            <td style="text-align:right">
 | 
						|
              <form name="Satellite3" action="">
 | 
						|
                <select name="Select" size="1" style="width: 300px" onchange="SetSource(3,document.Satellite3.Select.selectedIndex)" >
 | 
						|
                </select>
 | 
						|
              </form>
 | 
						|
            </td>
 | 
						|
          </tr>
 | 
						|
          <tr id="trSat4" style="display:none">
 | 
						|
            <td>Satellite 4</td>
 | 
						|
            <td style="text-align:right">
 | 
						|
              <form name="Satellite4" action="">
 | 
						|
                <select name="Select" size="1" style="width: 300px" onchange="SetSource(4,document.Satellite4.Select.selectedIndex)" >
 | 
						|
                </select>
 | 
						|
              </form>
 | 
						|
            </td>
 | 
						|
          </tr>
 | 
						|
          <tr>
 | 
						|
            <td> </td>
 | 
						|
            <td style="text-align:right">
 | 
						|
               <form action="">
 | 
						|
                 <input id="StatusButton" type="Button" value="Get Status" onclick="PollStatus()" >
 | 
						|
                 <input id="ScanButton" type="Button" value="Start Channel Scan" onclick="InitiateScan()" >
 | 
						|
                 <input id="EpgButton" type="Button" value="Start EPG Scan" onclick="InitiateEPGScan()" >
 | 
						|
               </form>
 | 
						|
            </td>
 | 
						|
          </tr>
 | 
						|
          <tr>
 | 
						|
            <td>
 | 
						|
               <div id="scancount" style="text-align:right"> </div>
 | 
						|
            </td>
 | 
						|
            <td>
 | 
						|
               <div id="scantext" style="text-align:left"> </div>
 | 
						|
            </td>
 | 
						|
          </tr>
 | 
						|
          <tr>
 | 
						|
            <td> </td>
 | 
						|
            <td style="text-align:right">
 | 
						|
               <form action="">
 | 
						|
                 <input id="DeleteButton" type="Button" value="Delete Channel List" onclick="DeleteScan()" >
 | 
						|
                 <input id="RestoreButton" type="Button" value="Restore Previous Channel List" onclick="RestoreScan()" >
 | 
						|
               </form>
 | 
						|
            </td>
 | 
						|
          </tr>
 | 
						|
          <tr>
 | 
						|
            <td colspan="2" style="text-align:right">
 | 
						|
              <form action="" method="post" enctype="multipart/form-data" onsubmit="Uploader(event)">
 | 
						|
                <input id="UploadList" type="file" name="filename" value="*.json" size="30" accept=".json">
 | 
						|
                <input id="UploadButton" type="submit" value="Upload">
 | 
						|
              </form>
 | 
						|
            </td>
 | 
						|
          </tr>
 | 
						|
        </table>
 | 
						|
        <hr/>
 | 
						|
        <div style="text-align: center">
 | 
						|
            <h4>Downloads</h4>
 | 
						|
            Channel List:
 | 
						|
                <a href="/channellist.lua?select=json">JSON</a>
 | 
						|
                <a href="/channellist.lua?select=m3u">M3U</a>
 | 
						|
            <br/>
 | 
						|
            Transponder List:
 | 
						|
                <a href="/channellist.lua?select=tl">Current</a>
 | 
						|
                <a href="/channellist.lua?select=stl">Default</a>
 | 
						|
               <br/>
 | 
						|
               <form action="">
 | 
						|
                 <input id="DeleteAllButton" type="Button" value="Delete All" onclick="DeleteScan(true)" >
 | 
						|
               </form>
 | 
						|
        </div>
 | 
						|
 | 
						|
        <hr/>
 | 
						|
        <h4 style="text-align: center">Old Format Lists</h4>
 | 
						|
        <table cellpadding="2px" class="center-div">
 | 
						|
          <tr>
 | 
						|
            <td>System Channel Database</td>
 | 
						|
            <td>
 | 
						|
              <table>
 | 
						|
                <tr>
 | 
						|
                  <td>
 | 
						|
                    <form action="dlchannels.lua" method="get">
 | 
						|
                      <input type="submit" value="Download tar.gz" >
 | 
						|
                      <input type="hidden" name="select" value="system" >
 | 
						|
                    </form>
 | 
						|
                  </td>
 | 
						|
                  <td>
 | 
						|
                    <form action="dlchannels.lua" method="get">
 | 
						|
                      <input type="submit" value="Download zip"  disabled >
 | 
						|
                      <input type="hidden" name="select" value="system" >
 | 
						|
                    </form>
 | 
						|
                  </td>
 | 
						|
                </tr>
 | 
						|
              </table>
 | 
						|
            </td>
 | 
						|
          </tr>
 | 
						|
          <tr>
 | 
						|
            <td>User Channel Database</td>
 | 
						|
            <td>
 | 
						|
              <table>
 | 
						|
                <tr>
 | 
						|
                  <td>
 | 
						|
                    <form action="dlchannels.lua" method="get">
 | 
						|
                      <input type="submit" value="Download tar.gz">
 | 
						|
                      <input type="hidden" name="select" value="user" >
 | 
						|
                    </form>
 | 
						|
                  </td>
 | 
						|
                  <td>
 | 
						|
                    <form action="dlchannels.lua" method="get">
 | 
						|
                      <input type="submit" value="Download zip"  disabled >
 | 
						|
                      <input type="hidden" name="select" value="user" >
 | 
						|
                    </form>
 | 
						|
                  </td>
 | 
						|
                  <td>
 | 
						|
                    <form action="delchannels.lua" method="get">
 | 
						|
                      <input type="submit" value="Delete">
 | 
						|
                    </form>
 | 
						|
                  </td>
 | 
						|
                </tr>
 | 
						|
              </table>
 | 
						|
            </td>
 | 
						|
          </tr>
 | 
						|
          <tr>
 | 
						|
            <td colspan="2">
 | 
						|
              <form action="uplchannels.lua" method="post" enctype="multipart/form-data">
 | 
						|
                <input type="file" name="filename" value="*.gz" size="30" accept="application/zip,application/gzip">
 | 
						|
                <input type="submit" value="Upload">
 | 
						|
              </form>
 | 
						|
            </td>
 | 
						|
          </tr>
 | 
						|
        </table>
 | 
						|
        <!-- End Content -->
 | 
						|
      </div>
 | 
						|
    </td>
 | 
						|
  </tr>
 | 
						|
  <tr><td colspan="2"> </td></tr>
 | 
						|
</table>
 | 
						|
 | 
						|
</body>
 | 
						|
</html>
 |