WIKI поиск
Шаблон: (((Ч|ч)то такое)|((К|к)то такой)|((К|к)то такие)) (.+)
Код
sayReply("Вы спросили: \"что такое ".$matches[8]."\"",1);
/*
setGlobal('WIKIsearch.Query',$matches[8]);
runScript('WIKIsearch',$matches[8]);
*/
//устанавливаем кодировки
header("Content-type: text/html;charset=utf-8");
mb_internal_encoding("UTF-8");
$word = $request = $matches[8]; //получаем искомое слово
$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);
}
}
|
OPT
Шаблон: ((П|п)ервый канал|канал 900|о р т)
Код
if (preg_match('/включи/isu',$original)) {
say('Включаю радио',1);
setTimeOut("Radio","runScript('Start');", 1);
} elseif (preg_match('/выключи/isu',$original)) {
runScript('Stop');
say('Готово',1);
} else {
say('Непонятно что: '.$original,1);
}
|
YouTube
Код
if (preg_match('/включи/isu',$original)) {
say('Включаю YouTube',1);
setTimeOut("YouTube","runScript('YouTube');", 1);
} elseif (preg_match('/выключи/isu',$original)) {
runScript('Exit_TV');
say('Выключаю YouTube',1);
} else {
say('Непонятно что: '.$original,1);
}
|
Вентилятор
Шаблон: (вентилятор(.*)|вытяжк(.*))
Код
if (preg_match('/включи/isu',$original)) {
sg('Switch_45_1.status',1);
} elseif (preg_match('/выключи/isu',$original)) {
sg('Switch_45_1.status',0);
} else {
say('Непонятно что: '.$original,1);
}
|
Голос
Код
if (preg_match('/включи/isu',$original)) {
setGlobal("minMsgLevel", 1);
sg("ThisComputer.minMsgLevel",1);
say('Могу говорить',1);
} elseif (preg_match('/выключи/isu',$original)) {
sg("ThisComputer.minMsgLevel",2);
say('Молчу',2);
} else {
say('Непонятно что: '.$original,1);
}
|
Демонстрация
Шаблон: ((Д|д)емонстрацию|(Д|д)емо|пример)
|
День
Код
if (preg_match('/включи/isu',$original)) {
say('Включаю радио',1);
setTimeOut("Radio","runScript('Start');", 1);
} elseif (preg_match('/выключи/isu',$original)) {
runScript('Stop');
say('Готово',1);
} else {
say('Непонятно что: '.$original,1);
}
|
Звук ТВ
Шаблон: (звук(.*)|тих(.*))
Код
if (preg_match('/включи/isu',$original)) {
setTimeOut("Music","runScript('playFavoriteMusic');", 1);
} elseif (preg_match('/выключи/isu',$original)) {
getURL("http://localhost/rc/?command=vlc_close",0);
setTimeOut("Music1","say('Готово',1);", 1);
} else {
say('Непонятно что: '.$original,1);
}
|
Канал
Шаблон: (канал|программ(.*))
|
Дисней
Код
if (preg_match('/включи/isu',$original)) {
say('Включаю радио',1);
setTimeOut("Radio","runScript('Start');", 1);
} elseif (preg_match('/выключи/isu',$original)) {
runScript('Stop');
say('Готово',1);
} else {
say('Непонятно что: '.$original,1);
}
|
Никелодеон
Код
if (preg_match('/включи/isu',$original)) {
say('Включаю радио',1);
setTimeOut("Radio","runScript('Start');", 1);
} elseif (preg_match('/выключи/isu',$original)) {
runScript('Stop');
say('Готово',1);
} else {
say('Непонятно что: '.$original,1);
}
|
НТВ
Код
if (preg_match('/включи/isu',$original)) {
say('Включаю радио',1);
setTimeOut("Radio","runScript('Start');", 1);
} elseif (preg_match('/выключи/isu',$original)) {
runScript('Stop');
say('Готово',1);
} else {
say('Непонятно что: '.$original,1);
}
|
Планета
Код
if (preg_match('/включи/isu',$original)) {
say('Включаю радио',1);
setTimeOut("Radio","runScript('Start');", 1);
} elseif (preg_match('/выключи/isu',$original)) {
runScript('Stop');
say('Готово',1);
} else {
say('Непонятно что: '.$original,1);
}
|
Родной
Код
if (preg_match('/включи/isu',$original)) {
say('Включаю радио',1);
setTimeOut("Radio","runScript('Start');", 1);
} elseif (preg_match('/выключи/isu',$original)) {
runScript('Stop');
say('Готово',1);
} else {
say('Непонятно что: '.$original,1);
}
|
РТР
Шаблон: (Росси(.*)|922|ртр)
Код
if (preg_match('/включи/isu',$original)) {
say('Включаю радио',1);
setTimeOut("Radio","runScript('Start');", 1);
} elseif (preg_match('/выключи/isu',$original)) {
runScript('Stop');
say('Готово',1);
} else {
say('Непонятно что: '.$original,1);
}
|
СТС
Код
if (preg_match('/включи/isu',$original)) {
say('Включаю радио',1);
setTimeOut("Radio","runScript('Start');", 1);
} elseif (preg_match('/выключи/isu',$original)) {
runScript('Stop');
say('Готово',1);
} else {
say('Непонятно что: '.$original,1);
}
|
ТВ3
Код
if (preg_match('/включи/isu',$original)) {
say('Включаю радио',1);
setTimeOut("Radio","runScript('Start');", 1);
} elseif (preg_match('/выключи/isu',$original)) {
runScript('Stop');
say('Готово',1);
} else {
say('Непонятно что: '.$original,1);
}
|
Тлум
Шаблон: ((Т|т)лум|(Т|т)улун|брум|трум|956)
Код
if (preg_match('/включи/isu',$original)) {
say('Включаю радио',1);
setTimeOut("Radio","runScript('Start');", 1);
} elseif (preg_match('/выключи/isu',$original)) {
runScript('Stop');
say('Готово',1);
} else {
say('Непонятно что: '.$original,1);
}
|
ТНТ
Код
if (preg_match('/включи/isu',$original)) {
say('Включаю радио',1);
setTimeOut("Radio","runScript('Start');", 1);
} elseif (preg_match('/выключи/isu',$original)) {
runScript('Stop');
say('Готово',1);
} else {
say('Непонятно что: '.$original,1);
}
|
ТНТ музыка
Шаблон: (ТНТ музык(.*)|501)
Код
if (preg_match('/включи/isu',$original)) {
say('Включаю радио',1);
setTimeOut("Radio","runScript('Start');", 1);
} elseif (preg_match('/выключи/isu',$original)) {
runScript('Stop');
say('Готово',1);
} else {
say('Непонятно что: '.$original,1);
}
|
Че
Код
if (preg_match('/включи/isu',$original)) {
say('Включаю радио',1);
setTimeOut("Radio","runScript('Start');", 1);
} elseif (preg_match('/выключи/isu',$original)) {
runScript('Stop');
say('Готово',1);
} else {
say('Непонятно что: '.$original,1);
}
|
|
Музыку
Шаблон: (музык(.*)|песн(.*))
Код
if (preg_match('/включи/isu',$original)) {
say('Включаю музыку из избранного',1);
setTimeOut("Music","runScript('playFavoriteMusic');", 1);
} elseif (preg_match('/выключи/isu',$original)) {
getURL("http://localhost/rc/?command=vlc_close",0);
setTimeOut("Music1","say('Готово',1);", 1);
} else {
say('Непонятно что: '.$original,1);
}
|
Ночник
Код
if (preg_match('/включи/isu',$original)) {
say('Включаю радио',1);
setTimeOut("Radio","runScript('Start');", 1);
} elseif (preg_match('/выключи/isu',$original)) {
runScript('Stop');
say('Готово',1);
} else {
say('Непонятно что: '.$original,1);
}
|
Охрану
Код
if (preg_match('/включи/isu',$original)) {
sg('SecurityArmedMode.status',1);
} elseif (preg_match('/выключи/isu',$original)) {
callMethod('SecurityArmedMode.deactivate');
} else {
say('Непонятно что: '.$original,1);
}
|
Подсветка
Код
if (preg_match('/включи/isu',$original)) {
sg('Livingroom.Led_strip',10);
} elseif (preg_match('/выключи/isu',$original)) {
sg('Livingroom.Led_strip',10);
} else {
say('Непонятно что: '.$original,1);
}
|
Радио
Код
if (preg_match('/включи/isu',$original)) {
say('Включаю радио',1);
setTimeOut("Radio","runScript('Start');", 1);
} elseif (preg_match('/выключи/isu',$original)) {
runScript('Stop');
say('Готово',1);
} else {
say('Непонятно что: '.$original,1);
}
|
Свет
Шаблон: ((с|ц)вет|освещение)
|
Ванной
Код
if (preg_match('/включи/isu',$original)) {
sg('Switch_45_0.status',1);
} elseif (preg_match('/выключи/isu',$original)) {
sg('Switch_45_0.status',0);
} else {
say('Непонятно где: '.$original,1);
}
|
Везде
Шаблон: (всё|весь|везде|всюду|полностью)
Код
if (preg_match('/включи/isu',$original)) {
//callMethodSafe(SDevices.all_off);
//runScriptSafe('turn_ON_All');
RunScript('turn_ON_All');
} elseif (preg_match('/выключи/isu',$original)) {
//callMethodSafe(SDevices.all_off);
//runScriptSafe('turn_OFF_All');
RunScript('turn_OFF_All');
} else {
say('Непонятно где: '.$original,1);
}
|
Детской
Код
if (preg_match('/включи/isu',$original)) {
sg('Switch_5_1.status',1);
} elseif (preg_match('/выключи/isu',$original)) {
sg('Switch_5_1.status',0);
} else {
say('Непонятно где: '.$original,1);
}
|
Зале
Код
if (preg_match('/включи/isu',$original)) {
sg('Switch_35_2.status',1);
} elseif (preg_match('/выключи/isu',$original)) {
sg('Switch_35_2.status',0);
} else {
say('Непонятно где: '.$original,1);
}
|
Кладовая
Код
if (preg_match('/включи/isu',$original)) {
sg('Switch_5_2.status',1);
} elseif (preg_match('/выключи/isu',$original)) {
sg('Switch_5_2.status',0);
} else {
say('Непонятно где: '.$original,1);
}
|
Коридоре
Код
if (preg_match('/включи/isu',$original)) {
sg('Switch_35_1.status',1);
} elseif (preg_match('/выключи/isu',$original)) {
sg('Switch_35_1.status',0);
} else {
say('Непонятно где: '.$original,1);
}
|
Кухне
Код
if (preg_match('/включи/isu',$original)) {
sg('Switch_15_1.status',1);
} elseif (preg_match('/выключи/isu',$original)) {
sg('Switch_15_1.status',0);
} else {
say('Непонятно где: '.$original,1);
}
|
Прихожей
Код
if (preg_match('/включи/isu',$original)) {
sg('Switch_45_2.status',1);
} elseif (preg_match('/выключи/isu',$original)) {
sg('Switch_45_2.status',0);
} else {
say('Непонятно где: '.$original,1);
}
|
Спальне
Код
if (preg_match('/включи/isu',$original)) {
sg('Switch_25_1.status',1);
} elseif (preg_match('/выключи/isu',$original)) {
sg('Switch_25_1.status',0);
} else {
say('Непонятно где: '.$original,1);
}
|
|
Сценарий
Код
say("Запускаю сценарий ".$matches[1]);
runScript($matches[1]);
|
Телевизор
Шаблон: (телевизор|TV|ящик|телик|тв|ти ви)
|
|
|
|