Включить или выключить
Шаблон: ((З|з)ажги|(П|п)огас|(В|в)ключ|(В|в)ыключ|(В|в)руб|(В|в)ыруб)
Код
sayReply('Что именно мне '.$original.'ть?',2);
//sayReply('Я не поняла. Что нужно '.$bases[0].'?',2);
|
вытяжку
Шаблон: ((В|в)ытяжк)|((В|в)ентиляц)
Код
if (preg_match('/включи/isu',$original)) {
callMethod('RCSwitch3.turnOn'); //Включаем
sayReply('Включаю вентиляцию',2);
} elseif (preg_match('/выключи/isu',$original)) {
callMethod('RCSwitch3.turnOff'); //Включаем
sayReply('Выключаю вентиляцию',2);
} else {
sayReply('Непонятно что делать с вентиляцией: '.$original,2);
}
|
музыку
Код
runScript('playFavoriteMusic');
runScript("VkMusic", array('VALUE'=>$matches[1], 'MODE'=>1, 'COUNT'=>'30'));
sayReply('Включаю музыку',2);
|
(В|в)ключи мою музыку
Код
runScript("VkMusic", array('VALUE'=>181331045, 'MODE'=>0));
|
(Н|н)ай(ди|ти) музыку (.+)
Код
runScript("VkMusic", array('VALUE'=>$matches[3], 'MODE'=>2, 'COUNT'=>'100'));
|
(Н|н)ай(ди|ти) песню (.+)
Код
runScript("VkMusic", array('VALUE'=>$matches[3], 'MODE'=>1));
|
|
радио
Код
//sayReply('Какую станцию?',2);
if (preg_match('/включи/isu',$original))
{
sayReply('Включаю радио',2);
cm('RadioSetting.Control','play');
context_clear();
}
elseif (preg_match('/выключи/isu',$original))
{
sayReply('Выключаю радио',2);
cm('RadioSetting.Control','stop');
context_clear();
}
else
{
sayReply('Непонятно что с радио: '.$original,2);
}
//Reply('Вы не выбрали какую станцию, включаю последнюю',2);
//cm('RadioSetting.Control','play');
|
Последнюю станцию
Шаблон: ((П|п)оследнюю)|(Т|т)у)
Код
cm('RadioSetting.Control','play');
|
Сибирь
Код
cm('RadioSetting.Control','play');
|
|
свет
Шаблон: ((С|с)вет|(О|о)свещен|(О|о)гонь)
Код
sayReply('Где именно?',2);
|
Бра Левая
Код
if (preg_match('/включи/isu',$original)) {
callMethod('RCSwitch6.turnOn'); //Включаем свет
sayReply('Включаю свет бра левая',2);
} elseif (preg_match('/выключи/isu',$original)) {
callMethod('RCSwitch6.turnOff'); //Выключаем свет
sayReply('Выключаю свет бра левая',2);
} else {
sayReply('Непонятно что со светом бра левая'.$original,2);
}
|
Бра Правая
Код
if (preg_match('/включи/isu',$original)) {
callMethod('RCSwitch5.turnOn'); //Включаем свет
sayReply('Включаю свет бра правая',2);
} elseif (preg_match('/выключи/isu',$original)) {
callMethod('RCSwitch5.turnOff'); //Выключаем свет
sayReply('Выключаю свет бра правая',2);
} else {
sayReply('Непонятно что со светом бра правая '.$original,2);
}
|
в кухне
Код
if (preg_match('/включи/isu',$original)) {
callMethod('RCSwitch2.turnOn'); //Включаем свет
sayReply('Включаю свет в кухне',2);
} elseif (preg_match('/выключи/isu',$original)) {
callMethod('RCSwitch2.turnOff'); //Выключаем свет
sayReply('Выключаю свет в кухне',2);
} else {
sayReply('Непонятно что со светом в кухне: '.$original,2);
}
|
везде
Код
if (preg_match('/включи/isu',$original)) {
sayReply('Включаю весь свет',2);
} elseif (preg_match('/выключи/isu',$original)) {
sayReply('Выключаю весь свет',2);
} else {
sayReply('Непонятно что делать со всем светом: '.$original,2);
}
|
коридоре
Шаблон: (в коридоре|в прихожей)
Код
if (preg_match('/включи/isu',$original)) {
sayReply('Включаю свет в коридоре',2);
} elseif (preg_match('/выключи/isu',$original)) {
sayReply('Выключаю свет в коридоре',2);
} else {
sayReply('Непонятно что со светом в коридоре: '.$original,2);
}
|
над плитой
Код
if (preg_match('/включи/isu',$original)) {
callMethod('RCSwitch4.turnOn'); //Включаем свет
sayReply('Включаю свет над плитой',2);
} elseif (preg_match('/выключи/isu',$original)) {
callMethod('RCSwitch4.turnOff'); //Выключаем свет
sayReply('Выключаю свет над плитой',2);
} else {
sayReply('Непонятно что со светом над плитой: '.$original,2);
}
|
солнце
Код
if (preg_match('/включи/isu',$original)) {
callMethod('RCSwitch1.turnOn'); //Включаем свет
sayReply('Включаю свет солнце',2);
} elseif (preg_match('/выключи/isu',$original)) {
callMethod('RCSwitch1.turnOff'); //Выключаем свет
sayReply('Выключаю свет солнце',2);
} else {
sayReply('Непонятно что со светом солнце: '.$original,2);
}
|
|
увлажнитель
Код
if (preg_match('/включи/isu',$original)) {
sayReply('Включаю увлажнитель',2);
} elseif (preg_match('/выключи/isu',$original)) {
sayReply('Выключаю увлажнитель',2);
} else {
sayReply('Непонятно что делать с увлажнителем: '.$original,2);
}
|
|
Напомнить
Шаблон: (Н|н)апомни через (\d+) минут(|у|ы) (.+)
Код
$rnumber = 1;
while (1) {
$rname = "Reminder_$rnumber";
if (!timeOutExists($rname)) break;
$rnumber++;
}
setTimeOut($rname,'sayReply("Напоминаю: '.$matches[4].'");',$matches[2]*60);
sayReply("Принято напоминание - напомнить через $matches[2] минут: $matches[4]");
sayReply("Постараюсь не забыть!");
|
Общий контекст
|
и еще
Шаблон: (и еще|а так же|кроме того|помимо этого)
Код
|
отмена
Шаблон: (отмена|забей|отстань|ничего|не надо|проехали)
Код
context_clear();
clearTimeOut('user_'.context_getuser().'_contexttimeout');
sayReply('Окей, проехали.',2);
|
помощь
Шаблон: ((П|п)омо|(С|с)писок команд|(П|п)одскажи|(А|а) где|(А|а) что)
Код
sayReply ("Вы просили помочь?",2);
sleep(2);
sayReply ("Вот что я умею",2);
sleep(2);
$actions=$this->getAvailableActions();
$total=count($actions);
for($i=0;$i<$total;$i++) {
sayReply($actions[$i],2);
sleep(2);
}
|
сценарий
Код
sayReply("Запускаю сценарий ".$matches[1],2);
runScript($matches[1]);
|
|
Ответить на вопрос
Шаблон: (Ч|ч|К|к)то так (.+)
Код
//устанавливаем кодировки
header("Content-type: text/html;charset=utf-8");
mb_internal_encoding("UTF-8");
$word = $request = $matches[1]; //получаем искомое слово
$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);
}
}
|
Поздороваться
Шаблон: (Здорова|Привет|Здравствуй)
Код
|
Рассказать как дела
|
Рассказать о себе
Шаблон: ((Т|т)ы кто|(К|к)то ты|(Р|р)асскажи о себе|(П|п)представься)
Код
sayReply("Меня завут Алиса, я помогаю в доме по хозяйству",2);
sleep(4);
sayReply("А как тебя зовут?",2);
|
И тебе привет
Код
sayReply("Рада познакомиться, $matches[2]. Обращайся если что!",2);
|
|
Сказать сколько время
Шаблон: ((В|в)ремя|ремени|(К|к)оторый час)
Код
|
Сказать спасибо
Шаблон: ((С|с)пасибо|(Б|б)лагодар)
Код
sayReply("Нет проблем",2);
|