Активация контекста
Код
|
да
Шаблон: say("Отлично! Спрашивайте!");
|
нет
Код
say("Ну нет, так нет!",2);
|
|
Алиса
Код
|
(включи|выключи)
Код
say('Что именно '.$original.'ть?',2);
|
музыку
Код
runScript('playFavoriteMusic');
|
Полив
Код
say("Включаю полив на 30 минут",2);
|
свет
Код
say("Где включить свет?");
|
прихожая
Код
if (preg_match('/включи/is',$original)) {
say('Включаю свет в прихожей - '.$original);
} elseif (preg_match('/выключи/is',$original)) {
say('Выключаю свет в прихожей');
} else {
say('Непонятно что со светом в коридоре: '.$original);
}
|
|
|
report system state
Шаблон: (О|о)тчет (по|о) работе систем|твой статус|как (дела|работа)
|
Запиши
Код
|
Значение свойства объекта
Шаблон: [Зз]начен\S* (\S+) [Сс]войств\S* (\S+) объекта (\S+)
Код
sg("$matches[3].$matches[2]",$matches[1]);
$obj = getObject($matches[3]);
if ($obj->object_title <> $matches[3])
say("Объекта $matches[3] не найдено - ".$obj->object_title);
else {
if (gg("$matches[3].$matches[2]") == $matches[1])
say("Значение $matches[1] в свойство $matches[2] объекта $matches[3] успешно записано");
else say("У объекта $matches[3] нет свойства $matches[2]");
}
|
|
какой интернет
Шаблон: (какой|что за) (интер|и)нет
|
Напомни
Шаблон: Напомни через (\d+) минут (.+)
Код
setTimeOut('timer','say("Напоминаю '.$matches[2].'",2);',$matches[1]*60);
//setTimeOut('timer', "getURL('http://192.168.0.101/command.php?qry=".urlencode($matches[3])."');", $matches[1]*60);
|
погода
|
сегодня
Код
say("Сегодня на улице: ".gg("mcD00.Descript"),2);
|
сейчас
Код
say("Сейчас на улице: ".gg("mcD.Descript"),2);
|
|
через XX минут(ы)...
Шаблон: [Чч]ерез (\d+) минут.? (.*)
Код
$rnumber = 1;
while (1) {
$rname = "Reminder_$rnumber";
if (!timeOutExists($rname)) break;
$rnumber++;
}
setTimeOut($rname,'say("Напоминаю: '.$matches[2].'");',$matches[1]*60);
say("Принято напоминание - напомнить через $matches[2] минут: $matches[4]");
//say("Постараюсь не забыть!");
//setTimeOut('timer', "getURL('http://localhost/command.php?qry='.urlencode($matches[2]));", $matches[1]*60);
|
|
Общий контекст
|
забудь
Код
context_clear();
clearTimeOut('user_'.context_getuser().'_contexttimeout');
say('Контекст забыт.');
|
Помощь
Шаблон: ((П|п)ом(ощ|оги)|(Ч|ч)то (умееш|спросит|можеш))(.*)
Код
$actions=$this->getAvailableActions();
$total=count($actions);
for($i=0;$i<$total;$i++) {
say($actions[$i],2);
}
|
|
Повтори за мной
Шаблон: [Пп]овтор\S* за мно\S* (.*)
Код
/*$message_text="Вы сказали:". $original ."Ваши слова:";
// Разбираем предложение на слова
// Надо учесть, что длинна $message_text имеет ограничения
$keywords = preg_split("/[\s,]+/",$original);
$total=count($keywords);
for($i=0;$i<$total;$i++) {
$message_text = $message_text." \nСлово №".$i.": ".$keywords[$i];
}
say($message_text, 2);
*/
// Получаем переменные из шаблона с помощь встроенных функций.
$total = count($matches)-1;
$message_text="Вся строка с переменными: ".$matches[0]." Количество переменных: ".$total.
" \nПеременная №1: ".$matches[1].
" \nПеременная №2: ".$matches[2].
" \nПеременная №3: ".$matches[3];
say($message_text, 2);
// Установка свойства объекта на основании полученной переменной
//sg("Объект.Свойство",$matches[1]);
|
повторяй
Код
|
тест
Код
|