[Сценарий] Что такое | кто такой (запрос к wikipedia)

Не требует установки программ или изменения файлов

Модераторы: immortal, newz20

Аватара пользователя
xor
Сообщения: 1741
Зарегистрирован: Сб ноя 22, 2014 8:45 pm
Благодарил (а): 213 раз
Поблагодарили: 522 раза

Re: Что такое | кто такой (запрос к wikipedia)

Сообщение xor » Вт май 30, 2017 12:08 am

И у меня заработало с одним шаблоном
(что такое|кто такой) (.+)
и кодом
runScript('wiki', array('zapros' => $matches[2]));

Жалко, что возвращается только первое значение из найденного, если их несколько, но будем дорабатывать.
alibi75
Сообщения: 14
Зарегистрирован: Пт сен 08, 2017 12:37 pm
Благодарил (а): 14 раз
Поблагодарили: 1 раз

Re: Что такое | кто такой (запрос к wikipedia)

Сообщение alibi75 » Пт сен 15, 2017 11:10 am

Может не сюда, но если что направьте:
в видео ролике "Шаблоны поведения в MajorDoMo" есть пример реакции на последовательность событий, где в шаблонах указывается маска:
событие1.+событие2

Как у себя не пробовал не реагирует Алиса на это последовательность. Все время Неизвестная команда.
Каким образом заставить реагировать на последовательность событий?
artemon25
Сообщения: 111
Зарегистрирован: Чт авг 25, 2016 10:33 pm
Благодарил (а): 15 раз
Поблагодарили: 6 раз

Re: Что такое | кто такой (запрос к wikipedia)

Сообщение artemon25 » Чт окт 05, 2017 8:36 pm

Подскажите а почему у меня проговаривает ответ в чате пишет а говорить не говорит
eygen
Сообщения: 386
Зарегистрирован: Чт сен 25, 2014 5:37 pm
Откуда: Екатеринбург
Благодарил (а): 25 раз
Поблагодарили: 51 раз

Re: Что такое | кто такой (запрос к wikipedia)

Сообщение eygen » Пт окт 06, 2017 8:12 am

artemon25 писал(а):Подскажите а почему у меня проговаривает ответ в чате пишет а говорить не говорит
ThisComputer.minMsgLevel выстави в 0
Или повысь приоритет say в скрипте.
Аватара пользователя
vitosmaxim80sad145
Сообщения: 128
Зарегистрирован: Сб июл 07, 2018 12:48 am
Откуда: Днепр
Благодарил (а): 88 раз
Поблагодарили: 0

Re: [Сценарий] Что такое | кто такой (запрос к wikipedia)

Сообщение vitosmaxim80sad145 » Ср апр 15, 2020 8:00 pm

сделал все как написано сдесь но просто звучит дин дон и непишет ничего
шаблон (k|к)то такой (.+)
и в шаблоне runScript('wiki', array('zapros' => $matches[2]));
в wiki

Код: Выделить всё

//$zap="Мастер и Маргарита";
$zap=$params['zapros'];
//say('Запрашиваю у Wikipedia информацию о '.$zap);
$zapurl=urlencode($zap);
$url='http://ru.wikipedia.org/w/api.php?action=opensearch&search='.$zapurl.'&prop=info&format=xml&inprop=url';
$answ=file_get_contents($url);
$xml = simplexml_load_string($answ);
$otvet=$xml->Section->Item->Description; 
echo $otvet;
say($otvet,3);
//echo( $otvet);
if(trim($otvet)>'') say($otvet,3);
а с таким кодом

Код: Выделить всё

$zap=$params['zapros'];
//$zap = 'Девчата (фильм)';
say('Запрашиваю у Wikipedia информацию о '.$zap);
$zapurl = urlencode($zap);
$url = 'http://ru.wikipedia.org/w/api.php?action=opensearch&search='.$zapurl.'&format=xml';
$answ = file_get_contents($url);
$xml = simplexml_load_string($answ);
$otvet = $xml->Section->Item->Description; 

