<commit_before><!DOCTYPE html>
<html lang="ru">
 <head>
  <meta http-equiv="Content-type" content="text/html; charset=utf-8">
  <link rel="stylesheet" href="/bootstrap.min.css">
  <link rel="stylesheet" type="text/css" href="/style.css">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Страница устройств</title>
  <script type="text/javascript">
   window.onload = function() {
    if (window.XMLHttpRequest) {
     xhttp = new XMLHttpRequest();
    } else {
     xhttp = new ActiveXObject("Microsoft.XMLHTTP");
    }
    iplocation();
    var dt = new Date();
    document.getElementById('date').innerHTML = dt.getDate()+' '+["Воскресенья","Понидельник","Вторник","Среда","Четверг","Пятница","Суббота"][dt.getDay()]+'<small class="show">'+["Январь","Февраль","Март","Апрель","Май","Июнь","Июль","Август","Сентябрь","Октябрь","Ноябрь","Декабрь"][dt.getMonth()]+' '+dt.getFullYear()+'г.<\/small>';
   }

   function finddevice() {
    document.getElementById('content').innerHTML='<div class="alert alert-dismissible alert-info"><div class="loader"></div><strong>Пожалуйста подождите, идет сканирование сети.</strong></div>';
    xhttp.open("GET", "/devices?"+Math.floor(Math.random()*10000), false);
    xhttp.send();
    setTimeout(function(){iplocation('search')}, 7000);
   }

   function iplocation(searc) {
    document.getElementById('content').innerHTML='';
    xhttp.open("GET", "/iplocation.xml?"+Math.floor(Math.random()*10000), false);
    xhttp.send();
    xmlDoc = xhttp.responseXML;
    var count=xmlDoc.getElementsByTagName("ip").length;
    for (i = 0; i < count; i++) {
     var ipval = xmlDoc.getElementsByTagName("ip")[i].childNodes[0].textContent;
     if (searc == 'search') {
      xhttp.open("GET", "http://"+ipval+"/devices?"+Math.floor(Math.random()*10000), false);
      xhttp.send();
     }
     if (ipval == '0.0.0.0') {
      location.href = "/setup.htm";
     } else {
      loadBlock(ipval);
     }
    }
    // xhr = new XMLHttpRequest();
    // xhr.open('GET', '/iplocation.xml?'+Math.floor(Math.random()*10000), true);
    // xhr.responseType = 'document';
    // xhr.overrideMimeType('text/xml');
    // xhr.onload = function () {
    //  if (xhr.readyState === xhr.DONE) {
    //   if (xhr.status === 200) {
    //    document.getElementById('content').innerHTML='';
    //    xmlDoc = xhr.responseXML;
    //    var count=xmlDoc.getElementsByTagName("ip").length;
    //    for (i = 0; i < count; i++) {
    //     var ipval = xmlDoc.getElementsByTagName("ip")[i].childNodes[0].textContent;
    //     if (searc == 'search') {
    //      xhttp.open("GET", "http://"+ipval+"/devices?"+Math.floor(Math.random()*10000), false);
    //      xhttp.send();
    //     }
    //     if (ipval == '0.0.0.0') {
    //      location.href = "/setup.htm";
    //     } else {
    //      loadBlock(ipval);
    //     }
    //    }
    //   }
    //  }
    // };
    // xhr.send(null);
   }

   function loadBlock(ipval) {
    xhttp.open("GET", "http://"+ipval+"/block.htm?"+Math.floor(Math.random()*10000), false);
    xhttp.send();
    data = xhttp.responseText;
    xhttp.open("GET", "http://"+ipval+"/configs.json?"+Math.floor(Math.random()*10000), false);
    xhttp.send();
    data2 = xhttp.responseXML;
    data2 = JSON.parse(xhttp.responseText);
    var new_string;
    for (var key in data2) {
     new_string = data.replace(new RegExp('{{'+key+'}}', 'g'), data2[key]);
     data = new_string;
    }
    document.getElementById('content').innerHTML+=new_string;
   }

   function ajax(blockid, pagename, submit) {
    old_submit = submit.value;
    var d = new Date(); // for now
    datetext = d.getHours()+":"+d.getMinutes()+":"+d.getSeconds();
    parent = submit.parentNode.childNodes[1].innerHTML;
    document.getElementById('history').insertAdjacentHTML('afterbegin', '<li>'+datetext+'<span class="history" style="cursor:pointer" onclick="toggle(\'hide-'+datetext+'\');return false"><b>'+parent+'</b><br><em>'+old_submit+'</em><small class="hidden" id="hide-'+datetext+'"><hr>URL: http://'+blockid+'/'+pagename+'</small></span></li>');
    submit.value = 'Подождите...';
    submit_disabled(true);
    //$("input").prop('disabled', true);
    xhttp.open("GET", "http://"+blockid+"/"+pagename, false);
    xhttp.send();
    submit.value = xhttp.responseText;
    setTimeout(function(){
     submit.value=old_submit;
     submit_disabled(false);
    }, 1000);
   }

   function submit_disabled(request){
    var inputs = document.getElementsByTagName("input");
    for (var i = 0; i < inputs.length; i++) {
     if (inputs[i].type === 'submit') {inputs[i].disabled = request;}
    }
   }

   function toggle(target) {
    var curVal = document.getElementById(target).className;
    document.getElementById(target).className = (curVal === 'hidden') ? 'show' : 'hidden';
   }
  </script>
 </head>
 <body>
  <div class="container device">
   <div class="header">
    <h4><small class="pull-right col-md-4 hidden-xs" style="padding:15px 0;">Здесь видны все ваши устройства, скачать прошивки для ESP8266 вы можете на github <a href="https://github.com/tretyakovsa/jaluzi" target="_blank">Жалюзи</a>, <a href="https://github.com/renat2985/rgb" target="_blank">RGB</a>. Появились какие-то вопросы, пишите <a href="https://github.com/tretyakovsa/jaluzi/issues/new" target="_blank">сюда(жалюзи)</a> или <a href="https://github.com/renat2985/rgb/issues/new" target="_blank">cюда(rgb)</a>.</small></h4>
    <h1 id="date"><br><small></small></h1>
   </div>
   <div class="row">
    <div class="col-sm-3">
     <h5 style="background-color:#C0C7CA;cursor:pointer" onclick="toggle('history');return false">История</h5>
     <ul id="history">
     </ul>
     <hr>
     <div class="block col-md-11">
      <h5 class="alert-danger">Поиск</h5>
      <div class="alert alert-dismissible alert-info">Если у вас несколько устройств подключено к сети, вы можете добавить его сюда нажав кнопку ниже:</div>
      <a onclick="finddevice();" class="btn btn-block btn-default" href="#">Найти устройства</a>
     </div>
    </div>
    <div class="col-sm-offset-0 col-sm-9" style="text-align:center;" id="content">
     <div class="loader"></div><p>Загрузка...</p>
    </div>
   </div>
  </div>
 </body>
