Контексты в шаблонах поведения

Если вы только начинаете осваивать систему MajorDoMo и чего-то не знаете или не можете понять, то задавайте свои вопросы в этой ветке.

Модератор: immortal

Аватара пользователя
sergejey
Site Admin
Сообщения: 4284
Зарегистрирован: Пн сен 05, 2011 6:48 pm
Откуда: Минск, Беларусь
Благодарил (а): 75 раз
Поблагодарили: 1559 раз
Контактная информация:

Re: Контексты в шаблонах поведения

Сообщение sergejey » Пт май 02, 2014 11:56 am

Ivan писал(а):Вопрос. Можно ли получить параметры в обработке шаблона как в commandReceived
Напишите пример как сделать:
Повтори ...
Напомни через x минут пельмени готовы
Да, в коде обработки шаблона можно использовать массив $matches -- в него сохраняются найденные совпадения.
Например:

шаблон: Повтори (.+)
код: say($matches[1]);

шаблон: Напомни через (\d+) минут (.+)
код: setTimeOut('timer','say("'.$matches[2].'");',$matches[1]*60);

(примеры не проверял, но по идее должны работать)

Сергей Джейгало, разработчик MajorDoMo
Идеи, ошибки -- за предложениями по исправлению и развитию слежу только здесь!
Профиль Connect -- информация, сотрудничество, услуги
Ivan
Сообщения: 1473
Зарегистрирован: Сб окт 12, 2013 11:03 pm
Благодарил (а): 49 раз
Поблагодарили: 327 раз

Re: Контексты в шаблонах поведения

Сообщение Ivan » Пт май 02, 2014 11:17 pm

Спасибо. Всё работает.
Linux, Raspberry PI, MySensors
Connect: http://connect.smartliving.ru/profile/53
Мои проекты: http://smartliving.ru/profile/4
Аватара пользователя
Amarok
Сообщения: 1425
Зарегистрирован: Пт дек 14, 2012 12:24 pm
Откуда: Россия, Нижняя Тура
Благодарил (а): 460 раз
Поблагодарили: 126 раз
Контактная информация:

Re: Контексты в шаблонах поведения

Сообщение Amarok » Чт май 15, 2014 9:16 am

Немного не по теме:
в Алисе есть возможность напоминалок в стиле "напомни через 10 минут проверить пельмени", НО нет подобия "напомни в среду в 10.43 сходить на собеседование" . Есть идеи реализации?
Алиска живёт на Ubuntu Server 14.04.3 LTS
connect, группа в Telegram, Яндекс.Деньги для благодарностей за помощь: 41001355945165
Ivan
Сообщения: 1473
Зарегистрирован: Сб окт 12, 2013 11:03 pm
Благодарил (а): 49 раз
Поблагодарили: 327 раз

Re: Контексты в шаблонах поведения

Сообщение Ivan » Чт май 15, 2014 9:59 am

И сразу с добавлением в календарь :)

Ещё проблема. Гугль по разному распознаёт цифры.
То есть фраза "Напомни через 20 минут выключить гречку" распознаётся как "Напомни через двадцать минут выключить гречку"

На что Алиса отвечает "Неизвестная команда"
Linux, Raspberry PI, MySensors
Connect: http://connect.smartliving.ru/profile/53
Мои проекты: http://smartliving.ru/profile/4
Аватара пользователя
Amarok
Сообщения: 1425
Зарегистрирован: Пт дек 14, 2012 12:24 pm
Откуда: Россия, Нижняя Тура
Благодарил (а): 460 раз
Поблагодарили: 126 раз
Контактная информация:

Re: Контексты в шаблонах поведения

Сообщение Amarok » Чт май 15, 2014 10:06 am

Ivan писал(а):И сразу с добавлением в календарь :)
можно)
но как?
Алиска живёт на Ubuntu Server 14.04.3 LTS
connect, группа в Telegram, Яндекс.Деньги для благодарностей за помощь: 41001355945165
PAV
Сообщения: 949
Зарегистрирован: Пт дек 06, 2013 11:30 am
Откуда: Москва
Благодарил (а): 68 раз
Поблагодарили: 94 раза

Re: Контексты в шаблонах поведения

Сообщение PAV » Ср июл 16, 2014 3:55 pm

Смогли разобраться, чтобы напоминалки срабатывали?

И еще - а можно вызвать шаблон?

Сейчас все голосовые реакции прописаны в методах объекта команды. Т.е. их легко вызывать, если что. А код шаблона как вызвать?
PAV
Сообщения: 949
Зарегистрирован: Пт дек 06, 2013 11:30 am
Откуда: Москва
Благодарил (а): 68 раз
Поблагодарили: 94 раза

Re: Контексты в шаблонах поведения

Сообщение PAV » Ср июл 23, 2014 2:28 pm

up
Аватара пользователя
sergejey
Site Admin
Сообщения: 4284
Зарегистрирован: Пн сен 05, 2011 6:48 pm
Откуда: Минск, Беларусь
Благодарил (а): 75 раз
Поблагодарили: 1559 раз
Контактная информация:

Re: Контексты в шаблонах поведения

Сообщение sergejey » Ср июл 23, 2014 2:38 pm

Код шаблона можно вызвать через имитацию команды пользователем. Например так:

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

$url='http://localhost/command.php?qry='.urlencode("Скажи привет");
getURL($url,0); 

Сергей Джейгало, разработчик MajorDoMo
Идеи, ошибки -- за предложениями по исправлению и развитию слежу только здесь!
Профиль Connect -- информация, сотрудничество, услуги
LocalBrownie
Сообщения: 66
Зарегистрирован: Пт июл 11, 2014 11:08 am
Благодарил (а): 16 раз
Поблагодарили: 9 раз

Re: Контексты в шаблонах поведения

Сообщение LocalBrownie » Чт авг 21, 2014 5:11 pm

sergejey писал(а): Да, в коде обработки шаблона можно использовать массив $matches -- в него сохраняются найденные совпадения.
Например:

шаблон: Повтори (.+)
код: say($matches[1]);

шаблон: Напомни через (\d+) минут (.+)
код: setTimeOut('timer','say("'.$matches[2].'");',$matches[1]*60);

(примеры не проверял, но по идее должны работать)
Странно они у меня работают... Сначала говорит "Неизвестная команда...", а потом срабатывает.
Что там за неизвестная команда - я так и не понял. :)
Vit
Сообщения: 867
Зарегистрирован: Вт янв 17, 2012 12:31 pm
Благодарил (а): 121 раз
Поблагодарили: 78 раз

Re: Контексты в шаблонах поведения

Сообщение Vit » Чт авг 21, 2014 5:19 pm

У меня просто не известная команда и все)
Ответить