//избавимся от ударений(c)
$otvet = iconv("UTF-8","CP1251//IGNORE",$otvet);
$otvet = iconv("CP1251","UTF-8",$otvet);
$otvet = preg_replace("#\s\(.*?\)#isu", '', $otvet); //удаляем все остальные круглые скобки и их содержимое

//echo( $otvet);
if(trim($otvet)>'') say($otvet,1);
19:54 Виталий: кто такой Ленин
19:54 Алиса: Запрашиваю у Wikipedia информацию о Ленин@@@@КТО ТАКОЙ ЛЕНИН

и тишына
Аватара пользователя
tarasfrompir
Сообщения: 3117
Зарегистрирован: Ср мар 02, 2016 8:18 pm
Откуда: Украина Пирятин
Благодарил (а): 209 раз
Поблагодарили: 773 раза

Re: [Сценарий] Что такое | кто такой (запрос к wikipedia)

Сообщение tarasfrompir » Ср апр 15, 2020 8:59 pm

vitosmaxim80sad145 писал(а):
Ср апр 15, 2020 8:00 pm
сделал все как написано сдесь но просто звучит дин дон и непишет ничего
19:54 Виталий: кто такой Ленин
19:54 Алиса: Запрашиваю у Wikipedia информацию о Ленин@@@@КТО ТАКОЙ ЛЕНИН

и тишына
это вопрос не этой темы - но модуль генератора речи в мдм установлен? типа рхвис, гугл ттс симле и т.д
Спасибо нам ПОМОЖЕТ..!
Аватара пользователя
xor
Сообщения: 1741
Зарегистрирован: Сб ноя 22, 2014 8:45 pm
Благодарил (а): 213 раз
Поблагодарили: 522 раза

Re: [Сценарий] Что такое | кто такой (запрос к wikipedia)

Сообщение xor » Ср апр 15, 2020 10:01 pm

vitosmaxim80sad145 писал(а):
Ср апр 15, 2020 8:00 pm
19:54 Виталий: кто такой Ленин
19:54 Алиса: Запрашиваю у Wikipedia информацию о Ленин@@@@КТО ТАКОЙ ЛЕНИН

и тишына
не знаю, у меня так
2020-04-15_21-59-07.png
2020-04-15_21-59-07.png (8.54 КБ) 2953 просмотра
в шаблоне (что такое|кто такой) (.+)

код скрипта
СпойлерПоказать

Код: Выделить всё

$zap=$params['zapros']; //$zap='Дед Мороз';
say('Запрашиваю у Wikipedia информацию - '.$zap,2);
$zapurl=urlencode($zap);
$url='https://ru.wikipedia.org/w/api.php?action=query&list=search&srlimit=1&format=xml&srsearch='.$zapurl;
$answ=file_get_contents($url);
$xml = simplexml_load_string($answ);
$otvet=$xml->query->search->p->attributes();
$zapurl=urlencode($otvet['title']);
$url='https://ru.wikipedia.org/w/api.php?action=query&prop=extracts&format=xml&exintro=&titles='.$zapurl;
$answ=file_get_contents($url);
$xml = simplexml_load_string($answ);
$otvet=$xml->query->pages->page->extract;
$otvet=iconv("UTF-8","CP1251//IGNORE",$otvet);
$otvet=iconv("CP1251","UTF-8",$otvet);
$otvet = preg_replace("#\s\(.*?\)#isu", '', $otvet);
if (empty($otvet)) { say ("Я не знаю такого слова",2);} else {
echo( $otvet);
//Оставляем первый абзац - начало
/*
preg_match_all('#<p[^>]*?>(.+?)</p>#su', $otvet, $res);
$abz= $res[0][0];
$kstr = array("\r\n", "\n", "\r"); $lch = substr(str_replace($kstr, '', strip_tags($abz)), -1);
if ( $lch!=':') $otvet=$abz;
*/
// Оставляем первый абзац - конец
 say(strip_tags($otvet),2);
}
За это сообщение автора xor поблагодарил:
vitosmaxim80sad145 (Чт апр 16, 2020 6:43 pm)
Рейтинг: 1.18%
Аватара пользователя
vitosmaxim80sad145
Сообщения: 128
Зарегистрирован: Сб июл 07, 2018 12:48 am
Откуда: Днепр
Благодарил (а): 88 раз
Поблагодарили: 0

