((я|мы|хозя(.*)) (дом(.*)|здесь|приш(.*)))
Код
$url = getURL("http://dom.ebramar.pp.ua/objects/?object=NobodyHomeMode&op=m&m=deactivate");
$url = getURL("http://dom.ebramar.pp.ua/objects/?object=EconomMode&op=m&m=deactivate");
$url = getURL("http://dom.ebramar.pp.ua/objects/?object=SecurityArmedMode&op=m&m=deactivate");
sayto(getRandomLine('privet')." Скажите, если буду нужeн.",1);
|
((я|мы|хозя(.*)) сп(.*))
|
((я|мы|хозя(.*)) ухо(.*))
Код
$url = getURL("http://dom.ebramar.pp.ua/objects/?object=NobodyHomeMode&op=m&m=activate");
$url = getURL("http://dom.ebramar.pp.ua/objects/?object=EconomMode&op=m&m=activate");
$url = getURL("http://dom.ebramar.pp.ua/objects/?object=SecurityArmedMode&op=m&m=activate");
say(getRandomLine('poka')." Скажите, если буду нужeн.",1);
|
(^напомн(.*) через) (.+) (минуту|минуты|минут)(\s*)(.*)
Код
//
$d = $matches[3];
$t = $matches[4];
$m = $matches[6];
//
if (!check_for_number($d)) {
$ddd = explode(" ", $d);
$len = count($ddd);
$d = 0;
for ($j = 0; $j < $len; $j++) {
$n = text_to_number($ddd[$j]);
//if (!$n) {$n="0";}
if (check_for_number($n)) {
$d = $d + $n;
} else {
$d = $matches[3];
}
}
$d = (string)$d;
}
if (check_for_number($d)) {
if ((isset($m))&($m!="")) {
say(getRandomLine('ok')." Напомню через ".$d." ".$t,1);
setTimeOut('timer','say ("Меня просили, я напоминаю: '.$m.'",5);',$d*60);
} else {
say("А чего напомнить вы не сказали!?",1);
}
} else {
say("Не могу понять: ".$d." это сколько. Поставте задачу правильно!",1);
}
|
(где сейчас)|(где)
Код
//say ("Место положение кого именно интересует? Хотя пока я знаю только о Славе!",1);
//setTimeOut("answer_","runScript('AutoRemoteMessage');",3);
|
Гор
Код
if (time()-gg('GOR.CoordinatesUpdatedTimestamp')>2*60*60) {
say("Извините, координаты устарели. Последне место нахождения Гор - ".gg('GOR.seenAt'),1);
} elseif (gg('GOR.seenAt')!='') {
say("Место нахождения Гор - ".gg('GOR.seenAt'),1);
} else {
say("Место нахождения Гор - ".gg('GOR.Location'),1);
}
|
мама
Код
if (time()-gg('mama.CoordinatesUpdatedTimestamp')>2*60*60) {
say("Извините, координаты устарели. Последне место нахождения Наташи - ".gg('mama.seenAt'),1);
} elseif (gg('mama.seenAt')!='') {
say("Место нахождения Наташи - ".gg('mama.seenAt'),1);
} else {
say("Место нахождения Наташи - ".gg('mama.Location'),1);
}
|
Саша
Код
if (time()-gg('Sasha.CoordinatesUpdatedTimestamp')>2*60*60) {
say("Извините, координаты устарели. Последне место нахождения Саши - ".gg('Sasha.seenAt'),1);
} elseif (gg('Sasha.seenAt')!='') {
say("Место нахождения Саши - ".gg('Sasha.seenAt'),1);
} else {
say("Место нахождения Саши - ".gg('Sasha.Location'),1);
}
|
|
(Д|д)авай приготовим (.+)
Код
$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;
}
|
(з|З)аткнись
Код
say('ох, не угодил!',1);
setGlobal('ThisComputer.minMsgLevel', 3);
setGlobal('ThisComputer.volumeLevel', "0");
callMethod('ThisComputer.VolumeLevelChanged',array('VALUE'=>0));
//Отправим стикер
rs('SendSticker',array('Sticker'=>'Shhh'));
|
(Как дела|как дела|как у тебя дела|как твои дела|статус)
Код
rs(Diagnostics);
rs(reportStatus);
|
(поставь|установи|заведи) будильник на (.*) (часа|часов|час)(\s+)(.*)((\s+(.+)\s*(.*))|(ровно))
Код
$h=$matches[2];
if (!check_for_number($h)) {
$ddd = explode(" ", $h);
$len=count($ddd);
$h=0;
for($j=0;$j<$len;$j++) {
$n=text_to_number($ddd[$j]);
//if (!$n) {$n="0";}
if (check_for_number($n)) {$h=$h+$n;}
else {$h=$matches[2];}
}
$h=(string)$h;
}
if (strlen($h)<2) {$h="0".$h;}
$m=$matches[5];
if (!check_for_number($m)) {
$ddd = explode(" ", $m);
$len=count($ddd);
$m=0;
for($j=0;$j<$len;$j++) {
$n=text_to_number($ddd[$j]);
//if (!$n) {$n="0";}
if (check_for_number($n)) {$m=$m+$n;}
else {$m=$matches[5];}
}
$m=(string)$m;
}
if (($h>24)|(!check_for_number($h))) {
say("Что это ".$h." ".$matches[3].".? И который это час по вашему.? Определитесь и сообщите снова.",5);
context_clear();
clearTimeOut('user_'.context_getuser().'_contexttimeout');
return;
}
if (($m>59)|(!check_for_number($m))) {
say("Мне не понятно на сколько, в минутах, завести будильник, поэтому пусть будет ровно 00.",1);
$m="00";
}
if (!$m) {$m="00";}
if (($m<10)&($m!="00")) {$m="0".$m;}
say(getRandomLine('ok')." Ставлю будильник на время ".$h." ".$matches[3]." ".$m." ".$matches[8].$matches[10],1);
setGlobal('AlarmOne.once',1);
setGlobal('AlarmOne.days',1111111);
setGlobal('AlarmOne.AlarmOn',1);
setGlobal('AlarmOne.AlarmTime',$h.':'.$m);
context_clear();
clearTimeOut('user_'.context_getuser().'_contexttimeout');
|
(сколько времени|который час|сколько время)
Код
say(getRandomLine(says_time)." ".gg("ThisComputer.timeNow"),10);
|
(спасибо|благодарю)
Код
sayReply("Нет проблем",2);
|
[Зз]апиши ((через (\d+|один|одну|дв[ае]|три|четыре|пять|шесть|семь|восемь|девять) (часа|час|часов|минут|минуту|минуты|секунд|секунды|секунду))|в \d+:\d+|(завтра|послезавтра|сегодня|на завтра|на послезавтра) в \d+:\d+) (.+)
Код
$u=5;
$naptime = mb_strtolower($matches[1]);
$request = mb_strtolower($matches[6]);
$chislo = array('один'=> '1','одну'=> '1','два'=> '2','две'=> '2','три'=> '3','четыре'=> '4','пять'=> '5','шесть'=> '6','семь'=> '7','восемь'=> '8','девять'=> '9');
foreach($chislo as $key => $value) {$naptime =str_replace($key,$value,$naptime);}
if ($request!='') {
$su=0;
$naptime=str_replace(" на ", " ", $naptime);
if (stristr($naptime, "сегодня") != FALSE) {$naptime = str_replace("сегодня ", "", $naptime); $su=0;}
if (stristr($naptime, "послезавтра") != FALSE) {$naptime = str_replace("послезавтра ", "", $naptime); $su=2;}
if (stristr($naptime, "завтра") != FALSE) {$naptime = str_replace("завтра", "", $naptime); $su=1;}
$a=$su*86400+recognizeTime($naptime,$b);
if(time()<($a-30)){
$nday=date( "j" , $a);
$MonthNames=array("января", "февраля", "марта", "апреля", "мая", "июня", "июля", "августа", "сентября", "октября", "ноября", "декабря");
$nmes=date( "n" , $a)-1;
$nmonth=$MonthNames[$nmes];
$ntime=date( "H:i" , $a);
$chisl = array(1=> 'первое',2=> 'второе',3=> 'третье',4=> 'четвертое',5=> 'пятое',6=> 'шестое',7=> 'седьмое',8=> 'восьмое',9=> 'девятое',10=> 'десятое',11=> 'одиннадцатое',12=> 'двенадцатое',13=> 'тринадцатое',14=> 'четырнадцатое' ,15=> 'пятнадцатое',16=> 'шестнадцатое',17=> 'семнадцатое',18=> 'восемнадцатое',19=> 'девятнадцатое',20=> 'двадцатое',30=> 'тридцатое',21=> 'двадцать',31=> 'тридцать');
if ($nday<21||$nday==30) {$chtext=$chisl[$nday];} else {$chtext=$chisl[(int)($nday/10)*10+1].' '.$chisl[$nday % 10] ;}
AddScheduledJob($request,"playSound('opoveshenie.mp3'); say('Вы просили напомнить ".$request."',".$u.");",$a, 60);
say("Задание напомнить ".$request." установлено на ".$chtext." ".$nmonth." в ".$ntime,$u);}
else
{say("Назначить напоминание на заданное время невозможно!",$u);}}
else
{say("Непонятно, что напомнить?!",$u);}
|
Включи музыку
Код
runScript('playFavoriteMusic');
|
включи ночник
|
выключи кондиционер
Код
getURL('localhost/modules/dev_broadlink/command.php?command=Кондер вык');
|
выключи свет
|
большой
|
в коридоре
Код
brLinkCommand('koridorLedOff');
|
на кухне
|
у Гора
Код
$url = getURL("http://127.0.0.1/objects/?object=Relay23&op=m&m=turnOff");
|
|
день недели|какой сегодня день недели
Код
$days=array('воскресенье','понедельник','вторник','среда','четверг','пятница','суббота');
$day_num=(int)date('w');
$day_of_week=$days[$day_num];
say("Сегодня - ".$day_of_week,1);
|
жарко
Код
brLinkCommand('turboCool');
sayReply(getRandomLine('ok')."Сейчас станет прохладнее",2);
|
Звонок
Код
say("Кто то в дверь звонит.",20);
playSound('Door Bell ring Ding Dong - Sound Effect v1');
say("Кто то в дверь звонит.",20);
RunScriptSafe('trevogaLed');
|
Какой интернет
Код
say ('Про интернет к которому я подключена.');
$url="http://api.2ip.ua/provider.json";
//Работаем со строкой JSON
$data = json_decode(file_get_contents($url), true);
$ip=$data["ip"]; // что искали
$name_ripe=$data["name_ripe"];
$name_rus=$data["name_rus"];
$site=$data["site"];
echo $ip;
say ("IP адрес ".$ip,5);
say ("Провайдер ".$name_rus,5);
say ("Сайт провайдера ".$site,5);
$url2="http://api.2ip.ua/geo.json?ip=".$ip;
echo $url2;
//Работаем со строкой JSON
$data = json_decode(file_get_contents($url2), true);
$country_rus=$data["country_rus"]; // что искали
$region_rus=$data["region_rus"];
$city_rus=$data["city_rus"];
say ("Мое местонахождение по мнению других:",5);
say ($country_rus,5);
say ($region_rus,5);
say ($city_rus,5);
|
Кто дома
Код
$user=getObjectsByClass("Users");
$total=count($user);
for($i=0;$i<$total;$i++) {
$user[$i]['isHome']=getGlobal($user[$i]['TITLE'].'.isHome');
$user[$i]['user']=getGlobal($user[$i]['TITLE'].'.fullNAME');
if ($user[$i]['isHome']) {
$res_user[]=$user[$i]['user'];
}
}
if ($res_user){
$isHomeText="Сейчас дома: ".implode(", ",$res_user);
}else{
$isHomeText="Из тех, кого я знаю, здесь никого нет.";
}
say ($isHomeText,10);
|
луна
Код
say("Лунный день: ".getGlobal("ThisComputer.MoonAge").". ". "Фаза: ".getGlobal("ThisComputer.MoonPhaseName"),2);
|
Перегрузка сети220
Код
callMethod('Relay31.turnOff');
|
позови гора
Код
Say('Гор, Саша просит чтоб ты вышел на связь!',2);
|
Пока
|
Привет|Здравствуй
Код
if(timeBetween("05:00", "11:00")){
say("Доброе утро!",1);
}elseif(timeBetween("11:00", "17:00")){
say("Добрый день!",1);
}elseif(timeBetween("17:00", "23:00")){
say("Добрый вечер!",1);
}elseif(timeBetween("23:00", "05:00")){
say("Доброй ночи!",1);
}else{ // Новое, неизвестное время суток.
say('Привет!',1);
}
|
проветри комнату
Код
brLinkCommand('Кондер про');
|
работа стола
Код
callMethod("Relay27.turnOn");
$timerCode=<<
|
Разгрузка сети 220
Код
callMethod('Relay31.turnOn');
|
режим кино
Код
$objects=array('Switch1','Switch2','Switch3','Relay03');
foreach($objects as $o) {
callMethod($o.'.turnoff');
}
|
Свет
|
большой
|
в коридоре
Код
brLinkCommand('koridorLedOn');
|
на кухне
|
стало
Код
$url = getURL("http://192.168.0.200/objects/?object=Relay23&op=m&m=turnOn");
|
|
сколько будет (.*)
Код
$command=$matches[1];
$com=str_replace(',','.',$command);
$com=str_replace('один','1',$com);
$com=str_replace('два','2',$com);
$com=str_replace('три','3',$com);
$com=str_replace('x','*',$com);
$com=str_replace('х','*',$com);
$com=str_replace('делить на','/',$com);
$com=str_replace('разделить на','/',$com);
$com=str_replace('на','*',$com);
$com=str_replace('плюс','+',$com);
$com=str_replace('минус','-',$com);
$command=str_replace('x',' умножить на ',$command);
$command=str_replace('х',' умножить на ',$command);
//$command=str_replace('+',' плюс ',$command);
$command=str_replace('/',' делить на ',$command);
$command=str_replace('-',' минус ',$command);
$com='$result=' . $com .';';
eval($com);
$result = round($result,2);
say($command . ' равно ' . $result,2);
|
Сон
|
Список команд
Код
sayReply ("Вы просили помочь",5);
$actions=$this->getAvailableActions();
$total=count($actions);
for($i=0;$i<$total;$i++) {
sayReply($actions[$i],5);
}
|
холодно
Код
brLinkCommand('condH');
sayReply(getRandomLine('ok')."Сейчас станет теплее",2);
|
Чёрный режим
|
что с погодой|что на улице|какая погода|сколько на улице
Код
$status="";
$status.="Сегодня ".gg("ow_forecast_2.weather_type").".";
say($status,2);
$status="";
$w=round(gg("ow_forecast_2.temperature"));
$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_forecast_2.temperature'));
$status.=' Температура '.getGlobal('ow_forecast_2.temperature')." ".$tempcels." цельсия";
say($status,2);
$tempw="";
$tempcels="";
$status="";
$h=round(gg("ow_forecast_2.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_forecast_2.humidity")." ".$tempcels. ".";
say($status,2);
$tempw="";
$tempcels="";
$status="";
$pressure=(float)gg("ow_forecast_2.pressure_mmhg");
if ($pressure<728) {
$status.=' Атмосферное давление пониженное';
} elseif ($pressure>768) {
$status.=' Атмосферное давление повышенное.';
} else {
$status.=' Атмосферное давление нормальное.';
}
say($status,2);
$status="";
//ветер
$WindSpeed=(float)gg("ow_forecast_2.wind_speed");
if ($WindSpeed<1) {
$status.=' Ветра нет.';
} elseif ($WindSpeed<3) {
$status.=' Ветер слабый.';
} elseif ($WindSpeed<6) {
$status.=' Ветер сильный.';
} elseif ($WindSpeed<9) {
$status.=' Ветер очень сильный.';
} else {
$status.=' Ветер очень! Очень сильный.';
}
say($status,2);
|
что такое (.zapros)
Код
$zap=$params['zapros']; //$zap='Дед Мороз';
say('Запрашиваю у Wikipedia информацию о '.$zap);
$zapurl=urlencode($zap);
$url='http://ru.wikipedia.org/w/api.php?action=opensearch&search='.$zapurl.'&prop=info&format=xml&inprop=url';
$answ=file_get_contents($url);
$xml = simplexml_load_string($answ);
$otvet=$xml->Section->Item->Description;
//echo $otvet;
//избавимся от ударений
$otvet=iconv("UTF-8","CP1251//IGNORE",$otvet);
$otvet=iconv("CP1251","UTF-8",$otvet);
$otvet = preg_replace("#\s\(.*?\)#isu", '', $otvet);
echo( $otvet);
say($otvet,2);
|