((И|и)гра(й|ть))|((П|п)ауза)|((С|с)топ)
|
((С|с)тарт|(И|и)грай) музык(у|и)
Код
runScript('playFavoriteMusic');
|
((Т|т)ы кто)|((К|к)ак тебя зовут)
Код
sayReply('Меня зовут Джарвис',5);
sayReply('А тебя?',5);
|
(В|в)ключ(и|ить) (У|у)влажнитель
Код
sg("Humidifier.status",1);
//$status=gg("Humidifier.status");
//if ($status==1) {
// sayReply("Увлажнитель уже включен",2);
//} else {
// callMethod("Humidifier.turnOn");
sayReply("Увлажнитель включен",2);
//}
|
(В|в)ключ(и|ить) свет
Код
sayReply("Включить где?",2);
|
((В|в) детск(ой|ую|ая))|((У|у) (Л|л)евы)
Код
sayReply("Какой свет?",2);
|
((Н|н)астольн(ую|ая|ой) ламп(у|а))|((Н|н)а столе)
Код
callMethod("Lamp2.turnOn");
//$status=gg("Lamp2.status");
//if ($status==1) {
// sayReply("Свет уже включен",2);
//} else {
// callMethod("Lamp2.turnOn");
// sayReply("Свет включен",2);
//}
|
(Л|л)юстр(а|у)
Код
callMethod("Lamp1.turnOn");
//$status=gg("Lamp1.status");
//if ($status==1) {
// sayReply("Свет уже включен",2);
//} else {
// callMethod("Lamp1.turnOn");
// sayReply("Свет включен",2);
//}
|
|
(В|в) гости(нн|н)ой
Код
sayReply("Какой свет?",2);
|
((Н|н)астольн(ую|ая|ой) ламп(у|а))|((Н|н)а столе)
Код
callMethod("Lamp3.turnOn");
//$status=gg("Lamp3.status");
//if ($status==1) {
// sayReply("Свет уже включен",2);
//} else {
// callMethod("Lamp3.turnOn");
// sayReply("Свет включен",2);
//}
|
(Л|л)юстр(а|у)
Код
sayReply("Поставь сначала выключатель, лентяй.",2);
|
|
(В|в) коридоре
Код
sayReply("Какой свет?",2);
|
(Н|н)а стене
Код
callMethod("TC2_11.turnOn");
//$status=gg("TC2_11.status");
//if ($status==1) {
// sayReply("Свет уже включен",2);
//} else {
// callMethod("TC2_11.turnOn");
// sayReply("Свет включен",2);
//}
|
(Н|н)а шкафу
Код
callMethod("TC2_12.turnOn");
//$status=gg("TC2_12.status");
//if ($status==1) {
// sayReply("Свет уже включен",2);
//} else {
// callMethod("TC2_12.turnOn");
// sayReply("Свет включен",2);
//}
|
|
|
(В|в)ыключ(и|ить) (У|у)влажнитель
Код
sg("Humidifier.status",0);
//$status=gg("Humidifier.status");
//if ($status==0) {
// sayReply("Увлажнитель уже выключен",2);
//} else {
// callMethod("Humidifier.turnOFF");
sayReply("Увлажнитель выключен",2);
//}
|
(В|в)ыключ(и|ить) свет
Код
sayReply("Что включить?",2);
|
((В|в) детск(ой|ую|ая))|((У|у) (Л|л)евы)
Код
sayReply("Какой свет?",2);
|
((В|в)с(е|ё))|((В|в)есь)
Код
callMethod("Lamp1.turnOFF");
callMethod("Lamp2.turnOFF");
sayReply("Выключено",2);
|
((Н|н)астольную лампу)|((Н|н)а столе)
Код
callMethod("Lamp2.turnOFF");
//$status=gg("Lamp2.status");
//if ($status==0) {
// sayReply("Свет уже выключен",2);
//} else {
// callMethod("Lamp2.turnOFF");
// sayReply("Свет выключен",2);
//}
|
(Л|л)юстр(а|у)
Код
callMethod("Lamp1.turnOFF");
//$status=gg("Lamp1.status");
//if ($status==0) {
// sayReply("Свет уже выключен",2);
//} else {
// callMethod("Lamp1.turnOFF");
// sayReply("Свет выключен",2);
//}
|
|
(В|в) гости(нн|н)ой
Код
sayReply("Какой свет?",2);
|
((Н|н)астольную лампу)|((Н|н)а столе)
Код
callMethod("Lamp3.turnOff");
//$status=gg("Lamp3.status");
//if ($status==0) {
// sayReply("Свет уже выключен",2);
//} else {
// callMethod("Lamp3.turnOff");
// sayReply("Свет выключен",2);
//}
|
(Л|л)юстр(а|у)
Код
sayReply("Поставь сначала выключатель, лентяй.",2);
|
|
(В|в) коридоре
Код
sayReply("Какой свет?",2);
|
((В|в)с(е|ё))|((В|в)есь)
Код
callMethod("TC2_11.turnOFF");
callMethod("TC2_12.turnOFF");
sayReply("Выключено",2);
|
(Н|н)а стене
Код
callMethod("TC2_11.turnOFF");
//$status=gg("TC2_11.status");
//if ($status==0) {
// sayReply("Свет уже выключен",2);
//} else {
// callMethod("TC2_11.turnOFF");
// sayReply("Свет выключен",2);
//}
|
(Н|н)а шкафу
Код
callMethod("TC2_12.turnOFF");
//$status=gg("TC2_12.status");
//if ($status==0) {
// sayReply("Свет уже выключен",2);
//} else {
// callMethod("TC2_12.turnOFF");
// sayReply("Свет выключен",2);
//}
|
|
|
(Д|д)жарвис
Код
sayReply("Вы что то хотели?",5);
|
(К|к)акая сейчас погода
Код
//Облачность
$status="";
$status.="Сегодня ".gg("ow_fact.weather_type").".";
//Температура
$temp.=' Температура '.gg('ow_fact.temperature').".";
//Влажность
$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= процента ; }
}
$hum.=" Относительная влажность ".gg("ow_fact.humidity")." ".$tempcels. ".";
$tempw="";
$tempcels="";
//Давление
$pressuretemp=(float)gg("ow_fact.pressure_mmhg");
if ($pressuretemp<728) {
$pressure.=' Атмосферное давление пониженное';
} elseif ($pressuretemp>768) {
$pressure.=' Атмосферное давление повышенное.';
} else {
$pressure.=' Атмосферное давление нормальное.';
}
//ветер
$WindSpeedtemp=(float)gg("ow_fact.wind_speed");
if ($WindSpeedtemp<1) {
$WindSpeed.=' Ветра нет.';
} elseif ($WindSpeedtemp<3) {
$WindSpeed.=' Ветер слабый.';
} elseif ($WindSpeedtemp<6) {
$WindSpeed.=' Ветер сильный.';
} elseif ($WindSpeedtemp<9) {
$WindSpeed.=' Ветер очень сильный.';
} else {
$WindSpeed.=' Ветер очень! Очень сильный.';
}
//Проговариваем переменные
sayReply($status.$temp.$hum.$pressure.$WindSpeed,2);
|
(С|с)ледующ(ая|ий) (П|п)есня|(Т|т)рек
|
report system state
|
wiki
Шаблон: ((Ч|ч)то|(К|к)то) так(ое|ой) (.+)
Код
//устанавливаем кодировки
header("Content-type: text/html;charset=utf-8");
mb_internal_encoding("UTF-8");
$word = $request = $matches[5]; //получаем искомое слово
$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; //ставим запятую и дописываем третий вариант
}
}
say($say,1);
}
}
|
Будильник
Шаблон: ((В|в)ключи|(П|п)оставь|(У|у)станови) будильник на (\d+)(\s*)(часов|:)*(\s*)(\d*)
Код
$h=$matches[5];
$m=$matches[9];
$hh=$h;
if ($h<10) {$h="0".$h;}
if ($h>24) {
say("Непонятно на который час завести будильник, определитесь и сообщите снова.",5);
return;
}
if (($m>59)|(!$m)) {
say("Непонятно на сколько минут завести будильник, поэтому пусть будет ровно 00.",5);
$m="00";
}
say("Ставлю будильник на ".$h." часов ".$m." минут. Постарайтесь не проспать.",5);
setGlobal('AlarmSay.AlarmOn',1);
setGlobal('AlarmSay.AlarmTime',$h.':'.$m);
|
Включи радио (.+)
Код
SayReply("Окей",1);
//cm('RadioSetting.Control','sta:$matches[1]');
//cm('RadioSetting.Control','play');
cm('RadioSetting.Control',array('sta'=>$matches[1],'cmd'=>'play'));
|