</html>
<commit_msg>Исправления в истории index.htm<commit_after><!DOCTYPE html>
<html lang="ru">
 <head>
  <meta http-equiv="Content-type" content="text/html; charset=utf-8">
  <link rel="stylesheet" href="/bootstrap.min.css">
  <link rel="stylesheet" type="text/css" href="/style.css">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Страница устройств</title>
  <script type="text/javascript">
   window.onload = function() {
    if (window.XMLHttpRequest) {
     xhttp = new XMLHttpRequest();
    } else {
     xhttp = new ActiveXObject("Microsoft.XMLHTTP");
    }
    iplocation();
    var dt = new Date();
    document.getElementById('date').innerHTML = dt.getDate()+' '+["Воскресенья","Понидельник","Вторник","Среда","Четверг","Пятница","Суббота"][dt.getDay()]+'<small class="show">'+["Январь","Февраль","Март","Апрель","Май","Июнь","Июль","Август","Сентябрь","Октябрь","Ноябрь","Декабрь"][dt.getMonth()]+' '+dt.getFullYear()+'г.<\/small>';
   }

   function finddevice() {
    document.getElementById('content').innerHTML='<div class="alert alert-dismissible alert-info"><div class="loader"></div><strong>Пожалуйста подождите, идет сканирование сети.</strong></div>';
    xhttp.open("GET", "/devices?"+Math.floor(Math.random()*10000), false);
    xhttp.send();
    setTimeout(function(){iplocation('search')}, 7000);
   }

   function iplocation(searc) {
    document.getElementById('content').innerHTML='';
    xhttp.open("GET", "/iplocation.xml?"+Math.floor(Math.random()*10000), false);
    xhttp.send();
    xmlDoc = xhttp.responseXML;
    var count=xmlDoc.getElementsByTagName("ip").length;
    for (i = 0; i < count; i++) {
     var ipval = xmlDoc.getElementsByTagName("ip")[i].childNodes[0].textContent;
     if (searc == 'search') {
      xhttp.open("GET", "http://"+ipval+"/devices?"+Math.floor(Math.random()*10000), false);
      xhttp.send();
     }
     if (ipval == '0.0.0.0') {
      location.href = "/setup.htm";
     } else {
      loadBlock(ipval);
     }
    }
    // xhr = new XMLHttpRequest();
    // xhr.open('GET', '/iplocation.xml?'+Math.floor(Math.random()*10000), true);
    // xhr.responseType = 'document';
    // xhr.overrideMimeType('text/xml');
    // xhr.onload = function () {
    //  if (xhr.readyState === xhr.DONE) {
    //   if (xhr.status === 200) {
    //    document.getElementById('content').innerHTML='';
    //    xmlDoc = xhr.responseXML;
    //    var count=xmlDoc.getElementsByTagName("ip").length;
    //    for (i = 0; i < count; i++) {
    //     var ipval = xmlDoc.getElementsByTagName("ip")[i].childNodes[0].textContent;
    //     if (searc == 'search') {
    //      xhttp.open("GET", "http://"+ipval+"/devices?"+Math.floor(Math.random()*10000), false);
    //      xhttp.send();
    //     }
    //     if (ipval == '0.0.0.0') {
    //      location.href = "/setup.htm";
    //     } else {
    //      loadBlock(ipval);
    //     }
    //    }
    //   }
    //  }
    // };
    // xhr.send(null);
   }

   function loadBlock(ipval) {
    xhttp.open("GET", "http://"+ipval+"/block.htm?"+Math.floor(Math.random()*10000), false);
    xhttp.send();
    data = xhttp.responseText;
    xhttp.open("GET", "http://"+ipval+"/configs.json?"+Math.floor(Math.random()*10000), false);
    xhttp.send();
    data2 = xhttp.responseXML;
    data2 = JSON.parse(xhttp.responseText);
    var new_string;
    for (var key in data2) {
     new_string = data.replace(new RegExp('{{'+key+'}}', 'g'), data2[key]);
     data = new_string;
    }
    document.getElementById('content').innerHTML+=new_string;
   }

   function ajax(blockid, pagename, submit) {
    old_submit = submit.value;
    var d = new Date(); // for now
    datetext = d.getHours()+":"+d.getMinutes()+":"+d.getSeconds();
    parent = submit.parentNode.childNodes[1].innerHTML;
    document.getElementById('history').insertAdjacentHTML('afterbegin', '<li>'+datetext+'<span class="history" style="cursor:pointer" onclick="toggle(\'hide-'+datetext+'\');return false"><b>'+parent+'</b><br><em>'+old_submit+'</em><small class="hidden" id="hide-'+datetext+'"><hr>URL: <a href="http://'+blockid+'/'+pagename+'">http://'+blockid+'/'+pagename+'</a></small></span></li>');
    submit.value = 'Подождите...';
    submit_disabled(true);
    //$("input").prop('disabled', true);
    xhttp.open("GET", "http://"+blockid+"/"+pagename, false);
    xhttp.send();
    submit.value = xhttp.responseText;
    setTimeout(function(){
     submit.value=old_submit;
     submit_disabled(false);
    }, 1000);
   }

   function submit_disabled(request){
    var inputs = document.getElementsByTagName("input");
    for (var i = 0; i < inputs.length; i++) {
     if (inputs[i].type === 'submit') {inputs[i].disabled = request;}
    }
   }

   function toggle(target) {
    var curVal = document.getElementById(target).className;
    document.getElementById(target).className = (curVal === 'hidden') ? 'show' : 'hidden';
   }
  </script>
 </head>
 <body>
  <div class="container device">
   <div class="header">
    <h4><small class="pull-right col-md-4 hidden-xs" style="padding:15px 0;">Здесь видны все ваши устройства, скачать прошивки для ESP8266 вы можете на github <a href="https://github.com/tretyakovsa/jaluzi" target="_blank">Жалюзи</a>, <a href="https://github.com/renat2985/rgb" target="_blank">RGB</a>, <a href="https://github.com/tretyakovsa/Sonoff_WiFi_switch" target="_blank">Sonoff</a>. Появились какие-то вопросы, пишите <a href="https://github.com/tretyakovsa/jaluzi/issues/new" target="_blank">сюда(жалюзи)</a>, <a href="https://github.com/renat2985/rgb/issues/new" target="_blank">cюда(rgb)</a> или <a href="https://github.com/tretyakovsa/Sonoff_WiFi_switch/issues/new" target="_blank">cюда(Sonoff)</a>.</small></h4>
    <h1 id="date"><br><small></small></h1>
   </div>
   <div class="row">
    <div class="col-sm-3">
     <h5 style="background-color:#C0C7CA;cursor:pointer" onclick="toggle('history');return false">История</h5>
     <ul id="history">
     </ul>
     <hr>
     <div class="block col-md-11">
      <h5 class="alert-danger">Поиск</h5>
      <div class="alert alert-dismissible alert-info">Если у вас несколько устройств подключено к сети, вы можете добавить его сюда нажав кнопку ниже:</div>
      <a onclick="finddevice();" class="btn btn-block btn-default" href="#">Найти устройства</a>
     </div>
    </div>
    <div class="col-sm-offset-0 col-sm-9" style="text-align:center;" id="content">
     <div class="loader"></div><p>Загрузка...</p>
    </div>
   </div>
  </div>
 </body>
</html>

{'fraction_non_alphanumeric': 0.213196778985224, 'fraction_numerical': 0.015323274177155812, 'mean_word_length': 3.6584122359796067, 'pattern_counts': {'":': 4, '<': 173, '<?xml version=': 0, '>': 167, 'https://': 10, 'lorem ipsum': 0, 'www.': 0, 'xml': 18}, 'pii_count': 4, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '1300834', 'n_tokens_mistral': 4693, 'n_tokens_neox': 4644, 'n_words': 696}