Кулинария

Всё, что не подходит под вышеперечисленные разделы

Модератор: immortal

server
Сообщения: 47
Зарегистрирован: Ср окт 12, 2016 11:21 pm
Благодарил (а): 18 раз
Поблагодарили: 7 раз

Re: Кулинария

Сообщение server » Ср ноя 02, 2016 12:16 am

А шаблон работает сейчас?
А то у меня все время
23:14 Admin: давай приготовим хлеб
23:14 Алиса: Ничего не найдено.
Dark_Veter
Сообщения: 295
Зарегистрирован: Вт апр 23, 2013 5:16 pm
Откуда: Брянск
Благодарил (а): 18 раз
Поблагодарили: 94 раза

Re: Кулинария

Сообщение Dark_Veter » Ср ноя 02, 2016 11:33 am

Наверное уже не работает. Сайт с которого брались рецепты поменяли.
Debian GNU/Linux 7.9 (wheezy), версия 0.9.0b, Connect
arivano
Сообщения: 19
Зарегистрирован: Пт авг 05, 2016 5:13 pm
Благодарил (а): 5 раз
Поблагодарили: 1 раз

Re: Кулинария

Сообщение arivano » Вт дек 13, 2016 11:56 am

Dark_Veter писал(а):Наверное уже не работает. Сайт с которого брались рецепты поменяли.
Эх, очень жаль. Как раз только попался на глаза этот скрипт в коннекте, хотел свою хозяйку порадовать.
За это сообщение автора arivano поблагодарил:
lysyy (Пн окт 23, 2017 8:50 pm)
Рейтинг: 1.16%
lysyy
Сообщения: 113
Зарегистрирован: Вт июн 09, 2015 9:41 pm
Откуда: Moscow
Благодарил (а): 15 раз
Поблагодарили: 9 раз

Re: Кулинария

Сообщение lysyy » Пн окт 23, 2017 8:50 pm

Ловите коллеги, переделал под новый сайт.
Вывод оставил прежним, он нифига не удобный, надо бы запоминалку и базу с рецептами локальную прикрутить.
кладем в /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;
}
 
 
Molostov
Сообщения: 50
Зарегистрирован: Пт янв 17, 2014 1:47 am
Откуда: Карпинск, Свердловская область
Благодарил (а): 135 раз
Поблагодарили: 12 раз

Re: Кулинария

Сообщение Molostov » Чт окт 26, 2017 10:28 pm

lysyy писал(а):Ловите коллеги, переделал под новый сайт
 [/code]
А почему с этим кодом Алиса рецепты с пивом выдаёт ? ;)
3 строка кода не лишняя?
За это сообщение автора Molostov поблагодарил:
Rus9393 (Пт окт 27, 2017 11:18 am)
Рейтинг: 1.16%
vitosmaxim
Сообщения: 18
Зарегистрирован: Вт фев 28, 2017 12:56 pm
Благодарил (а): 12 раз
Поблагодарили: 0

Re: Кулинария

Сообщение vitosmaxim » Ср мар 07, 2018 10:25 pm

я почему то думал что ты спрашиваеш приготовим хлеб и она расказует рецепт на хлеб ,а она читает случайный рецепт . Это как сюрприз для повара
2007-i
Сообщения: 55
Зарегистрирован: Вс янв 29, 2017 12:52 am
Откуда: Уфа
Благодарил (а): 5 раз
Поблагодарили: 1 раз

Re: Кулинария

Сообщение 2007-i » Чт мар 07, 2019 5:26 pm

Получается не будет работать шаблон?
А если его сделать на подобии шаблона Вики, что бы с сайта кулинарного брал рецепты как шаблон с Вики?
crazpit
Сообщения: 13
Зарегистрирован: Пт авг 30, 2019 5:17 pm
Благодарил (а): 0
Поблагодарили: 0

Re: Кулинария

Сообщение crazpit » Сб авг 31, 2019 12:48 am

Никак не могу заставить работать данный скрипт. Все время говорит, что "Я не знаю такого рецепта". В чем может быть проблема?
Ответить