((с|C)пасибо|благодарю)
Код
$response=getRandomLine(spasibo);
say($response, 1);
$muz=playSound(xor_pes);
|
(start|play) music
Код
runScript('playFavoriteMusic');
|
(В|в)ключи|(П|п)оставь|(У|у)станови|(С|с)делай|(З|з)апус(ти|кай)
Код
say('Что включить? Радио? Свет? Люстру? Телевизор?',1);
|
(б|Б)удильник детский сад на (\d+)(\s*)(часов|:)*(\s*)(\d*)
Код
$h=$matches[2];
$m=$matches[6];
$hh=$h;
if ($h<10) {$h="0".$h;}
if ($h>24) {
sayTo('Непонятно на который час завести будильник, определитесь и сообщите снова.',5);
return;
}
if (($m>59)|(!$m)) {
sayTo('Непонятно на сколько минут завести будильник, поэтому пусть будет ровно 00.',5);
$m="00";
}
sayTo("Ставлю будильник на ".$h." часов ".$m." минут. Постарайтесь не проспать.",5);
setGlobal('AlarmKindergarten.AlarmOn',1);
setGlobal('AlarmKindergarten.AlarmTime',$h.':'.$m);
|
(б|Б)удильник на (\d+)(\s*)(часов|:)*(\s*)(\d*)
Код
$h=$matches[2];
$m=$matches[6];
$hh=$h;
if ($h<10) {$h="0".$h;}
if ($h>24) {
sayTo('Непонятно на который час завести будильник, определитесь и сообщите снова.',5);
return;
}
if (($m>59)|(!$m)) {
sayTo('Непонятно на сколько минут завести будильник, поэтому пусть будет ровно 00.',5);
$m="00";
}
sayTo("Ставлю будильник на ".$h." часов ".$m." минут. Постарайтесь не проспать.",5);
setGlobal('AlarmOne.AlarmOn',1);
setGlobal('AlarmOne.AlarmTime',$h.':'.$m);
|
(В|в)ыходной будильник
Код
setGlobal('AlarmWeekEnd.AlarmOn',1);
sayTo('Включаю будильник',1);
|
(Г|г)ромкость|(З|з)вук
|
радио на (.+)
Код
cm('RadioSetting.Control',array('vol'=>$matches[1]));
|
|
(К|к)анал
|
НТВ
Код
say("Где включить? на кухни, в комнате?");
|
|
СТС
|
|
|
(Л|л)юстру
Код
say("В каком помещении, включить люстру? В комнате, на кухне, в коридоре?",2);
|
((Н|н)а|(В|в)) кухн(и|е|ю)
|
(В|в) комнате
Код
say("Какой из вариантов люстры включить? Подсветка, большой свет, малый свет, весь свет?",2);
|
(Б|б)ольшой свет
|
(М|м)алый свет
|
(П|п)одсветк(а|у)
|
|
(В|в) коридоре
|
|
(М|м)узыку
Код
runScript("playFavoriteMusic");
|
(Н|н)оутбук
|
(Н|н)очной режим
Код
callMethod('NightMode.activate');
|
(П|п)ылесос|(Ч|ч)истюл(ю|я|и)
|
(Р|р)абочий (б|Б)удильник
Код
setGlobal('AlarmWeekDay.AlarmOn',1);
|
на (\d+)(\s*)(часов|:)*(\s*)(\d*)
Код
$h=$matches[1];
$m=$matches[5];
$hh=$h;
if ($h<10) {$h="0".$h;}
if ($h>24) {
sayTo('Непонятно на который час завести будильник, определитесь и сообщите снова.',5);
return;
}
if (($m>59)|(!$m)) {
sayTo('Непонятно на сколько минут завести будильник, поэтому пусть будет ровно 00.',5);
$m="00";
}
sayTo("Ставлю будильник на ".$h." часов ".$m." минут. Постарайтесь не проспать.",5);
setGlobal('AlarmWeekDay.AlarmOn',1);
setGlobal('AlarmWeekDay.AlarmTime',$h.':'.$m);
|
|
(Р|р)адио|(С|с)танцию
Код
callMethod('Terminal01'.'.'.'turnOn');
|
((Р|р)елакс|(R|r)elax)
|
(В|в) спальне
Код
$ter="Terminal02";
runScript('RelaxFM',array('ip'=>gg($ter.".IP"),
'art'=>"$ter.ArtURL",
'term'=>"$ter"));
|
(Н|н)а кухн(и|е|ю)
Код
$ter="Terminal06";
runScript('RelaxFM',array('ip'=>gg($ter.".IP"),
'art'=>"$ter.ArtURL",
'term'=>"$ter"));
|
|
(А|а)вторадио
|
(В|в) спальне
Код
$ter="Terminal02";
runScript('Авторадио',array('ip'=>gg($ter.".IP"),
'art'=>"$ter.ArtURL",
'term'=>"$ter"));
|
(Н|н)а кухн(и|е|ю)
Код
$ter="Terminal01";
runScript('Авторадио',array('ip'=>gg($ter.".IP"),
'art'=>"$ter.ArtURL",
'term'=>"$ter"));
|
|
(В|в) ванной
Код
callMethod('Terminal04.Play');
|
(В|в) детской
Код
callMethod('Terminal03.Play');
|
(В|в) спальне
Код
callMethod('Terminal02.Play');
|
(Г|г)ром(че|ко)
|
(Д|д)искотека СССР
|
(В|в) спальне
Код
$ter="Terminal02";
runScript('DiskoSSSR',array('ip'=>gg($ter.".IP"),
'art'=>"$ter.ArtURL",
'term'=>"$ter"));
|
(Н|н)а кухн(и|е|ю)
Код
$ter="Terminal01";
runScript('DiskoSSSR',array('ip'=>gg($ter.".IP"),
'art'=>"$ter.ArtURL",
'term'=>"$ter"));
|
|
(Е|е)вропа (П|п)люс
|
(В|в) спальне
Код
$ter="Terminal02";
runScript('Европа Плюс',array('ip'=>gg($ter.".IP"),
'art'=>"$ter.ArtURL",
'term'=>"$ter"));
|
(Н|н)а кухн(и|е|ю)
Код
$ter="Terminal01";
runScript('Европа Плюс',array('ip'=>gg($ter.".IP"),
'art'=>"$ter.ArtURL",
'term'=>"$ter"));
|
|
(К|к)амеди
|
(В|в) спальне
Код
$ter="Terminal02";
runScript('Comedy',array('ip'=>gg($ter.".IP"),
'art'=>"$ter.ArtURL",
'term'=>"$ter"));
|
(Н|н)а кухн(и|е|ю)
Код
$ter="Terminal01";
runScript('Comedy',array('ip'=>gg($ter.".IP"),
'art'=>"$ter.ArtURL",
'term'=>"$ter"));
|
|
(К|к)олыбельная
|
(В|в) спальне
Код
$ter="Terminal02";
runScript('Колыбельная',array('ip'=>gg($ter.".IP"),
'art'=>"$ter.ArtURL",
'term'=>"$ter"));
|
(Н|н)а кухн(и|е|ю)
Код
$ter="Terminal01";
runScript('Колыбельная',array('ip'=>gg($ter.".IP"),
'art'=>"$ter.ArtURL",
'term'=>"$ter"));
|
|
(Н|н)а кухн(и|е|ю)
Код
callMethod('Terminal01.Play');
|
(Н|н)овый (Г|г)од
|
(П|п)ауз(а|у)
|
(Р|р)усское
|
(Т|т)и(ше|хо)
|
(Ш|ш)ансон
|
(В|в) спальне
Код
$ter="Terminal02";
runScript('Shanson',array('ip'=>gg($ter.".IP"),
'art'=>"$ter.ArtURL",
'term'=>"$ter"));
|
(Н|н)а кухн(и|е|ю)
Код
$ter="Terminal01";
runScript('Shanson',array('ip'=>gg($ter.".IP"),
'art'=>"$ter.ArtURL",
'term'=>"$ter"));
|
|
(Ю|ю)мор ФМ|(Ю|ю)мор FM|(Ю|ю)мор
|
(В|в) спальне
Код
$ter="Terminal02";
runScript('Юмор FM',array('ip'=>gg($ter.".IP"),
'art'=>"$ter.ArtURL",
'term'=>"$ter"));
|
(Н|н)а кухн(и|е|ю)
Код
$ter="Terminal01";
runScript('Юмор FM',array('ip'=>gg($ter.".IP"),
'art'=>"$ter.ArtURL",
'term'=>"$ter"));
|
|
Восток
|
(В|в) спальне
Код
$ter="Terminal02";
runScript('Vostok',array('ip'=>gg($ter.".IP"),
'art'=>"$ter.ArtURL",
'term'=>"$ter"));
|
(Н|н)а кухн(и|е|ю)
Код
$ter="Terminal01";
runScript('Vostok',array('ip'=>gg($ter.".IP"),
'art'=>"$ter.ArtURL",
'term'=>"$ter"));
|
|
Детское
|
(В|в) спальне
Код
$ter="Terminal02";
runScript('Детское радио',array('ip'=>gg($ter.".IP"),
'art'=>"$ter.ArtURL",
'term'=>"$ter"));
|
(Н|н)а кухн(и|е|ю)
Код
$ter="Terminal01";
runScript('Детское радио',array('ip'=>gg($ter.".IP"),
'art'=>"$ter.ArtURL",
'term'=>"$ter"));
|
|
|
(С|с)вет
Код
say("Где включить свет?",2);
|
|
(Т|т)елевизор
|
|
(Ш|ш)кольный (б|Б)удильник на (\d+)(\s*)(часов|:)*(\s*)(\d*)
Код
$h=$matches[3];
$m=$matches[7];
$hh=$h;
if ($h<10) {$h="0".$h;}
if ($h>24) {
sayTo('Непонятно на который час завести будильник, определитесь и сообщите снова.',5);
return;
}
if (($m>59)|(!$m)) {
sayTo('Непонятно на сколько минут завести будильник, поэтому пусть будет ровно 00.',5);
$m="00";
}
sayTo("Ставлю будильник на ".$h." часов ".$m." минут. Постарайтесь не проспать.",5);
setGlobal('AlarmSchool.AlarmOn',1);
setGlobal('AlarmSchool.AlarmTime',$h.':'.$m);
|
|
(В|в)ыключи
|
(Б|б)удильник детский сад
Код
setGlobal('AlarmKindergarten.AlarmOn',0);
say('Будильник выключен',1);
|
(В|в)ыходной будильник
Код
setGlobal('AlarmWeekEnd.AlarmOn',0);
say('Будильник выключен',1);
|
(Г|г)ромкость|(З|з)вук
|
|
(Л|л)юстру
|
|
(О|о)дноразовый будильник
Код
setGlobal('AlarmOne.AlarmOn',0);
say('Будильник выключен',1);
|
(Р|р)абочий будильник
Код
setGlobal('AlarmWeekDay.AlarmOn',0);
say('Будильник выключен',1);
|
(Р|р)адио
|
(В|в) спальне
Код
callMethod('Terminal02.Stop');
|
(Н|н)а кухн(и|е)
Код
callMethod('Terminal01.Stop');
|
|
(Т|т)елевизор
|
|
(Ш|ш)кольный будильник
Код
setGlobal('AlarmSchool.AlarmOn',0);
say('Будильник выключен',1);
|
Музыку
|
|
(З|з)ови
|
|
(Л|л)уна
Код
say("Лунный день: ".getGlobal("ThisComputer.MoonAge").". ". "Фаза: ".getGlobal("ThisComputer.MoonPhaseName"),2);
|
(Н|н)азад|(П|п)редидущий трек|(П|п)редидущий
|
(Н|н)айди
Код
runScript('kinopoisk', array('kino'=>$matches[2]));
|
|
(н|Н)айди в (В|в)икипедии (.+)
Код
setGlobal('WIKIsearch.Query',$matches[3]);
runScript('WIKIsearch',$matches[3]);
|
(Н|н)апиши
|
в Телеграм|в Telegram
|
(c|С)вете (.+)
Код
include_once(DIR_MODULES . 'telegram/telegram.class.php');
$telegram_module = new telegram();
$telegram_module->sendMessageToUser(301214520, "$text $matches[2]");
|
(Н|н)асте (.+)
Код
include_once(DIR_MODULES . 'telegram/telegram.class.php');
$telegram_module = new telegram();
$telegram_module->sendMessageToUser(-232007555, "$text $matches[2]");
|
|
|
(Н|н)апиши (c|С)вете (.+)
Код
include_once(DIR_MODULES . 'telegram/telegram.class.php');
$telegram_module = new telegram();
$telegram_module->sendMessageToUser(301214520, "$text $matches[3]");
|
(най(ти|ди))(.*)((телефон)|(iphone))(\s*)(.*)
Код
$to=$matches[8];
$what='iPhone';
$msg='Это Алиса, похоже я его нашла!';
runScript('send_mes', array('to'=>$to,'msg'=>$msg,'what'=>$what));
|
(П|п)ерезагрузи систему
Код
$cmd = 'sudo reboot';
exec($cmd,$out);
|
(П|п)ылесос|(Ч|ч)истюл(ю|я|и)
|
(Р|р)асскажи|(С|с)кажи|(К|к)ак(ой|ая)|Сколько
|
(а|А)некдот
Код
global $voicemode;
$voicemode='on';
sayTo(gg('Anekdot.Anekdot'),5);
|
(И|и)сторию
Код
global $voicemode;
$voicemode='on';
say(gg('Anekdot.Phistory'),5);
|
(О|о) погоде|пого(ду|да)
Код
$status="";
$status.="Сегодня ".gg("ow_fact.weather_type").".";
say($status,1);
$status="";
$w=round(gg("ow_fact.temperature1"));
$tempw=$w;
if($tempw >= 11 and $tempw <= 14){
$tempcels=" градусов ";
}
else{
while ($tempw > 9){
$tempw=$tempw-10;
}
if($tempw == 0 or $tempw >= 5 and $tempw <= 9){
$tempcels= градусов ; }
if($tempw == 1){
$tempcels= градус ; }
if($tempw >= 2 and $tempw <= 4){
$tempcels= градуса ; }
}
$tNew = abs((float)getGlobal('ow_fact.temperature1'));
$status.=' Температура '.getGlobal('ow_fact.temperature1')." ".$tempcels." цельсия";
say($status,1);
$tempw="";
$tempcels="";
$status="";
$h=round(gg("ow_fact.humidity"));
$tempw=$h;
if($tempw >= 11 and $tempw <= 14){
$tempcels=" процентов ";
}
else{
while ($tempw > 9){
$tempw=$tempw-10;
}
if($tempw == 0 or $tempw >= 5 and $tempw <= 9){
$tempcels= процентов ; }
if($tempw == 1){
$tempcels= процент ; }
if($tempw >= 2 and $tempw <= 4){
$tempcels= процента ; }
}
$status.="Относительная влажность ".gg("ow_fact.humidity")." ".$tempcels. ".";
say($status,1);
$tempw="";
$tempcels="";
$status="";
$pressure=(float)gg("ow_fact.pressure_mmhg");
if ($pressure<728) {
$status.=' Атмосферное давление пониженное';
} elseif ($pressure>768) {
$status.=' Атмосферное давление повышенное.';
} else {
$status.=' Атмосферное давление нормальное.';
}
say($status,1);
$status="";
//ветер
$WindSpeed=(float)gg("ow_fact.wind_speed");
if ($WindSpeed<1) {
$status.=' Ветра нет.';
} elseif ($WindSpeed<3) {
$status.=' Ветер слабый.';
} elseif ($WindSpeed<6) {
$status.=' Ветер сильный.';
} elseif ($WindSpeed<9) {
$status.=' Ветер очень сильный.';
} else {
$status.=' Ветер очень! Очень сильный.';
}
say($status,1);
|
время|часов|времени
|
день недели|сегодня день недели
Код
$days=array('воскресенье','понедельник','вторник','среда','четверг','пятница','суббота');
$day_num=(int)date('w');
$day_of_week=$days[$day_num];
say("Сегодня - ".$day_of_week, 1);
|
курс валют|курс
Код
say(
"Доллар: ".str_replace(".", ",", gg("cbr.USD")).
". Евро: ".str_replace(".", ",",gg("cbr.EURO"))
,2);
|
новости
Код
global $voicemode;
$voicemode='on';
callMethod('ThisNews.ReadNewN');
|
о (п|П)робк(ах|и)|(п|П)робк(ах|и)
Код
CallMethod('yt_settings.update');// принудительное обновление пробок.
runscript ("mute on");// отключает звук телевизора.
$traffic_jam.="Пробки на дороге, ".getGlobal('yt_info.level')." Баллов, ".getGlobal('yt_info.val');
say($traffic_jam,2); //проговаривает пробки.
sleep(25);// время отключения звука телевизора.
runscript ("mute off");// вкл. звук телевизора.
|
|
(Ч|ч)то такое (.+)
Код
//устанавливаем кодировки
header("Content-type: text/html;charset=utf-8");
mb_internal_encoding("UTF-8");
$word = $request = $matches[2]; //получаем искомое слово
$space_replace = preg_match_all("#\s#isu", $request, $s); //проверяем, есть ли пробелы в запросе
if ($space_replace === 1) { //если есть
$request = preg_replace("#\s#", '_', $request); //меняем их на _
}
$url = 'https://ru.wikipedia.org/w/api.php?action=opensearch&search='.$request.'&format=xml'; //формируем запрос
$ch = curl_init(); //инициируем curl
curl_setopt($ch, CURLOPT_URL, $url); //передаем url
curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE); //возвращаем результат в виде строки
curl_setopt($ch, CURLOPT_USERAGENT, 'MyBot/1.0 (http://www.mysite.com/)'); //имитируем браузер
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); //отключаем проверку ssl-сертификата узла
$result = curl_exec($ch); //выполяем curl
$data = fopen('test.xml', 'w'); //открываем файл для записи
fputs($data, $result); //записываем результат выполнения
fclose($data); //закрываем
$file = 'test.xml'; //указываем файл
$data_xml = simplexml_load_file($file); //загружаем его и раскладываем на массив
$text = $text1 = $data_xml->Section[0]->Item[0]->Text[0]; //получаем первый найденный вариант
$description = $data_xml->Section[0]->Item[0]->Description[0]; //получаем определение слова
$description = mb_convert_encoding($description, 'UTF-8', 'UTF-8'); //конвертируем utf-8 без bom в простой utf-8
if (empty($description)) { //если ничего не нашлось
say ("Я не знаю такого слова",1);
} elseif (!empty($description)) { //иначе
$text = preg_replace("#ё#", 'е', $text); //меняем "ё" на "е"
$text = mb_strtolower($text, 'utf-8'); //меняем регистр всех букв на нижний
if ($word === $text) { //если первый результат равен введенному слову
function utf8_str_split($str) {
// переводим каждый символ в массив строк
$split=1;
$array = array();
for ( $i=0; $i < strlen( $str ); ){
$value = ord($str[$i]); //возвращаем ASCII-код сиволов и проверяем их на корректность
if($value > 127){
if($value >= 192 && $value <= 223)
$split=2;
elseif($value >= 224 && $value <= 239)
$split=3;
elseif($value >= 240 && $value <= 247)
$split=4;
}else{
$split=1;
}
$key = NULL;
for ( $j = 0; $j < $split; $j++, $i++ ) {
$key .= $str[$i];
}
array_push( $array, $key );
}
return $array;
}
/**
* Функция вырезки
* @param $str
* @return
*/
function clearstr($str){
$sru = 'ёйцукенгшщзхъфывапролджэячсмитьбю';
$s1 = array_merge(utf8_str_split($sru), utf8_str_split(strtoupper($sru)), range('A', 'Z'), range('a','z'), range('0', '9'), array('&',' ','#',';','%','?',':','(',')','-','_','=','+','[',']',',','.','/','\\'));
$codes = array();
for ($i=0; $iSection[0]->Item[1]->Text[0]; //получаем второе совпадение
$text3 = $data_xml->Section[0]->Item[2]->Text[0]; //получаем третье совпадение
$say = "По Вашему запросу совпадений не найдено. Похожие результаты: ";
//$say.=$text1 .", " .$text2 ." и " .$text3 .".";
$say.=$text1; //первый похожий резальтат
if ($text2 ==='') { //если во втором результате пусто
$say.="."; //ставим точку
} else { //иначе
$say.= ", " .$text2; //ставим запятую и дописываем второй вариант
if ($text3 === '') { //если в третьем результате пусто
$say.="."; //ставим точку
} else { //иначе
$say.=" и " .$text3; //ставим запятую и дописываем третий вариант
}
}
sayReply($say,2);
}
}
|
report system state
|
вкл
Код
setGlobal("Socket2.status", 1);
callMethod("Socket2.refresh");
|
Восстанов(и|ить) звук
|
где сейчас|где
Код
say('Место положение кого именно интересует? Хотя пока я знаю только о Александр, Светлане, Насте, Валере!',1);
setTimeOut("answer_","runScript('AutoRemoteMessage');",3);
|
Александр|Саша
Код
if (time()-gg('Aleksandr.CoordinatesUpdatedTimestamp')>2*60*60) {
say("Извините, координаты устарели. Последне место нахождения Александра - ".gg('Aleksandr.Location'),2);
} elseif (gg('Aleksandr.seenAt')!='') {
say("Александра сейчас - ".gg('Aleksandr.seenAt'),2);
} else {
say("Александра сейчас - ".gg('Aleksandr.Location'),2);
}
|
Анастасия|Настя
Код
if (time()-gg('Nastya.CoordinatesUpdatedTimestamp')>2*60*60) {
say("Извините, координаты устарели. Последне место нахождения Насти - ".gg('Nastya.Location'),2);
} elseif (gg('Nastya.seenAt')!='') {
say("Настя сейчас - ".gg('Nastya.seenAt'),2);
} else {
say("Настя сейчас - ".gg('Nastya.Location'),2);
}
|
Валерий|Валера
Код
if (time()-gg('Valera.CoordinatesUpdatedTimestamp')>2*60*60) {
say("Извините, координаты устарели. Последне место нахождения Валеры - ".gg('Valera.Location'),2);
} elseif (gg('Valera.seenAt')!='') {
say("Валера сейчас - ".gg('Valera.seenAt'),2);
} else {
say("Валера сейчас - ".gg('Valera.Location'),2);
}
|
Мама
Код
if (time()-gg('sveta_m.CoordinatesUpdatedTimestamp')>2*60*60) {
say("Извините, координаты устарели. Последне место нахождения Мамы - ".gg('sveta_m.Location'),2);
} elseif (gg('sveta_m.seenAt')!='') {
say("Мама сейчас - ".gg('sveta_m.seenAt'),2);
} else {
say("Мама сейчас - ".gg('sveta_m.Location'),2);
}
|
Светлана|Света
Код
if (time()-gg('Svetlana.CoordinatesUpdatedTimestamp')>2*60*60) {
say("Извините, координаты устарели. Последне место нахождения Светланы - ".gg('Svetlana.Location'),2);
} elseif (gg('Svetlana.seenAt')!='') {
say("Светлана сейчас - ".gg('Svetlana.seenAt') ,2);
} else {
say("Светлана сейчас - ".gg('Svetlana.Location') ,2);
}
|
|
говори|говори голосом|проснись
Код
global $voicemode;
$voicemode='on';
setGlobal('minMsgLevel',1);
say('Хорошо.');
|
давай приготовим (.+)
Код
/*
$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;
}
*/
require_once './lib/simple_html_dom.php';
$queryString = $matches[1];
$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']."";
$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."";
for ($i = 1; $i <= $count; $i++)
{
echo "Count member:".$i."";
$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 "Prepairing..";
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=' ';
$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;
}
|
Дальше|Следующий трек
|
Доброе утро
Код
say('Доброе утро!',1);
callMethod('NightMode.deactivate');
|
доклад
Код
$objects=SQLSelect("SELECT TITLE FROM objects"); // опрашивает все объекты со свойством AlertSay. Если свойство рано единице, то проговаривает свойство AkertToSay
$total=count($objects);
for($i=0;$i<$total;$i++) {
if (gg($objects[$i]['TITLE'].'.AlertSay')) {
say(gg($objects[$i]['TITLE'].'.AlertToSay'),1);
sg($objects[$i]['TITLE'].'.AlertSay',0);
}
}
// Доложить о состоянии
$details=array();
if (getGlobal("System.stateColor") != "green") {
$details[]="Обнаружена ошибка работы системы";
$details[]=getGlobal("System.stateDetails");
};
if (getGlobal("Communication.stateColor") != "green") {
$details[]="Обнаружена ошибка работы коммуникаций";
$details[]=getGlobal("Communication.stateDetails");
};
if (getGlobal("Security.stateColor") != "green") {
$details[]="Обнаружена ошибка безопасности";
$details[]=getGlobal("Security.stateDetails");
};
if (!$details) {
$details[]="Все системы функционируют без ошибок";
};
say (implode(". ",$details),1);
|
Луна
Код
say(
"Лунный день: ".getGlobal("Moon.Age").". ".
"Фаза: ".getGlobal("Moon.PhaseName").". ".
getGlobal("Moon.Stage")." ".getGlobal("Moon.Phase")."%"
);
|
молчи|помолчи|усни
Код
global $voicemode;
$voicemode='off';
setGlobal('minMsgLevel',2);
|
Привет
Код
|
Спокойной ночи
Код
say('Спокойной ночи!');
callMethod('NightMode.activate');
|
темпераура
Код
say("На улице по прогнозу " . gg("ow_fact.temperature") . "°C");
$num = round( gg("tsrearyard.temp") * 10) / 10;
sayReply("По датчику " . $num . "°C");
|
ты кто|кто ты
Код
$response=getRandomLine(ya);
say($response, 2);
|