Empty
|
reboot
|
rebootmjd
|
Алиса
Код
//global $session;
//global $username;
//$n = $session->data['SITE_USERNAME'];
//debmes (' шаблон Алиса SITE_USERNAME->'.$n.'<-');
$t = context_getuser();
//debmes (' шаблон Алиса context_getuser->'.$t.'<-');
//$t = $session->data['SITE_USER_ID'];
$n = getUserObjectByTitle($t,1);
$fn=gg($n.'.fullName');
say('Что, '.$fn.'?');
debmes (' шаблон Алиса $username->'.$username.'<-');
|
Брось кубик
Код
playSound('dice');
say('Бросаю кубик!',2);
sleep(4);
$r = rand(1,6);
say('Выпало '.$r.' '.GetNumberWord($r,array('очко','очка','очков')),2);
|
Брось монету
Шаблон: (брось|кинь|подкинь|подбрось) монет
Код
playSound('monet');
say('Бросаю монету!',2);
sleep(5);
$r = rand(0,1);
if($r){
say('Орёл!',2);
}else{
say('Решка!',2);
}
|
Будильник
Шаблон: (поставь|установи|заведи) будильник на (\d+)(\s*)(часов|:)*(\s*)(\d*)
Код
$h=$matches[2];
$m=$matches[6];
if ($h>24) {
say("Непонятно на который час завести будильник, определитесь и сообщите снова.",5);
return;
}
if (($m>59)|(!$m)) {
say("Непонятно на сколько минут завести будильник, поэтому пусть будет ровно 00.",5);
$m="00";
}
say("Ставлю будильник на ".$h." часов ".$m." минут. Постарайтесь не проспать.",5);
setGlobal('AlarmOnce.Enable',1);
setGlobal('AlarmOnce.start',$h.':'.$m);
|
Включи/выключи
Код
if(preg_match('/включи/isu', $original)){
say('Включить что именно?',2);
saveToCache('VAR:original.0','включи');
}elseif(preg_match('/выключи/isu', $original)){
say('Выключить что именно?',2);
saveToCache('VAR:original.0','выключи');
}else{
//say('Непонятно ',2);
saveToCache('VAR:original.0','');
}
|
голос вкл
Шаблон: (голос|сообщен|бормотал)
Код
setGlobal('ThisComputer.minMsgLevel', 1);
say(getRandomLine('hello'),1);
|
музыку вкл
Код
say('Включаю музыку',1);
runScript('playFavoriteMusic');
//пульт - управление музыкой
|
радио вкл
Код
say('Какую станцию включить?',2);
|
|
свет
Шаблон: (свет|освещен|ламп|фонар)
Код
$ss = checkFromCache("VAR:original.0");
if($ss){
$ss = $ss.' '.mb_strtolower($original); //для красоты
}else{
$ss = mb_strtolower($original);
}
saveToCache('VAR:original.0',$ss);
if(preg_match('/включи/isu', $ss)){
say('Включить свет где?',2);
}elseif(preg_match('/выключи/isu', $ss)){
say('Выключить свет где?',2);
}else{
saveToCache('VAR:original.0','');
//say('Непонятно, что делать со светом?',2);
}
|
в гостиной
Код
$ss = checkFromCache("VAR:original.0");
saveToCache('VAR:original.0','');
if($ss){
$ss = $ss.' '.$original;
}else{
$ss = $original;
}
if(preg_match('/включи/isu', $ss)){
if(gg('DarknessMode.active')==0) say('Вроде, светло ещё',2);
cm('noorelay4.turnon');
say('Включаю свет в гостиной',2);
}elseif(preg_match('/выключи/isu', $ss)){
cm('noorelay4.turnoff');
say('Выключаю свет в гостиной',2);
}
|
в кабинете
Код
$ss = checkFromCache("VAR:original.0");
saveToCache('VAR:original.0','');
if($ss){
$ss = $ss.' '.$original;
}else{
$ss = $original;
}
if(preg_match('/включи/isu', $ss)){
cm('noorelay2.turnon');
say('Включаю свет в кабинете',2);
}elseif(preg_match('/выключи/isu', $ss)){
cm('noorelay2.turnoff');
say('Выключаю свет в кабинете',2);
}
|
в спальне
Код
$ss = checkFromCache("VAR:original.0");
saveToCache('VAR:original.0','');
if($ss){
$ss = $ss.' '.$original;
}else{
$ss = $original;
}
if(preg_match('/включи/isu', $ss)){
if(gg('DarknessMode.active')==0) say('Вроде, светло ещё',2);
cm('noorelay0.turnon');
say('Включаю свет в спальне',2);
}elseif(preg_match('/выключи/isu', $ss)){
cm('noorelay0.turnoff');
say('Выключаю свет в спальне',2);
}
|
везде
Код
$ss = checkFromCache("VAR:original.0");
saveToCache('VAR:original.0','');
if($ss){
$ss = $ss.' '.$original;
}else{
$ss = $original;
}
if(preg_match('/включи/isu', $ss)){
if(gg('DarknessMode.active')==0) say('Вроде, светло ещё',2);
cm('grpLight.callGroupMethod',array('mg'=>'turnon'));
}elseif(preg_match('/выключи/isu', $ss)){
cm('grpLight.callGroupMethod',array('mg'=>'turnoff'));
}
|
Кухня
Код
$ss = checkFromCache("VAR:original.0");
saveToCache('VAR:original.0','');
if($ss){
$ss = $ss.' '.$original;
}else{
$ss = $original;
}
if(preg_match('/включи/isu', $ss)){
if(gg('DarknessMode.active')==0) say('Вроде, светло ещё',2);
cm('noorelay1.turnon');
say('Включаю свет на кухне',2);
}elseif(preg_match('/выключи/isu', $ss)){
cm('noorelay1.turnoff');
say('Выключаю свет на кухне',2);
}
|
на крыльце
Шаблон: (на крыльце|на веранде)
Код
$ss = checkFromCache("VAR:original.0");
saveToCache('VAR:original.0','');
if($ss){
$ss = $ss.' '.$original;
}else{
$ss = $original;
}
if(preg_match('/включи/isu', $ss)){
if(gg('DarknessMode.active')==0) say('Вроде, светло ещё',2);
cm('noorelay3.turnon');
say('Включаю свет на крыльце',2);
}elseif(preg_match('/выключи/isu', $ss)){
cm('noorelay3.turnoff');
say('Выключаю свет на крыльце',2);
}
|
у кровати
Код
$ss = checkFromCache("VAR:original.0");
saveToCache('VAR:original.0','');
if($ss){
$ss = $ss.' '.$original;
}else{
$ss = $original;
}
if(preg_match('/включи/isu', $ss)){
if(gg('DarknessMode.active')==0) say('Вроде, светло ещё',2);
cm('noodimmer1.turnon');
say('Включаю лампу у кровати',2);
}elseif(preg_match('/выключи/isu', $ss)){
cm('noodimmer1.turnoff');
say('Выключаю лампу у кровати',2);
}
|
|
ТВ вкл
Код
say('включить Телевизор где - на кухне или в спальне?',1);
/*
if(gg('Samsung.status')=='1'){
say('Включить? Вроде, уже работает?',2);
brLinkCommand('pro_ch_plus');
}else{
say('Включаю телевизор',2);
brLinkCommand('pro_ch_plus');
}
*/
|
в спальне
Код
if(gg('Samsung1.status')=='1'){
say('Включить? Вроде, уже работает?',2);
brLinkCommand('ch_plus');
}else{
say('Включаю телевизор',2);
brLinkCommand('ch_plus');
}
|
на кухне
Код
if(gg('Samsung.status')=='1'){
say('Включить? Вроде, уже работает?',2);
brLinkCommand('pro_ch_plus');
}else{
say('Включаю телевизор',2);
brLinkCommand('pro_ch_plus');
sg('Samsung.status', 1);
}
|
|
тв канал
Код
$AliceChannel = (int)$matches[1];
rs('irbisTV',array('channel'=>$AliceChannel));
|
|
Вопрос от Алисы
Код
$query = gg('AliceAsk.Query');
setGlobal('AliceAsk.Responce','');
if(gg('AliceAsk.useVoice')){//флаг для телеграма беззвучно
include_once(DIR_MODULES . 'telegram/telegram.class.php');
$telegram_module = new telegram();
$telegram_module->sendMessageToAll($query);
sg('AliceAsk.useVoice', 0);
}else{
say($query,2);
}
|
ответ
Код
//say('Вы сказали - '.$matches[1].'. Я не поняла.',1);
//debmes($matches[0].' 1-'.$matches[1].' 2-'.$matches[2].' 3-'.$matches[3].' original-'.$original);
setGlobal('AliceAsk.Responce', $matches[1]);
|
|
Громкость общая
Код
$volume_now = (int)$matches[1];
if ($volume_now>100) {
$volume_now = 100;
}
callMethod("ThisComputer.ChangeVolumeLevel",array("VALUE"=>$volume_now));
|
Громче
Код
//VLC playing?
cm('mainVLC.getStatus');
if(gg('mainVLC.status')=='playing'&&gg('mainVLC.volume')<350){
$vol = gg('mainVLC.volume');
$vol = $vol+15;
if($vol>350){$vol = 350;}
cm('mainVLC.setVolume',array('volume'=>$vol));
say('увеличим Громкость плеера до '.$vol);
}elseif(gg('Samsung.status')=='1'){
//tv on?
brLinkCommand('pro_vol_up');
usleep(500000);
brLinkCommand('pro_vol_up');
say('увеличим Громкость тв на кухне');
}else{//main volume up
$vol = gg('VolumeLevel');
$vol = $vol+15;
if($vol>100){$vol = 100;}
callMethod("ThisComputer.ChangeVolumeLevel",array("VALUE"=>$vol));
say('увеличим системную Громкость до '.$vol);
}
//say('Громче',2);
|
Громче на
Код
//VLC playing?
$delta =(int) matches[1];
cm('mainVLC.getStatus');
if(gg('mainVLC.status')=='playing'&&gg('mainVLC.volume')<350){
$vol = gg('mainVLC.volume');
$vol = $vol+$delta;
if($vol>350){$vol=350;}
cm('mainVLC.setVolume',array('volume'=>$vol));
say('увеличим Громкость плеера до '.$vol);
}elseif(gg('Samsung.status')=='1'){
//tv on?
if($delta>20)$delta = 20;//
for ($x=0; $x<$delta; $x++){
brLinkCommand('pro_vol_up');
usleep(500000);
}
say('увеличим Громкость тв на кухне');
}else{//main volume up
$vol=gg('VolumeLevel');
$vol=$vol+$delta;
if($vol>100){$vol=100;}
callMethod("ThisComputer.ChangeVolumeLevel",array("VALUE"=>$vol));
say('увеличим системную Громкость до '.$vol);
}
//say('Громче',2);
|
закрой штору
Шаблон: (закрой|опусти) штор
Код
callMethod("blind1.close");
|
запиши
Код
$text = $matches[1];
$filename = "./texts/memory.txt";
runScript("InFile",array("subject"=>"Текст:", "body"=>$text, "filename"=>$filename ));
say("Выполнено. Всё запомнила в файл.",2);
|
когда я
|
скажу (.+?) (.+)
Код
$new_pattern=array();
$new_pattern['ONETIME']=1; // флаг того, что шаблон будет одноразовый
$new_pattern['SKIPSYSTEM']=1; // флаг того, что шаблон не будет реагировать на системные уведомления, только пользовательские
$new_pattern['SCRIPT']='say("'.$matches[2].'",0,'.$from_user_id.');'; // код реакции нашего шаблона
addPattern($matches[1],$new_pattern,1); // добавляем описанный шаблон
say("Добавлена реакция на слово \"".$matches[1]."\"",2); // подтверждаем то, что реакция добавлена
|
|
Купи
Шаблон: (купить|купи) (.+)
Код
$search = array("добавь в список покупок","Добавь в список покупок","Купить ","купить ","купи ","Купи ");
///debmes("m ".$matches[0]);
//debmes("o ".$original);
$ss = trim(str_ireplace($search,'',$matches[0]));
$ss = trim(mb_substr($ss, 0, 30));
//debmes("ss ".$ss);
if($ss > ''){
//remove doubles
$sql = "DELETE FROM clnd_events WHERE CALENDAR_CATEGORY_ID IN (SELECT b.ID FROM clnd_categories b WHERE b.TITLE='Покупки') AND TITLE LIKE '$ss'";
sqlexec($sql);
say("Добавляю ".$ss, 2);
include_once(DIR_MODULES . 'todoer/todoer.class.php');
$todo = new todoer();
$tsk = array(
'TITLE' =>$ss,
//'NOTES' => "This task maked from code...",//your notes
'IS_NODATE' => 1,
'CATEGORY' => "Покупки",
// ... and so on
);
//echoes id of new task
$todo->create_new_task($tsk);
}
|
Купи - повторно
Код
$search = array("добавь в список покупок ","Добавь в список покупок ","Купить ","купить ","купи ","Купи ");
$ss = trim(str_ireplace($search,'',$matches[0]));
$ss = trim(mb_substr($ss, 0, 30));
if($ss > ''){
if($ss == 'нет' || $ss = 'всё') return;
//remove doubles
$sql = "DELETE FROM clnd_events WHERE CALENDAR_CATEGORY_ID IN (SELECT b.ID FROM clnd_categories b WHERE b.TITLE='Покупки') AND TITLE LIKE '$ss'";
sqlexec($sql);
say("Добавляю ещё - ".$ss, 2);
include_once(DIR_MODULES . 'todoer/todoer.class.php');
$todo = new todoer();
$tsk = array(
'TITLE' =>$ss,
//'NOTES' => "This task maked from code...",//your notes
'IS_NODATE' => 1,
'CATEGORY' => "Покупки",
// ... and so on
);
//echoes id of new task
$todo->create_new_task($tsk);
}
|
|
Купи - очисть список покупок
Шаблон: очисть список покупок
Код
$sql = "DELETE FROM clnd_events WHERE CALENDAR_CATEGORY_ID IN (SELECT b.ID FROM clnd_categories b WHERE b.TITLE='Покупки')";
sqlexec($sql);
rs("sent2keep");
say("Список покупок пуст!",2);
rs("sent2keep");
|
Купи - удали из списка покупок
Шаблон: (удали из списка покупок) (.+)
Код
//debmes("original=".$original);
$search = array("удали из списка покупок","Удали из списка покупок");
$ss = trim(str_ireplace($search,'',$matches[0]));
if($ss>''){
say("Удаляю из списка покупок ".$ss,0);
$sql = "DELETE FROM clnd_events WHERE CALENDAR_CATEGORY_ID IN (SELECT b.ID FROM clnd_categories b WHERE b.TITLE='Покупки') AND TITLE LIKE '$ss'";
//debmes($sql);
sqlexec($sql);
rs("sent2keep");
}
|
Найди
Шаблон: (найди|поищи|запомни) (.+)
Код
if(IsSet($matches[2])){
$quest = $matches[2];
$answ = SQLSelect("select * from myglossary where TITLE like '%".$quest."%'");
$total = count($answ);
if($total > 0) {
say('По запросу «'.$quest.'» найдено:',2);
for ($i = 0; $i < $total; $i++){
say($answ[$i]['TITLE'].' - '.$answ[$i]['DESCRIPTION'], 2);
}
}else{
//спросим насчет добавить
$params['query'] = $quest;
runScriptSafe('glos0', $params);
}
}
|
напомни
Код
debmes('txt=>'.$matches[1]);
rs('setMemo',array('txt'=>$matches[1]));
|
Общий контекст
|
забей
Код
context_clear();
clearTimeOut('user_'.context_getuser().'_contexttimeout');
say('Контекст забыт.');
|
помощь
Код
$actions=$this->getAvailableActions();
$total=count($actions);
for($i=0;$i<$total;$i++) {
say($actions[$i]);
}
|
|
открой штору
Шаблон: (открой|подними) штор
Код
callMethod("blind1.open");
|
повтори
Код
say($matches[1], 2);
//debmes(print_r($matches,true));
|
поговорим
Код
say('Некогда болтать, я температуру в подвале меряю.',2);
|
расскажи
Код
say('Рассказать о чём?',1);
|
о делах
|
о погоде
|
о системе
Код
runscript('reportStatus');
runscript('say_check_state');
|
что запомнила
Код
//say('Сами читайте всё',2);
$arr=file('./texts/memory.txt');
for($i=0; $i
|
|
сколько будет
Шаблон: сколько будет (.*)
Код
$command=$matches[1];
$com=str_replace(',','.',$command);
$com=str_replace('разделить на','/',$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);
$com=str_replace('отнять','-',$com);
$com=str_replace('вычесть','-',$com);
$com='$result=' . $com .';';
eval($com);
$result=str_replace('.',',',$result);
say($command.' равно '.$result,2);
|
Смени режим пульта
Код
say('Смена режима пульта',2);
$st = gg('NooPult1.status');
switch($st){
case 'диалог':
sg('NooPult1.status','управление светом');
break;
case 'управление светом':
sg('NooPult1.status','управление звуком');
break;
case 'управление звуком':
sg('NooPult1.status','диалог');
break;
}
say(gg('NooPult1.status'),2);
|
Температура в спальне
Шаблон: Температура в спальне (.+)
Код
//$txt = 'температура на кухне двадцать три с половиной';
$replace = array();
for ($x = 30; $x > 3; $x--){
$replace[mynum2str($x,'','','',0)] = $x;
}
//$txt1 = str_replace(array_keys($replace),array_values($replace),$txt);
//$txt1 = str_replace(array(' градуса',' градусов',' градус'),'',$txt1);
$txt = $matches[1];
$txt = str_replace(' ', ' ', $txt);
$replace[' с половиной'] = '.5';
$txt1 = strtr($txt, $replace);
$txt1 = strtr($txt1,array(' градуса'=>'',' градусов'=>'',' градус'=>''));
//echo $txt1." ";
$temp = $txt1;
//$temp=(float)$matches[1];
if(($temp>3) && ($temp<40)){
sg('PID1.SetPoint',$temp);
say('Температура установлена на '.$temp."°C",2);
}else{
say('Сколько? Я не буду это делать!',2);
}
|
Температура на кухне
Шаблон: Температура на кухне (.+)
Код
//$txt = 'температура на кухне двадцать три с половиной';
$replace = array();
for ($x = 30; $x > 3; $x--){
$replace[mynum2str($x,'','','',0)] = $x;
}
//$txt1 = str_replace(array_keys($replace),array_values($replace),$txt);
//$txt1 = str_replace(array(' градуса',' градусов',' градус'),'',$txt1);
$txt = $matches[1];
$txt = str_replace(' ', ' ', $txt);
$replace[' с половиной'] = '.5';
$txt1 = strtr($txt, $replace);
$txt1 = strtr($txt1,array(' градуса'=>'',' градусов'=>'',' градус'=>''));
//echo $txt1." ";
$temp = $txt1;
//$temp=(float)$matches[1];
if(($temp>3) && ($temp<40)){
sg('PID2.SetPoint',$temp);
say('Температура установлена на '.$temp."°C",2);
}else{
say('Сколько? Я не буду это делать!',2);
}
|
Тихо
Код
callMethod("ThisComputer.ChangeVolumeLevel",array("VALUE"=>0));
cm('mainVLC.setVolume',array('volume'=>0));
brLinkCommand('vol_mute');
|
Тише
Код
debmes('pattern Тише');
cm('mainVLC.getStatus');
if(gg('mainVLC.status')=='playing'&&gg('mainVLC.volume')>0){
//VLC
$vol = gg('mainVLC.volume');
$vol = $vol-15;
if($vol<0){$vol = 5;}
cm('mainVLC.setVolume',array('volume'=>$vol));
say('уменьшим Громкость плеера до '.$vol);
}elseif(gg('Samsung.status')=='1'){
//tv on?
brLinkCommand('pro_vol_down');
usleep(500000);
brLinkCommand('pro_vol_down');
say('уменьшим Громкость тв на кухне');
}else{//main volume up
$vol=gg('VolumeLevel');
$vol = $vol-15;
if($vol<0){$vol = 5;}
callMethod("ThisComputer.ChangeVolumeLevel",array("VALUE"=>$vol));
say('уменьшим системную Громкость до '.$vol);
}
//say('Тише',2);
|