/
Ladlen
/
marrrena
Обзор
Документация
Войти
/
Ladlen
/
marrrena
Код
Запросы
0
Пакеты
0
Релизы
0
Аналитика
Безопасность
master
index.php
240 строк
534 KB
Ladlen
import category structure stuff
21 янв 2019, 13:22
21 янв 2019, 13:22
9029482
Код
Авторство
О чём код?
<?php error_reporting(E_ALL); ini_set('display_errors', 1); header('Content-Type: text/html; charset=utf-8'); $pid = file_get_contents('morena.process.pid'); $parsingWasBroken = false; #$code = json_decode('{data:"Каталог товаров на сайте",attributes:{"id":"root",rel:"root_cat","class":"open"},children:[{data:"\u0412\u0435\u043d\u0442\u0438\u043b\u044f\u0446\u0438\u044f" ,attributes … [Строка слишком длинная. Вы можете скачать файл] #echo 'sdfk'; #print_r($code); #exit; /*if ($pid) { if (file_exists("/proc/$pid")) { if ($cmdLine = file_get_contents("/proc/$pid/cmdline")) { //TODO: проверить !!! if (strpos($cmdLine, 'apache') === false) { // Видимо это все-таки не наш процесс. file_put_contents('morena.process.pid', ''); $parsingWasBroken = true; } else { header("Location: /parse.status.php"); exit; } } } else { $parsingWasBroken = true; } }*/ if ($parsingWasBroken) { header("Location: /parse.restart.php"); exit; } try { require_once('configCommon.php'); require_once('config.php'); require_once('DataReader.class.php'); require_once('QueryCreator.class.php'); require_once('functions.php'); $dr = new DataReader(); $dr->login(); $catalog = $dr->getCatalogJs(); #$dt = json_decode('{"data":"Каталог товаров на сайте","attributes":{"id":"root","rel":"root_cat","class":"open"},"children":[{"data":"Вентиляция","attributes":{"id":"cid_4951169","rel":"cat_visib … [Строка слишком длинная. Вы можете скачать файл] #print_r($dt); exit; } catch (Exception $e) { $msg = date(DATE_RFC822) . " >\nLine: " . $e->getLine() . "\nMessage:\n" . $e->getMessage() . "\n\n"; error_log($msg, 3, ERROR_LOG_FILE); mail(EMAIL, 'Ошибка в парсере', $msg); echo '<pre>'; echo 'Произошла ошибка:<br>'; echo $msg; echo '</pre>'; return false; } ?> <!DOCTYPE html> <html lang="ru"> <head> <meta charset="UTF-8"> <title>Парсер</title> <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/jstree/3.2.1/themes/default/style.min.css"/> <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/1.12.1/jquery.min.js"></script> <script src="https://cdnjs.cloudflare.com/ajax/libs/jstree/3.2.1/jstree.min.js"></script> <script src="/jquery.cookie.js"></script> <style> .JsTreeGoodsIndex { color: green; vertical-align: super; font-size: 0.6em; } </style> </head> <body> <script> //var j = {data:"Каталог товаров на сайте",attributes:{"id":"root",rel:"root_cat","class":"open"},children:[{data:"\u0412\u0435\u043d\u0442\u0438\u043b\u044f\u0446\u0438\u044f" ,attributes:{"id":" … [Строка слишком длинная. Вы можете скачать файл] //alert(JSON.stringify(j)); </script> <?php /*if ($resultString) { echo $resultString; } else { if (!empty($_POST['cid'])) { echo 'Парсинг завершен, но без результата. Проверьте, пожалуйста, входные данные и страницу парсинга. Данные запроса:<br><pre>'; echo print_r($_POST, true); echo '</pre><br>'; } } */?> <div id="start-panel-wrapper"> <div id="categories" style="width:550px;float:left;font-size: 13px;overflow-x: auto;margin-bottom: 5em;"> Размещение:<br> <div id="positions_cid"></div> </div> <div style="width:500px;float:left"> <form method="post" id="parse_form"> <label>Сайт: https://morena.ru </label><br><br> <label>E-mail отчета:<br><input type="text" name="email" value="<?php echo htmlspecialchars(EMAIL); ?>" style="width:100%"></label><br><br> <label>Название категории:<br><input type="text" name="cat_name" style="width:100%;background-color:#EEE" readonly="readonly"></label><br> <label>CID (размещение):<br><input type="text" name="cid" style="width:100%;background-color:#EEE" readonly="readonly"></label><br><br> <!--<label><input type="checkbox" id="parse_brands_check" name="parse_brands">Парсить бренды</label><br>--> <!--<label><span id="parse_brands_label"></span><br><input type="text" name="url" style="width:100%"></label>--> <br> <select name="search_type"> <option value="search_in_folder_to_put">Искать совпадения только в разделе где идет размещение</option> <option value="search_everywhere">Искать совпадения везде (во всех разделах)</option> <option value="no_search">Не искать совпадения</option> </select> <br><br> <label>Проценты к цене (отрицательное значение - минус проценты):<br><input type="text" name="percent" style="width:100%" value="-3"></label><br><br> <button>Начать парсинг</button> </form> </div> </div> <script> <?php echo $catalog; ?> //var tt = document.write(JSON.stringify(goodsCatalog)); //document.write('cat:' + tt + "\n\n\n"); //alert(tt); PasingStarted = false; $(function () { prepCat(goodsCatalog); $('#positions_cid').jstree({ 'core': { "multiple": false, 'data': [goodsCatalog] } }); $('#positions_cid') // listen for event .on('changed.jstree', function (e, data) { if (!PasingStarted) { var text = data.instance.get_node(data.selected[0]).text; var catName = text.match(/^(.+), id:/); var cid = text.match(/id:(.+)$/); var modCatName = catName[1].replace(/<i.+i>/, ''); $("input[name=cat_name]").val(modCatName); $("input[name=cid]").val(cid[1]); } }); /*$("#parse_brands_check").click(function (e) { //e.preventDefault(); setBrandsAttrs(); //return false; }); if ($.cookie('use_brands_page') == 'yes') { $("#parse_brands_check").prop("checked", true); } else { $("#parse_brands_check").prop("checked", false); } setBrandsAttrs();*/ /*var site = $.cookie('site'); if (site) { $('[name="site"] [value="' + site + '"]').prop('selected', true); } $('[name="site"]').click(function () { var cookieOptions = {expires: 70, path: '/'}; $.cookie('site', $(this).val(), cookieOptions); });*/ }); /*function setBrandsAttrs() { var cookieOptions = {expires: 70, path: '/'}; if ($("#parse_brands_check").prop("checked")) { $("#parse_brands_label").text('Url донора (со списком брендов):'); $.cookie('use_brands_page', 'yes', cookieOptions); } else { $("#parse_brands_label").text('Url донора (первая страница):'); $.cookie('use_brands_page', 'no', cookieOptions); } }*/ var prepCatCount = 0; function prepCat(elem) { elem.text = elem.data + ", id:" + elem.attributes.id; //if (prepCatCount++ < 3) { if (elem.data == 'Решения' || elem.data == 'Каталог товаров на сайте' || elem.data == 'Насосы водяные') { elem.state = {opened: true}; } if (elem.children) { for (var key in elem.children) { prepCat(elem.children[key]); } } } $('#parse_form').submit(function (e) { e.preventDefault(); $.post('parse.morena.ru.php', $(this).serialize(), function (data) { PasingStarted = true; alert(data); $("#start-panel-wrapper :input").attr("disabled", true); }).error(function () { alert('Произошла ошибка!'); }); return false; }); </script> </body> </html>