Re: [Сценарий] Что такое | кто такой (запрос к wikipedia)

Сообщение vitosmaxim80sad145 » Чт апр 16, 2020 6:51 pm

Спасибо БОЛЬШОЕ но почему у меня так

15:42 Алиса: Дым — устойчивая дисперсная система, состоящая из мелких твёрдых частиц, находящихся во взвешенном состоянии в газах, образующаяся при сгорании чего-либо. Дым — типичный аэрозоль с размерами твёрдых частиц от 107 до 105 м. В отличие от пыли — более грубод
15:42 Алиса: Запрашиваю у Wikipedia информацию - дым@@@@ЧТО ТАКОЙ ДЫМ
15:42 Виталий: что такое дым
15:40 Алиса: Владимир Ильич Ленин апреля 1870, Симбирск, Российская империя — 21 января 1924, Большие Горки, Сухановская волость, Подольский уезд, Московская губерния, РСФСР, СССР) — российский революционер, крупный теоретик марксизма, советский политический и государ
15:40 Алиса: Запрашиваю у Wikipedia информацию - ленин@@@@КТО ТАКОЙ ЛЕНИН


что такое дым
Запрашиваю у Wikipedia информацию - дым@@@@ЧТО ТАКОЙ ДЫМ и как убрать ето собака собака
Аватара пользователя
xor
Сообщения: 1741
Зарегистрирован: Сб ноя 22, 2014 8:45 pm
Благодарил (а): 213 раз
Поблагодарили: 522 раза

Re: [Сценарий] Что такое | кто такой (запрос к wikipedia)

Сообщение xor » Чт апр 16, 2020 10:53 pm

vitosmaxim80sad145 писал(а):
Чт апр 16, 2020 6:51 pm
Спасибо БОЛЬШОЕ но почему у меня так

15:42 Алиса: Дым — устойчивая дисперсная система, состоящая из мелких твёрдых частиц, находящихся во взвешенном состоянии в газах, образующаяся при сгорании чего-либо. Дым — типичный аэрозоль с размерами твёрдых частиц от 107 до 105 м. В отличие от пыли — более грубод
15:42 Алиса: Запрашиваю у Wikipedia информацию - дым@@@@ЧТО ТАКОЙ ДЫМ
15:42 Виталий: что такое дым
15:40 Алиса: Владимир Ильич Ленин апреля 1870, Симбирск, Российская империя — 21 января 1924, Большие Горки, Сухановская волость, Подольский уезд, Московская губерния, РСФСР, СССР) — российский революционер, крупный теоретик марксизма, советский политический и государ
15:40 Алиса: Запрашиваю у Wikipedia информацию - ленин@@@@КТО ТАКОЙ ЛЕНИН


что такое дым
Запрашиваю у Wikipedia информацию - дым@@@@ЧТО ТАКОЙ ДЫМ и как убрать ето собака собака
это что-то у вас лезет в параметр из пхпМорфи ((
проще всего избавиться от этого уже в скрипте, оставив в входном параметре подстроку до '@@@@'
вставить второй строкой

Код: Выделить всё

$pos = strpos($zap, '@@@@');
if($pos) $zap = substr($zap,0,$pos);
За это сообщение автора xor поблагодарил:
vitosmaxim80sad145 (Чт апр 16, 2020 11:01 pm)
Рейтинг: 1.18%
Аватара пользователя
vitosmaxim80sad145
Сообщения: 128
Зарегистрирован: Сб июл 07, 2018 12:48 am
Откуда: Днепр
Благодарил (а): 88 раз
Поблагодарили: 0

Re: [Сценарий] Что такое | кто такой (запрос к wikipedia)

Сообщение vitosmaxim80sad145 » Чт апр 16, 2020 11:02 pm

спасибо помогло
Ответить