(Д|д)авай приготовим (.+)
Код
$queryString = $matches[2];
/*
$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']);
$recipe['link'] = $recipesList[$recipeNumber]['link'];
$recipe['name'] = $recipesList[$recipeNumber]['text'];
sayRecipe($recipe);
} else {
say('Ничего не найдено.',2);
}
function sayRecipe($recipe) {
say($recipe['name'],2);
if (!empty($recipe['description'])) {
foreach ($recipe['description'] as $e) {
say($e,2);
}
}
$ingrstr = 'Нам понадобится: ';
foreach ($recipe['ingredients'] as $e) {
$ingrstr .= $e . ', ';
}
say($ingrstr,2);
say('Способ приготовления:');
foreach ($recipe['preparing'] as $e) {
say($e,2);
//registerError('my_debug', urlencode($e));
}
}
function getRecipes($recipeLink) {
if (empty($recipeLink)) {
return FALSE;
}
$html = @file_get_contents($recipeLink);
$doc = new DOMDocument();
@$doc->loadHTML($html);
$xpath = new DOMXpath($doc);
$ingredients = array();
$description = array();
$ingredientsDom = $xpath->query('//table[@class="rec-ingred-table"]/tr');
if ($ingredientsDom->length > 0) {
foreach ($ingredientsDom as $item) {
$ingredients[] = trim(preg_replace("/[\r\n]+/", " ", $item->nodeValue));
}
$descriptionDom = $xpath->query('//div[@class="b-page_block__outside"]/p');
foreach ($descriptionDom as $item) {
$description[] = trim(preg_replace("/[\r\n]+/", " ", $item->nodeValue));
}
} else {
$ingredientsDom = $xpath->query('//div[@class="b-page_block__outside"]/p');
foreach ($ingredientsDom as $item) {
$ingredients[] = trim(preg_replace("/[\r\n]+/", " ", $item->nodeValue));
}
}
$preparingDom = $xpath->query('//div[@class="b-list__clause__text"]/p');
$preparing = array();
foreach ($preparingDom as $item) {
$preparing[] = trim(preg_replace("/[\r\n]+/", " ", $item->nodeValue));
}
$recipe = array(
'description' => $description,
'ingredients' => $ingredients,
'preparing' => $preparing
);
return $recipe;
}
function findRecipes($queryString, $params) {
if (empty($queryString)) {
return FALSE;
}
$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_contents($url);
$doc = new DOMDocument();
@$doc->loadHTML($html);
$xpath = new DOMXpath($doc);
$articles = $xpath->query('//div[@class="b-page_block__header"]');
$links = array();
foreach ($articles as $container) {
$arr = $container->getElementsByTagName("a");
foreach ($arr as $item) {
if ($item->parentNode->tagName == "h2") {
$href = $item->getAttribute("href");
$text = trim(preg_replace("/[\r\n]+/", " ", $item->nodeValue));
$links[] = array(
'link' => $href,
'text' => $text
);
}
}
}
return $links;
}
|
(забей|Забей)
Код
context_clear();
clearTimeOut('user_'.context_getuser().'_contexttimeout');
say('Окей.');
|
(зажги|включи|включить|Зажги|Включи|Включить)
Код
say('Я не поняла. Что нужно включить?',1);
|
(ночник|Ночник|включи|Включи)
|
|
(освещение|свет|включить)
Код
|
в ванной
Код
getURL('http://192.168.0.121/command?5=ON', 0);
setGlobal('Bathroom.light', '1');
say('Освещение в ванной включено.',5);
|
в комнате
Код
getURL('http://192.168.0.121/command?4=ON', 0);
setGlobal('livingroom.light', '1');
say('Освещение в комнате включено.',5);
|
везде
|
на кухне
|
|
тепло
|
холод
|
|
(запомни|Запомни) (.+)
Код
$text = $matches[1];
$filename = "C:/_majordomo/htdocs/texts/memory.txt";
runScript("InFile",array("subject"=>"Текст:", "body"=>$text, "filename"=>$filename ));
say("Выполнено. Всё запомнила в файл.",2);
|
(н|Н)айди
|
в википедии (.+)
Код
setGlobal('WIKIsearch.Query',$matches[1]);
runScript('WIKIsearch',$matches[1]);
|
музыку (.+)
Код
runScript("VkMusic", array('VALUE'=>$matches[1], 'MODE'=>1, 'COUNT'=>'30'));
|
песню (.+)
Код
runScript("VkMusic", array('VALUE'=>$matches[1], 'MODE'=>1));
|
|
(останови|выключи) музыку
Код
getURL("http://localhost/rc/?command=vlc_pause",0);
say(LANG_DONE,1);
|
(погаси|выключи|выключить|Погаси|Выключи|Выключить)
Код
say('Я не поняла. Что нужно выключить?',1);
|
(ночник|Ночник|выключи|Выключи)
|
|
(освещение|свет|выключить)
Код
say('Где именно выключить?',1);
|
в ванной
|
в комнате
|
везде
|
на кухне
|
|
|
(помощь|помоги|список команд)
Код
say('Я хочу получить конкретную команду.');
$actions=$this->getAvailableActions();
$total=count($actions);
for($i=0;$i<$total;$i++) {
say($actions[$i],1);
}
|
(поставь|включи) музыку
Код
runScript('playFavoriteMusic');
|
(расскажи|прочитай|Расскажи|Прочитай)
|
(что запомнила|из файла|что помнишь)
Код
$arr = file("C:/_majordomo/htdocs/texts/memory.txt");
for($i = 0; $i < count($arr); $i++)
{
say($arr[$i],5);
}
|
|
(уровень|установить|установи|Уровень|Установить|Установи)
|
(поставь|установи) будильник на (\d+)(\s*)(часов|:)*(\s*)(\d*)
Код
$h=$matches[2];
$m=$matches[6];
if ($h>24) {
say("Непонятно на который час завести будильник, определитесь и сообщите снова.",5);
return;
}
if ($h=="") {
say("Непонятно на который час завести будильник, определитесь и сообщите снова.",5);
return;
}
if (($m>59)|(!$m)) {
say("Непонятно на сколько минут завести будильник, поэтому пусть будет ровно 00.",5);
$m="00";
}
say("Ставлю будильник на ".$h." часов ".$m." минут.",5);
setGlobal('Alarm00.AlarmStatus',1);
setGlobal('Alarm00.AlarmTime',$h.':'.$m);
|
|
задачи
|
Какая температура в доме
|
контакт
Код
runScript("VkMusic", array('VALUE'=>'Король и шут', 'MODE'=>2, 'COUNT'=>'10'));
|
обнови задачи
|
перезагрузить систему
|
погод(а|ы)
|
Сколько осталось воды
|
статус системы
|
сценарий (.+)
Код
say("Запускаю сценарий ".$matches[1]);
runScript($matches[1]);
|
Что такое (.+)
Код
say ("Вы спросили: \"что такое ".$matches[1]."\"");
setGlobal('WIKIsearch.Query',$matches[1]);
runScript('WIKIsearch',$matches[1]);
|