Страница 3 из 3

Re: Кулинария

Добавлено: Ср ноя 02, 2016 12:16 am
server
А шаблон работает сейчас?
А то у меня все время
23:14 Admin: давай приготовим хлеб
23:14 Алиса: Ничего не найдено.

Re: Кулинария

Добавлено: Ср ноя 02, 2016 11:33 am
Dark_Veter
Наверное уже не работает. Сайт с которого брались рецепты поменяли.

Re: Кулинария

Добавлено: Вт дек 13, 2016 11:56 am
arivano
Dark_Veter писал(а):Наверное уже не работает. Сайт с которого брались рецепты поменяли.
Эх, очень жаль. Как раз только попался на глаза этот скрипт в коннекте, хотел свою хозяйку порадовать.

Re: Кулинария

Добавлено: Пн окт 23, 2017 8:50 pm
lysyy
Ловите коллеги, переделал под новый сайт.
Вывод оставил прежним, он нифига не удобный, надо бы запоминалку и базу с рецептами локальную прикрутить.
кладем в /lib файл simle_html_dom.php
он есть тут https://sourceforge.net/projects/simple ... mldom/1.5/

Код: Выделить всё

require_once './lib/simple_html_dom.php';

$queryString = $matches[2];
$queryString='пиво';

/*
  $findParams = array(
  'aerogrill' => '22', // Рецепты для аэрогриля
  'waffle' => '27', // Для вафельницы
  'yoghurt' => '28', // Для йогуртиницы
  'multivarka' => '25', //Рецепты для мультиварки
  'steamer' => '15', //Для пароварки
  'pressureCooker' => '46', //Для скороварки
  'breadMaker' => '23', //Для хлебопечки
  'fondue' => '24'  //Рецепты фондю
  );

 */
$findParams = array();

$recipeNumber = rand(0, 5);

$recipesList = findRecipes($queryString, $findParams);

if (!empty($recipesList)) {
    $recipe = getRecipes($recipesList[$recipeNumber]['link']);
 echo $recipesList[$recipeNumber]['text']."</br>";
    $recipe['link'] = $recipesList[$recipeNumber]['link'];
    $recipe['name'] = $recipesList[$recipeNumber]['text'];
    sayRecipe($recipe);
} else {
    say('Ничего не найдено.');
}

function OpenRecipeURL($link) {
    $rec=array();
    $rec['EVENT_TYPE']='openurl'; // команда может быть ещё newwindow
    $rec['WINDOW']='alice';
    $rec['TERMINAL_TO']='*'; //здесь можно конкретный терминал указать
    $rec['ADDED']=date('Y-m-d H:i:s');
    $rec['EXPIRE']=date('Y-m-d H:i:s', time()+10);
    $rec['DETAILS']=$link;
    $rec['ID']=SQLInsert('events', $rec); 
}

function sayRecipe($recipe) {
    OpenRecipeURL($recipe['link']);

    say($recipe['name']);

    if (!empty($recipe['description'])) {
        foreach ($recipe['description'] as $e) {
            say($e);
        }
    }

    $ingrstr = 'Нам понадобится: ';
    foreach ($recipe['ingredients'] as $e) {
        $ingrstr .= $e . ', ';
    }
    
    say($ingrstr);

    say('Способ приготовления:');

    foreach ($recipe['preparing'] as $e) {
        say($e);
    }
}

function getRecipes($recipeLink) {
    if (empty($recipeLink)) {
        return FALSE;
    }
$ingredients = array();
    $html = @file_get_html($recipeLink);
 //kolvo definition-list-table__td definition-list-table__td_value
 $ingredientsdom=($html->find(".definition-list-table__tr span span"));
 $ingskolvodom=($html->find(".definition-list-table__td_value"));
 //$ingredientsdom=($html->find("a"));
 $count=count($ingredientsdom);
 echo "Count=".$coun."</br>";
for ($i = 1; $i <= $count; $i++)
 {
  echo "</br>Count member:".$i."</br>";
 $ingr= $ingredientsdom[$i]->outertext;
 $ingrkolvo=$ingskolvodom[$i]->outertext;
 $ingredients[]=strip_tags($ingr." ".$ingrkolvo);
 var_dump($ingr);
 var_dump($ingrkolvo);
 }
 $description = array();
 $descriptiondom=($html->find(".content-box__content .plain-text p"));
 foreach($descriptiondom as $descdom)
 {$description[] = strip_tags($descdom->outertext);}
 
$preparing=array();
$preparingdom=$html->find(".js-mediator-article .plain-text");
 $i=0;
foreach($preparingdom as $prepdom)
{if($i>0) {$preparing[]=strip_tags($prepdom->outertext);}
 $i++;
}

 echo "</br>Prepairing..</br>";
 var_dump($preparing);
 
    $recipe = array(
        'description' => $description,
        'ingredients' => $ingredients,
        'preparing' => $preparing
    );

    return $recipe;
}

function findRecipes($queryString, $params) {
    if (empty($queryString)) {
        return FALSE;
    }
    $addurl="http://www.edimdoma.ru";
    $url = 'http://www.edimdoma.ru/search?utf8=%E2%9C%93&asset=recipes&index=title_search&query=' . urlencode($queryString) . '&search%5Bmain_category_id%5D=&search%5Bcuisine_id%5D=';

    if (!empty($params)) {
        foreach ($params as &$value) 
        {
            $url .= '&cooking_method_ids%5B%5D=' . $value;
        }
    }
$url .= '&user_name=';

$html = file_get_html($url);
//$articles=$html->find('main.card__content') ;
 $articles=$html->find('div.card__description') ;
$links = array();
    foreach ($articles as $container) {
     $linkss=array();
     $intext=$container->innertext;
     $sub='</div>';
     $text=strip_tags(substr($intext,0,strpos($intext,$sub)));


     preg_match_all('/href="([^"]+)"/', $intext, $linkss);
$href= str_replace('"','',$addurl .str_replace('href=','',$linkss[0][0]));
     $links[] = array(
                    'link' => $href,
                    'text' => $text
                );

    }//foreach ($articles as $container)
  
  unset($articles);
    return $links;
}
 
 

Re: Кулинария

Добавлено: Чт окт 26, 2017 10:28 pm
Molostov
lysyy писал(а):Ловите коллеги, переделал под новый сайт
 [/code]
А почему с этим кодом Алиса рецепты с пивом выдаёт ? ;)
3 строка кода не лишняя?

Re: Кулинария

Добавлено: Ср мар 07, 2018 10:25 pm
vitosmaxim
я почему то думал что ты спрашиваеш приготовим хлеб и она расказует рецепт на хлеб ,а она читает случайный рецепт . Это как сюрприз для повара

Re: Кулинария

Добавлено: Чт мар 07, 2019 5:26 pm
2007-i
Получается не будет работать шаблон?
А если его сделать на подобии шаблона Вики, что бы с сайта кулинарного брал рецепты как шаблон с Вики?

Re: Кулинария

Добавлено: Сб авг 31, 2019 12:48 am
crazpit
Никак не могу заставить работать данный скрипт. Все время говорит, что "Я не знаю такого рецепта". В чем может быть проблема?