(start|play) music
Код
runScript('playFavoriteMusic');
|
(^повтори|^скажи)(\s*)(.*)(.+)
Код
if (preg_match('/Перво/isu',$original)) {
$say = str_replace("на Первом", "", $matches[3]);
$say = $say.$matches[4];
debmes("На 1/$matches[3]/$matches[4]");
debmes("$say");
sayReply(getRandomLine(SAYOK),2);
sayTo($say,2, main1);
}
else if (preg_match('/на 1/isu',$original)) {
$say = str_replace("на 1", "", $matches[3]);
$say = $say.$matches[4];
debmes("На 1/$matches[3]/$matches[4]");
debmes("$say");
sayReply(getRandomLine(SAYOK),2);
sayTo($say,2, main1);
}
else if (preg_match('/втор/isu',$original)) {
$say = str_replace("на втором", "", $matches[3]);
$say = $say.$matches[4];
debmes("На 2/$matches[3]/$matches[4]");
debmes("$say");
sayReply(getRandomLine(SAYOK),2);
sayTo($say,2, orange);
}
else if (preg_match('/на 2/isu',$original)) {
$say = str_replace("на 2", "", $matches[3]);
$say = $say.$matches[4];
debmes("На 2/$matches[3]/$matches[4]");
debmes("$say");
sayReply(getRandomLine(SAYOK),2);
sayTo($say,2, orange);
}
else if (preg_match('/на 3/isu',$original)) {
$say = str_replace("на 3", "", $matches[3]);
$say = $say.$matches[4];
debmes("На 3/$matches[3]/$matches[4]");
debmes("$say");
sayReply(getRandomLine(SAYOK),2);
sayTo($say,2, hos);
}
else if (preg_match('/на трет/isu',$original)) {
$say = str_replace("на третьем", "", $matches[3]);
$say = $say.$matches[4];
debmes("На 3/$matches[3]/$matches[4]");
debmes("$say");
sayReply(getRandomLine(SAYOK),2);
sayTo($say,2, hos);
}
else {
$say = $matches[3].$matches[4];
debmes("Reply/$matches[3]/$matches[4]");
debmes("$say");
sayReply($say,5);
}
|
(Р|р)асскажи о фильме (.+)
Шаблон: (Р|р)асскажи о фильме (.+)
Код
runScript('kinopoisk', array('film' => $matches[2]));
|
(Р|р)асскажи о фильме (.+)
Код
global $session;
$term=$session->data['TERMINAL'];
Debmes("Расскажи о фильме/$term/$matches[2]/");
runScript('kinopoisk2', array('film' => $matches[2], 'term' => $term));
|
Громкость до dd %%
Шаблон: ((установи(.*) громкость)(.*)(\s+)(\d+))|^((процентов)(.*)(\s+)(\d+))
Код
if (preg_match('/музык/isu',$original)) {
$value=$matches[6].$matches[11];
sayTo("Устанавливаю музыку на $value %", 1, main1);
callMethod('RadioSetting.Control', array('vol'=> $value));
}
else if (preg_match('/сист/isu',$original)) {
$value=$matches[6].$matches[11];
sayTo("Устанавливаю громкость на $value %", 1, main1);
callMethod('ThisComputer.VolumeLevelChanged', array('VALUE'=> $value));
}
|
Громкость на dd %%
Шаблон: (уменьш(и|ить)|увелич(ь|ить)).громкость.(музыки|системы).на.(\d+)
Код
if (preg_match('/меньш/isu',$original)) {
$what = "Уменьшаю";
}
else if (preg_match('/увелич/isu',$original)) {
$what = "Увеличиваю";
}
if (preg_match('/музык/isu',$original)) {
$where = "музыки";
}
else if (preg_match('/сист/isu',$original)) {
$where = "системы";
}
if ($where == "музыки"){
if ($what == "Уменьшаю"){
$value = gg('RadioSetting.VolumeLevel')-$matches[5];
}
else if ($what == "Увеличиваю"){
$value = gg('RadioSetting.VolumeLevel')+$matches[5];
}
Debmes("$value");
callMethod('RadioSetting.Control', array('vol'=> $value));
}
if ($where == "системы"){
if ($what == "Уменьшаю"){
$value = getGlobal('ThisComputer.VolumeLevel')-$matches[5];
}
else if ($what == "Увеличиваю"){
$value = getGlobal('ThisComputer.VolumeLevel')+$matches[5];
}
callMethod('ThisComputer.VolumeLevelChanged', array('VALUE'=> $value));
}
//$value = $matches[5];
sayTo("$what громкость $where на $matches[5] %",2,main1);
|
Громче тише
Код
global $session;
$term=$session->data['TERMINAL'];
if (preg_match('/гром/isu',$original)) $add = 5;
else if (preg_match('/тише/isu',$original)) $add = -5;
sayReply(getRandomLine('DONE'), 2);
if ($term == "main1"){
$val = gg ('room1.volume') + $add ;
if ($val <= 0 ) $val = 0;
else if ($val >= 100 ) $val = 100;
sg ('room1.volume',$val);
}
else if ($term == "orange"){
$val = gg ('room2.volume') + $add ;
if ($val <= 0 ) $val = 0;
else if ($val >= 100 ) $val = 100;
sg ('room2.volume',$val);
}
else if ($term == "hos"){
$val = gg ('room3.volume') + $add ;
if ($val <= 0 ) $val = 0;
else if ($val >= 100 ) $val = 100;
sg ('room3.volume',$val);
}
sayReply("Системная громкость " . $val . " %", 2);
|
Задачи на сегодня
Код
global $session;
$term=$session->data['TERMINAL'];
runScriptSafe("SayToDo", array('term'=>$term));
|
Запиши в список дел
Шаблон: (.*)(запиши|записать)(.*)(дела|дело|задачу|дел|задач)(.+)
Код
//Debmes("/1-$matches[1]/2-$matches[2]/3-$matches[3]/4-$matches[4]/5-$matches[5]/6-$matches[6]/7-$matches[7]/8-$matches[8]/");
$count = count($matches); //считаем число элементов массива
//Debmes("В массиве $count элементов");
if ($count > 4) {
for($i=1;$i<$count;$i++) { //ищем строку с нужным словом
if ((preg_match('/дел/isu',$matches[$i])) || (preg_match('/задач/isu',$matches[$i]))) {
//Debmes("Это номер элемента $i");
$zadacha = $matches[$i+1];
$zadacha=trim($zadacha);
if ($zadacha != "а" && $zadacha != "о" && $zadacha != "у"){
//Debmes("Это нужная строка /$zadacha/");
sayReply(getRandomLine(DONE),1);
callMethod("TodoList.view");
callMethod("TodoList.new",array("task"=>$zadacha));
callMethod("TodoList.view");
}
else {
sayReply(getRandomLine('SORRY')." Я не поняла, что записать в задачи.",$u);
}
}
}
}
else {
sayReply(getRandomLine('SORRY')." Я не поняла, что записать в задачи.",$u);
}
|
Какая погода
Шаблон: (.*)погод(а|у)(.*)
Код
if (preg_match('/после/isu',$original)) {
$period = 3;
}
else if (preg_match('/завтра/isu',$original)) {
$period = 2;
}
else {
$period = 1;
}
runScriptSafe('Saymyweather',array('period'=>$period,'term'=>''));
|
Кондиционер
Шаблон: (В|в)ыключ(и|ть)|(В|в)ключ(и|ть).конд(.+?)
Код
global $session;
$term=$session->data['TERMINAL'];
if (preg_match('/вклю/isu',$original)) {
$resp = "включ";
}
else $resp = "выключ";
if ($term == "orange"){
// if (preg_match('/конд/isu',$original)) {
cm ("AC1.switch");
sayReply(getRandomLine('DONE'). " " . $resp ."аю кондиционер.",1);
//}
// else {
// sayReply(getRandomLine('SORRY'). ". Я не поняла что нужно ". $resp ."ить в спальне.",1);
//}
}
else if ($term == "hos"){
// if (preg_match('/конд/isu',$original)) {
cm ("AC2.switch");
sayReply(getRandomLine('DONE'). " " . $resp ."аю кондиционер.",1);
// }
//else {
// sayReply(getRandomLine('SORRY'). ". Я не поняла что нужно ". $resp ."ить на мансарде.",1);
//}
}
|
Лампа в кабинете
Код
|
Напомни
Шаблон: напомни ((через (\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] ;}
global $session;
$term=$session->data['TERMINAL'];
AddScheduledJob($request,"sayTo('Вы просили напомнить ".$request."',".$u.",$term);",$a, 60);
//AddScheduledJob($request,"say('Вы просили напомнить ".$request."',".$u.");",$a, 60);
sayReply(getRandomLine('DONE')." Задание напомнить ".$request." установлено на ".$chtext." ".$nmonth." в ".$ntime,$u);}
else
{sayReply(getRandomLine('SORRY')." Я не могу назначить напоминание на заданное время!",$u);}}
else
{sayReply(getRandomLine('SORRY')." Я не поняла, о чем напомнить.",$u);}
|
Открой окно или шторы
Шаблон: (((открой|закрой)(.*) окно)((.*)(\s+)(\d+))|^((.*)(\s+)(\d+)))?
Код
if (preg_match('/шторы/isu',$original)) {
if (gg('dt360.status') == "0"){
callMethod("dt360.cmd_open");
sayReply(getRandomLine('DONE'). " Открываю шторы",2);
}
else if (gg('dt360.status') == "1"){
callMethod("dt360.cmd_close");
sayReply(getRandomLine('DONE'). " Закрываю шторы",2);
}
}
else if (preg_match('/(проц|%)/isu',$original)) {
$value=$matches[8].$matches[11];
sg ('Opener1.position', $value);
sayReply(getRandomLine('DONE'). " Открываю окно на $value %", 2);
}
else if (preg_match('/закр/isu',$original)) {
sg ('Opener1.position', 0);
sayReply(getRandomLine('DONE'). " Закрываю окно в спальне", 2);
}
else if (preg_match('/откр/isu',$original)) {
sg ('Opener1.position', 100);
sayReply(getRandomLine('DONE'). " Открываю окно в спальне полностью", 2);
}
|
Отчет
Шаблон: (О|о)тчет|(о|с)ч(о|ё|е)т
Код
global $session;
$term=$session->data['TERMINAL'];
runScriptSafe('reportStatus', array());
runScriptSafe('StateTemp',array('level'=>'2','term'=>$term));
runScriptSafe('StateHum',array('level'=>'2','term'=>$term));
runScriptSafe('StateWindow',array('level'=>'2','term'=>$term));
runScriptSafe('StateECO',array('level'=>'2','term'=>$term));
|
Переводчик от Yandex
Шаблон: (П|п)ереве(ди|сти|зти) на (.+) (слово|фраза|фразу|выражение)
Код
$apikey="trnsl.1.1.20190103T122120Z.53e189703d64ceb9.b370902b46f0985305a1d48960c8f26fc78e58bc"; //API-ключ с яндекса получить можно здесь https://translate.yandex.ru/developers/keys КАВЫЧКИ НЕ УБИРАТЬ!!!
$message_text=$original; //вся фраза целиком (Переведи на английский фразу ПЕРЕВОДИМАЯ ФРАЗА)
$keywords = preg_split("/[\s,]+/",$original); //Разбиваем фразу на отдельные слова
$total=count($keywords); //Считаем сколько слов в оригинальной фразе
$xtotal=$total - 4; //$xtotal - количество слов после шаблонного запроса, ($total -4) цифра 4 - это количество слов в шаблоне запроса до переводимой фразы/слова
//извлекаем переводимое слово/фразу, т.е. отсекаем запрос "Переведи на английский фразу" от всего запроса оставляя то, что надо перевести на другой язык
for($i=$xtotal;$i<$total;$i++) {
$message_text = substr(strstr($message_text," "), 1);
}
$message_text_strrep = str_replace(" ","%20",$message_text); //заменяем пробелы на %20 в переводимом слове/фразе для запроса GET (не понимает пробелов)
//sayreply($message_text,2); //проверка на вывод поисковой фразы
$langfrom = file_get_contents("https://translate.yandex.net/api/v1.5/tr.json/detect?key=".$apikey."&text=".$message_text_strrep); // Определяем с какого языка будет перевод (если английский - вывод: {"code":200,"lang":"en"})
$langfrom = substr($langfrom , strpos($langfrom , 'g')+4); // обрезаем полученную строку {"code":200,"lang":"en"} с начала до en"}
$langfrom = strstr($langfrom , '"', true); // теперь режем последние символы "}, чтоб осталось en
//определяем переменную на какой язык надо перевести
if($matches[3]=="азербайджанский"){$langto="az";}
elseif($matches[3]=="албанский"){$langto="sq";}
elseif($matches[3]=="амхарский"){$langto="am";}
elseif($matches[3]=="английский"){$langto="en";}
elseif($matches[3]=="арабский"){$langto="ar";}
elseif($matches[3]=="армянский"){$langto="hy";}
elseif($matches[3]=="африкаанс"){$langto="af";}
elseif($matches[3]=="баскский"){$langto="eu";}
elseif($matches[3]=="башкирский"){$langto="ba";}
elseif($matches[3]=="белорусский" || $matches[3]=="беларуский"){$langto="be";}
elseif($matches[3]=="бенгальский"){$langto="bn";}
elseif($matches[3]=="бирманский"){$langto="my";}
elseif($matches[3]=="болгарский"){$langto="bg";}
elseif($matches[3]=="боснийский"){$langto="bs";}
elseif($matches[3]=="валлийский"){$langto="cy";}
elseif($matches[3]=="венгерский"){$langto="hu";}
elseif($matches[3]=="вьетнамский"){$langto="vi";}
elseif($matches[3]=="гаитянский" || $matches[3]=="креольский"){$langto="ht";}
elseif($matches[3]=="галисийский"){$langto="gl";}
elseif($matches[3]=="голландский"){$langto="nl";}
elseif($matches[3]=="горномарийский"){$langto="mrj";}
elseif($matches[3]=="греческий"){$langto="el";}
elseif($matches[3]=="грузинский"){$langto="ka";}
elseif($matches[3]=="гуджарати"){$langto="gu";}
elseif($matches[3]=="датский"){$langto="da";}
elseif($matches[3]=="иврит"){$langto="he";}
elseif($matches[3]=="идиш"){$langto="yi";}
elseif($matches[3]=="индонезийский"){$langto="id";}
elseif($matches[3]=="ирландский"){$langto="ga";}
elseif($matches[3]=="итальянский"){$langto="it";}
elseif($matches[3]=="исландский"){$langto="is";}
elseif($matches[3]=="испанский"){$langto="es";}
elseif($matches[3]=="казахский"){$langto="kk";}
elseif($matches[3]=="каннада"){$langto="kn";}
elseif($matches[3]=="каталанский"){$langto="ca";}
elseif($matches[3]=="киргизский"){$langto="ky";}
elseif($matches[3]=="китайский"){$langto="zh";}
elseif($matches[3]=="корейский"){$langto="ko";}
elseif($matches[3]=="коса"){$langto="xh";}
elseif($matches[3]=="кхмерский"){$langto="km";}
elseif($matches[3]=="лаосский"){$langto="lo";}
elseif($matches[3]=="латынь" || $matches[3]=="латинский"){$langto="la";}
elseif($matches[3]=="латышский"){$langto="lv";}
elseif($matches[3]=="литовский"){$langto="lt";}
elseif($matches[3]=="люксембургский"){$langto="lb";}
elseif($matches[3]=="малагасийский"){$langto="mg";}
elseif($matches[3]=="малайский"){$langto="ms";}
elseif($matches[3]=="малаялам"){$langto="ml";}
elseif($matches[3]=="мальтийский"){$langto="mt";}
elseif($matches[3]=="македонский"){$langto="mk";}
elseif($matches[3]=="маори"){$langto="mi";}
elseif($matches[3]=="маратхи"){$langto="mr";}
elseif($matches[3]=="марийский"){$langto="mhr";}
elseif($matches[3]=="монгольский"){$langto="mn";}
elseif($matches[3]=="немецкий"){$langto="de";}
elseif($matches[3]=="непальский"){$langto="ne";}
elseif($matches[3]=="норвежский"){$langto="no";}
elseif($matches[3]=="панджаби"){$langto="pa";}
elseif($matches[3]=="папьяменто"){$langto="pap";}
elseif($matches[3]=="персидский"){$langto="fa";}
elseif($matches[3]=="польский"){$langto="pl";}
elseif($matches[3]=="португальский"){$langto="pt";}
elseif($matches[3]=="румынский"){$langto="ro";}
elseif($matches[3]=="русский"){$langto="ru";}
elseif($matches[3]=="себуанский"){$langto="ceb";}
elseif($matches[3]=="сербский"){$langto="sr";}
elseif($matches[3]=="сингальский"){$langto="si";}
elseif($matches[3]=="словацкий"){$langto="sk";}
elseif($matches[3]=="словенский"){$langto="sl";}
elseif($matches[3]=="суахили"){$langto="sw";}
elseif($matches[3]=="сунданский"){$langto="su";}
elseif($matches[3]=="таджикский"){$langto="tg";}
elseif($matches[3]=="тайский"){$langto="th";}
elseif($matches[3]=="тагальский"){$langto="tl";}
elseif($matches[3]=="тамильский"){$langto="ta";}
elseif($matches[3]=="татарский"){$langto="tt";}
elseif($matches[3]=="телугу"){$langto="te";}
elseif($matches[3]=="турецкий"){$langto="tr";}
elseif($matches[3]=="удмуртский"){$langto="udm";}
elseif($matches[3]=="узбекский"){$langto="uz";}
elseif($matches[3]=="украинский"){$langto="uk";}
elseif($matches[3]=="урду"){$langto="ur";}
elseif($matches[3]=="финский"){$langto="fi";}
elseif($matches[3]=="французский"){$langto="fr";}
elseif($matches[3]=="хинди"){$langto="hi";}
elseif($matches[3]=="хорватский"){$langto="hr";}
elseif($matches[3]=="чешский"){$langto="cs";}
elseif($matches[3]=="шведский"){$langto="sv";}
elseif($matches[3]=="шотландский"){$langto="gd";}
elseif($matches[3]=="эстонский"){$langto="et";}
elseif($matches[3]=="эсперанто"){$langto="eo";}
elseif($matches[3]=="яванский"){$langto="jv";}
elseif($matches[3]=="японский"){$langto="ja";}
$lang = $langfrom."-".$langto; //направление перевода. пример en-ru
$text = file_get_contents("https://translate.yandex.net/api/v1.5/tr.json/translate?key=".$apikey."&text=".$message_text_strrep."&lang=".$lang."&format=plain"); //получаем перевод. Вывод GET запроса: {"code":200,"lang":"en-ru","text":["Перевести эту фразу"]}
$answercode = substr($text,8,3); //смотрим код ответа
//если всё хорошо то:
if ($answercode == 200) {
$text = substr($text, strpos($text, '[')+2); //обрезаем вывод GET запроса до символа [. +2 - удаляем сам знак [ и следующий за ним символ
$say = strstr($text, '"', true); //обрезаем вывод GET запроса с конца до первых кавычек, включая и кавычки
if ($matches[4] == "фразу") {$matches[4] = "фраза";} //делаем удобоваримый для слуха ответ от Алисы
sayReply($matches[4].": ".$message_text." переводится на ".$matches[3]." как: ".$say,2); // собственно сам выхлоп перевода, то , что скажет нам в ответ Алиса
}
//иначе сообщаем об ошибке (пока почему-то не работает, при ошибке file_get_contents возвращает пустое значение (через строку браузера всё работает :-( ))
elseif ($answercode == 401) {say("Неправильный API-ключ",2);}
elseif ($answercode == 402) {say("API-ключ заблокирован",2);}
elseif ($answercode == 404) {say("Превышено суточное ограничение на объем переведенного текста",2);}
else {sayReply("Неизвестный код ответа сервера: ".$answercode,2);}
|
Подсветка
Код
$set = 2;
global $session;
$term=$session->data['TERMINAL'];
if (preg_match('/ванне/isu',$original)) {
cm ("L19.switch", array('voice'=> $set));
}
else if (preg_match('/ванне на 2/isu',$original)) {
cm ("L19.switch", array('voice'=> $set));
}
else if (preg_match('/войне/isu',$original)) {
cm ("L19.switch", array('voice'=> $set));
}
else if (preg_match('/Ваня/isu',$original)) {
cm ("L19.switch", array('voice'=> $set));
}
else if (preg_match('/Вани/isu',$original)) {
cm ("L19.switch", array('voice'=> $set));
}
else if (preg_match('/в бане/isu',$original)) {
cm ("L19.switch", array('voice'=> $set));
}
else if (preg_match('/бани/isu',$original)) {
cm ("L19.switch", array('voice'=> $set));
}
else if (preg_match('/во мне/isu',$original)) {
cm ("L19.switch", array('voice'=> $set));
}
else if (preg_match('/туалет/isu',$original)) {
cm ("L7.switch", array('voice'=> $set));
}
else if (preg_match('/лестнице 2/isu',$original)) {
cm ("L12.switch", array('voice'=> $set));
}
else if (preg_match('/нице 2/isu',$original)) {
cm ("L12.switch", array('voice'=> $set));
}
else if (preg_match('/нице на 2/isu',$original)) {
cm ("L12.switch", array('voice'=> $set));
}
else if (preg_match('/лестниц/isu',$original)) {
cm ("L10.switch", array('voice'=> $set));
}
else if (preg_match('/мансард/isu',$original)) {
cm ("McLighting02.switch", array('voice'=> $set));
}
else if ($term == "main1"){
// sayReply(getRandomLine('DONE'),2);
// runScript('Light_smart_kitchen');
}
else if ($term == "orange"){
// cm ("L20.switch", array('voice'=> $set));
}
else if ($term == "hos"){
cm ("McLighting02.switch", array('voice'=> $set));
}
else {
sayReply(getRandomLine('SORRY')." Я не поняла про подсветку.",1);
}
|
Позвони
Шаблон: (П|п)озвони(и|ть)|(З|з)вон(и|ить)|(Н|н)ай(ти|ди)(.*)
Код
if (preg_match('/ндре/is',$original)) {
sayReply('Звоню Андрею',2);
cm('sim900.call_user1');
}
else if (preg_match('/наст/is',$original)) {
sayReply('Звоню Настюше',2);
cm('sim900.call_user2');
}
else if (preg_match('/анас/is',$original)) {
sayReply('Звоню Анастасии',2);
cm('sim900.call_user2');
}
|
Привет
Код
//global $session;
//$t=$session->data['TERMINAL'];
//$u=$session->data['SITE_USERNAME'];
//$s=$session->data['SITE_USER_ID'];
//Debmes("TERMINAL =/$t/, SITE_USERNAME =/$u/, SITE_USER_ID =/$s/");
global $session;
$term=$session->data['TERMINAL'];
debmes($term);
//sayReply(getRandomLine('HELLORESP'),2);
say(getRandomLine('HELLORESP'),1);
|
Радио
Шаблон: ((В|в)ыключ(и|ть)|(В|в)ключ(и|ть))(.*)ради(.+?)
Код
global $session;
$term=$session->data['TERMINAL'];
if ($term == "main1"){
if (preg_match('/вропа/isu',$original)) {
//cm ('room1.Command_receive_channel',array('button'=>'4'));
//sayReply(getRandomLine('DONE'). " включаю радио Европа +.",2);
cm ('room1.Command_receive_channel',array('button'=>'4'));
}
else if (preg_match('/рус/isu',$original)) {
cm ('room1.Command_receive_channel',array('button'=>'1'));
sayReply(getRandomLine('DONE'). " включаю Русское радио.",2);
}
else if (preg_match('/нерд/isu',$original)) {
cm ('room1.Command_receive_channel',array('button'=>'2'));
sayReply(getRandomLine('DONE'). " включаю радио NRJ.",2);
}
else if (preg_match('/реко/isu',$original)) {
cm ('room1.Command_receive_channel',array('button'=>'3'));
sayReply(getRandomLine('DONE'). " включаю Radio record.",2);
}
else if (preg_match('/стоп/isu',$original)) {
cm ('room1.Command_receive',array('button'=>'2'));
sayReply(getRandomLine('DONE'). " выключаю.",2);
}
else if (preg_match('/выкл/isu',$original)) {
cm ('room1.Command_receive',array('button'=>'2'));
sayReply(getRandomLine('DONE'). " выключаю.",2);
}
else {
sayReply("Включаю последнюю проигранную волну.",2);
cm ('room1.Command_receive',array('button'=>'3'));
}
}
else if ($term == "orange"){
if (preg_match('/вропа/isu',$original)) {
cm ('room2.Command_receive_channel',array('button'=>'4'));
sayReply(getRandomLine('DONE'). " включаю радио Европа +.",2);
}
else if (preg_match('/рус/isu',$original)) {
cm ('room2.Command_receive_channel',array('button'=>'1'));
sayReply(getRandomLine('DONE'). " включаю Русское радио.",2);
}
else if (preg_match('/нерд/isu',$original)) {
cm ('room2.Command_receive_channel',array('button'=>'2'));
sayReply(getRandomLine('DONE'). " включаю радио NRJ.",2);
}
else if (preg_match('/реко/isu',$original)) {
cm ('room2.Command_receive_channel',array('button'=>'3'));
sayReply(getRandomLine('DONE'). " включаю Radio record.",2);
}
else if (preg_match('/стоп/isu',$original)) {
cm ('room2.Command_receive',array('button'=>'2'));
sayReply(getRandomLine('DONE'). " выключаю.",2);
}
else if (preg_match('/выкл/isu',$original)) {
cm ('room2.Command_receive',array('button'=>'2'));
sayReply(getRandomLine('DONE'). " выключаю.",2);
}
else {
sayReply("Включаю последнюю проигранную волну.",2);
cm ('room2.Command_receive',array('button'=>'3'));
}
}
if ($term == "hos"){
if (preg_match('/вропа/isu',$original)) {
cm ('room3.Command_receive_channel',array('button'=>'4'));
sayReply(getRandomLine('DONE'). " включаю радио Европа +.",2);
}
else if (preg_match('/рус/isu',$original)) {
cm ('room3.Command_receive_channel',array('button'=>'1'));
sayReply(getRandomLine('DONE'). " включаю Русское радио.",2);
}
else if (preg_match('/нерд/isu',$original)) {
cm ('room3.Command_receive_channel',array('button'=>'2'));
sayReply(getRandomLine('DONE'). " включаю радио NRJ.",2);
}
else if (preg_match('/реко/isu',$original)) {
cm ('room3.Command_receive_channel',array('button'=>'3'));
sayReply(getRandomLine('DONE'). " включаю Radio record.",2);
}
else if (preg_match('/стоп/isu',$original)) {
cm ('room3.Command_receive',array('button'=>'2'));
sayReply(getRandomLine('DONE'). " выключаю.",2);
}
else if (preg_match('/выкл/isu',$original)) {
cm ('room3.Command_receive',array('button'=>'2'));
sayReply(getRandomLine('DONE'). " выключаю.",2);
}
else {
sayReply("Включаю последнюю проигранную волну.",2);
cm ('room3.Command_receive',array('button'=>'3'));
}
}
|
Ржунемогу
Код
global $session;
$term=$session->data['TERMINAL'];
include_once(DIR_MODULES . 'sayjokes/sayjokes.class.php');
$sj = new sayjokes();
$sj->getjoke(1);
|
Свет
Код
$set = 2;
global $session;
$term=$session->data['TERMINAL'];
if (preg_match('/входе/isu',$original)) {
cm ("L1.switch", array('voice'=> $set));
}
else if (preg_match('/коридо/isu',$original)) {
cm ("L2.switch", array('voice'=> $set));
}
else if (preg_match('/кухне/isu',$original)) {
sayReply(getRandomLine('DONE'),2);
runScript('Light_smart_kitchen');
}
else if (preg_match('/ванне/isu',$original)) {
cm ("L18.switch", array('voice'=> $set));
}
else if (preg_match('/ванне на 2/isu',$original)) {
cm ("L18.switch", array('voice'=> $set));
}
else if (preg_match('/войне/isu',$original)) {
cm ("L18.switch", array('voice'=> $set));
}
else if (preg_match('/Ваня/isu',$original)) {
cm ("L18.switch", array('voice'=> $set));
}
else if (preg_match('/Вани/isu',$original)) {
cm ("L18.switch", array('voice'=> $set));
}
else if (preg_match('/в бане/isu',$original)) {
cm ("L18.switch", array('voice'=> $set));
}
else if (preg_match('/бани/isu',$original)) {
cm ("L18.switch", array('voice'=> $set));
}
else if (preg_match('/во мне/isu',$original)) {
cm ("L18.switch", array('voice'=> $set));
}
else if (preg_match('/туалет/isu',$original)) {
cm ("L6.switch", array('voice'=> $set));
}
else if (preg_match('/лестнице 2/isu',$original)) {
cm ("L11.switch", array('voice'=> $set));
}
else if (preg_match('/нице 2/isu',$original)) {
cm ("L11.switch", array('voice'=> $set));
}
else if (preg_match('/нице на 2/isu',$original)) {
cm ("L11.switch", array('voice'=> $set));
}
else if (preg_match('/лестниц/isu',$original)) {
cm ("L9.switch", array('voice'=> $set));
}
else if (preg_match('/спал/isu',$original)) {
cm ("L20.switch", array('voice'=> $set));
}
else if (preg_match('/гарде/isu',$original)) {
cm ("L25.switch", array('voice'=> $set));
}
else if (preg_match('/мансар/isu',$original)) {
cm ("Dimmer01.switch", array('voice'=> $set));
}
else if (preg_match('/детск/isu',$original)) {
cm ("L28.switch", array('voice'=> $set));
}
else if (preg_match('/кабине/isu',$original)) {
cm ("L30.switch", array('voice'=> $set));
}
else if (preg_match('/весь/isu',$original)) {
cm ("LAllState.All_off");
}
else if ($term == "main1"){
sayReply(getRandomLine('DONE'),2);
runScript('Light_smart_kitchen');
}
else if ($term == "orange"){
cm ("L20.switch", array('voice'=> $set));
}
else if ($term == "hos"){
cm ("Dimmer01.switch", array('voice'=> $set));
}
else {
sayReply(getRandomLine('SORRY')." Я не поняла про свет.",2);
}
|
сколько время
Шаблон: (.*)ско(.+)врем(.+)
Код
sayReply('Сейчас '.timeNow(),2);
|
стату(.*) системы
Код
$res='';
if (gg('Security.stateColor')=='green' && gg('System.stateColor')=='green' && gg('Communication.stateColor')=='green') {
$res='Все системы работают в штатном режиме';
} else {
if (gg('Security.stateColor')!='green') {
$res.=" Проблема безопасности: ".getGlobal('Security.stateDetails');
}
if (gg('System.stateColor')!='green') {
$res.=" Системная проблема: ".getGlobal('System.stateDetails');
}
if (gg('Communication.stateColor')!='green') {
$res.=" Проблема связи: ".getGlobal('Communication.stateDetails');
}
}
sayReplay("$res",2);
|
Телевизор
Шаблон: (В|в|Вы|вы)ключ(и|ить) (Т|т)елевизор
Код
global $session;
$term=$session->data['TERMINAL'];
if ($term == "main1"){
if (preg_match('/вклю/isu',$original)) {
cm('Ir_remote_360_2.lg_on');
sayReply(getRandomLine('DONE'). " включаю телевизор.",2);
}
else {
cm('Ir_remote_360_2.lg_on');
sayReply(getRandomLine('DONE'). " выключаю телевизор.",2);
}
}
|
Телевизор громче тише
|
громче|тише
Код
if (preg_match('/гром/is',$original)) {
$val = 24;
} else {
$val = 25;
}
$alias = Lg2;
for($i=0;$i<3;$i++) {
include_once(DIR_MODULES.'app_smarttv/app_smarttv.class.php');
$smartTv=new app_smarttv();
$smartTv->control($alias,'sendCode', $val);
Debmes("Телевизор $i");
//usleep(750);
}
|
|
тост
Код
global $session;
$term=$session->data['TERMINAL'];
include_once(DIR_MODULES . 'sayjokes/sayjokes.class.php');
$sj = new sayjokes();
$sj->getjoke(6);
|
Установить
Шаблон: (У|у)станов(и|ить)
|
будильник
Шаблон: (поставь|установи) будильник на (\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(getRandomLine(DONE),1);
sayReply("Ставлю будильник на ".$h." часов ".$m." минут.",5);
//setGlobal('ThisComputer.AlarmStatus',1);
//setGlobal('ThisComputer.AlarmTime',$h.':'.$m);
|
громкость на
Код
/*
sayTo(getRandomLine('DONE'),1,main1);
sayTo("Устанавливаю громкость на $matches[1]",1,main1);
sg('ThisComputer.volumeLevel', $matches[1]);
callMethod('ThisComputer.VolumeLevelChanged',array('VALUE'=>$matches[1]));
*/
global $session;
$term=$session->data['TERMINAL'];
if ($matches[1] >= 0 && $matches[1] <= 100){
sayReply(getRandomLine('DONE'), 2);
if ($term == "main1"){
sg ('room1.volume',$matches[1]);
}
else if ($term == "orange"){
sg ('room2.volume',$matches[1]);
}
else if ($term == "hos"){
sg ('room3.volume',$matches[1]);
}
sayReply("Системная громкость " . $matches[1] . " %", 2);
}
else {
sayReply(getRandomLine('SORRY').". Недопустимый уровень громкости.", 2);
}
|
Телевизор
Код
sayReply(getRandomLine('DONE'),1);
sayReply("Устанавливаю громкость телевизора на $matches[1]",2);
include_once(DIR_MODULES.'app_smarttv/app_smarttv.class.php');
$smartTv=new app_smarttv();
$alias = "Lg";
$val = $matches[1];
$smartTv->control($alias,'setVol', $val);
|
температуру
Шаблон: температуру (в|на) (.+)
Код
$par = explode(" ", $matches[2]);
if ($Temp<10 || $Temp>28 ){
sayReply("Подождите. Это не нормальное значение температуры!",1);
}
else {
sayReply(getRandomLine('DONE'),1);
//debmes ("$par[0],$par[1]");
runScript('set_climat',array("Location"=>$par[0],"Temp"=>$par[1]));
}
|
|
что такое, кто такой Wikipedia
Шаблон: (Ч|ч|К|к)то тако.+? (.+)
Код
global $session;
$term=$session->data['TERMINAL'];
runScript('wiki3', array('zapros' => $matches[2], 'term' => $term));
|