[Сценарий] Получение и чтение RSS + другие скрипты
- Gelezako
- Сообщения: 963
- Зарегистрирован: Чт июн 02, 2016 9:33 pm
- Благодарил (а): 205 раз
- Поблагодарили: 106 раз
- Контактная информация:
Re: чтение RSS + другие скрипты
всё равно не хочет озвучивать (
фанат Мажордомо
тематический блог http://blog.gelezako.com
плейлист про Мажордомо на ютубе https://www.youtube.com/playlist?list=P ... EdBGtX084E
тематический блог http://blog.gelezako.com
плейлист про Мажордомо на ютубе https://www.youtube.com/playlist?list=P ... EdBGtX084E
- tarasfrompir
- Сообщения: 3216
- Зарегистрирован: Ср мар 02, 2016 8:18 pm
- Откуда: Украина Пирятин
- Благодарил (а): 223 раза
- Поблагодарили: 816 раз
- Gelezako
- Сообщения: 963
- Зарегистрирован: Чт июн 02, 2016 9:33 pm
- Благодарил (а): 205 раз
- Поблагодарили: 106 раз
- Контактная информация:
Re: чтение RSS + другие скрипты
я думаю не имеет значения длинна фразы, просто в ходе ошибка
фанат Мажордомо
тематический блог http://blog.gelezako.com
плейлист про Мажордомо на ютубе https://www.youtube.com/playlist?list=P ... EdBGtX084E
тематический блог http://blog.gelezako.com
плейлист про Мажордомо на ютубе https://www.youtube.com/playlist?list=P ... EdBGtX084E
-
- Сообщения: 207
- Зарегистрирован: Вт июл 12, 2016 6:16 pm
- Благодарил (а): 2 раза
- Поблагодарили: 14 раз
Re: чтение RSS + другие скрипты
Озвучивать или писать в телегу?
Если озвучивать то надо sayReply("$r",10) везде исправить 10 на свой уровень проговаривания
у меня на 10 всякий треш типа анекдотов погод, более важное на 20, на 50 и самое на 100
- Gelezako
- Сообщения: 963
- Зарегистрирован: Чт июн 02, 2016 9:33 pm
- Благодарил (а): 205 раз
- Поблагодарили: 106 раз
- Контактная информация:
Re: чтение RSS + другие скрипты
заработало, спасибо!
фанат Мажордомо
тематический блог http://blog.gelezako.com
плейлист про Мажордомо на ютубе https://www.youtube.com/playlist?list=P ... EdBGtX084E
тематический блог http://blog.gelezako.com
плейлист про Мажордомо на ютубе https://www.youtube.com/playlist?list=P ... EdBGtX084E
-
- Сообщения: 207
- Зарегистрирован: Вт июл 12, 2016 6:16 pm
- Благодарил (а): 2 раза
- Поблагодарили: 14 раз
Re: чтение RSS + другие скрипты
Запилил простой калькулятор. может использоваться как голосом так и через телегу/терминал
Писать можно как 2+2 так и 2 + 2 и хоть 2 +2.
Умеет считать 2 + 2 и проценты
например: 30% от 1000, или 1000 - 30%.
чтоб говорила голосом измените 10 в sayReply на свое значение
сам код.
Писать можно как 2+2 так и 2 + 2 и хоть 2 +2.
Умеет считать 2 + 2 и проценты
например: 30% от 1000, или 1000 - 30%.
чтоб говорила голосом измените 10 в sayReply на свое значение
сам код.
Код: Выделить всё
//$matches[2]='30% от 1500';
global $sum;
//калькулятор
function PERC($a,$b){
global $sum;
$sum=($a * $b)/100;
}
function INCR($a,$b){
global $sum;
$sum=($a * $b);
}
function DECR($a,$b){
global $sum;
$sum=($a / $b);
}
function MINUS($a,$b){
global $sum;
$sum=($a - $b);
}
function PLUS($a,$b){
global $sum;
$sum=($a + $b);
}
//если все пришло в одну строку то разбиваем ее на массив
//eсли несколько аргументов то смотрим все и создаем из них массив
if(empty($matches[2])){
$dig=preg_replace('/(\d+)/', '${1} ',$matches[2]);
$mas[]=preg_split( '/(\-|\+|\*|\/|\%)/', $dig);
$op=preg_replace('/x/','*',$matches[2]);
$op=preg_replace('/(\d+|\+|\-|\%|\*|\/)/', '${1} ',$op);
$mas[]=preg_split( '/(\d+| )/', $op );
}else{
foreach($matches as $ar) {
$ar=preg_replace('/[a-я]/isu','',$ar);
$ar=preg_replace('/x/','*',$ar);
$ar=preg_replace('/(\d+|\+|\-|\%|\*|\/)/','${1} ',$ar);
$ar=split(' ',$ar);
$mas[]=$ar;
}
}
//обрабатываем массив чисел и символов и создаем из них два массива: первый с числами второй с символами
foreach($mas as $or){
foreach ($or as $sym){
$sym=preg_replace('/ /','',$sym);
if (strlen($sym) !="0" ){
if (is_numeric($sym)){
$digit[]=$sym;
}else{
$oper[]=$sym;
}
}
}
}
if(in_array('%',$oper)){
if(array_search('%',$oper) == '0'){
$a=$digit[0];
$b=$digit[1];
PERC($a,$b);
$s="$a% от $b ";
}else {
$a=$digit[0];
$b=$digit[1];
PERC($a,$b);
$digit[1]=$sum;
$s="$b%";
}
}
if(in_array('*',$oper)){
$a=$digit[0];
$b=$digit[1];
INCR($a,$b);
$s="$a умножить на $b";
}
if(in_array('/',$oper)){
$a=$digit[0];
$b=$digit[1];
DECR($a,$b);
$s="$a разделить на $b";
}
if(in_array('+',$oper)){
$a=$digit[0];
$b=$digit[1];
PLUS($a,$b);
$s="$a плюс $b";
}
if(in_array('-',$oper)){
$a=$digit[0];
$b=$digit[1];
MINUS($a,$b);
$s="$a минус $b";
}
if ($sum){
sayReply("$s будет: $sum",10);
}else{
sayReply("Я не понимаю $matches[2]",10);
}
-
- Сообщения: 1555
- Зарегистрирован: Сб янв 13, 2018 5:00 pm
- Благодарил (а): 39 раз
- Поблагодарили: 574 раза
Re: чтение RSS + другие скрипты
При помощи eval всё-таки гораздо короче реализуетсяSas писал(а): ↑Вс июн 17, 2018 11:19 pmЗапилил простой калькулятор. может использоваться как голосом так и через телегу/терминал
Писать можно как 2+2 так и 2 + 2 и хоть 2 +2.
Умеет считать 2 + 2 и проценты
например: 30% от 1000, или 1000 - 30%.
чтоб говорила голосом измените 10 в sayReply на свое значение
сам код.Код: Выделить всё
//$matches[2]='30% от 1500'; global $sum; //калькулятор function PERC($a,$b){ global $sum; $sum=($a * $b)/100; } function INCR($a,$b){ global $sum; $sum=($a * $b); } function DECR($a,$b){ global $sum; $sum=($a / $b); } function MINUS($a,$b){ global $sum; $sum=($a - $b); } function PLUS($a,$b){ global $sum; $sum=($a + $b); } //если все пришло в одну строку то разбиваем ее на массив //eсли несколько аргументов то смотрим все и создаем из них массив if(empty($matches[2])){ $dig=preg_replace('/(\d+)/', '${1} ',$matches[2]); $mas[]=preg_split( '/(\-|\+|\*|\/|\%)/', $dig); $op=preg_replace('/x/','*',$matches[2]); $op=preg_replace('/(\d+|\+|\-|\%|\*|\/)/', '${1} ',$op); $mas[]=preg_split( '/(\d+| )/', $op ); }else{ foreach($matches as $ar) { $ar=preg_replace('/[a-я]/isu','',$ar); $ar=preg_replace('/x/','*',$ar); $ar=preg_replace('/(\d+|\+|\-|\%|\*|\/)/','${1} ',$ar); $ar=split(' ',$ar); $mas[]=$ar; } } //обрабатываем массив чисел и символов и создаем из них два массива: первый с числами второй с символами foreach($mas as $or){ foreach ($or as $sym){ $sym=preg_replace('/ /','',$sym); if (strlen($sym) !="0" ){ if (is_numeric($sym)){ $digit[]=$sym; }else{ $oper[]=$sym; } } } } if(in_array('%',$oper)){ if(array_search('%',$oper) == '0'){ $a=$digit[0]; $b=$digit[1]; PERC($a,$b); $s="$a% от $b "; }else { $a=$digit[0]; $b=$digit[1]; PERC($a,$b); $digit[1]=$sum; $s="$b%"; } } if(in_array('*',$oper)){ $a=$digit[0]; $b=$digit[1]; INCR($a,$b); $s="$a умножить на $b"; } if(in_array('/',$oper)){ $a=$digit[0]; $b=$digit[1]; DECR($a,$b); $s="$a разделить на $b"; } if(in_array('+',$oper)){ $a=$digit[0]; $b=$digit[1]; PLUS($a,$b); $s="$a плюс $b"; } if(in_array('-',$oper)){ $a=$digit[0]; $b=$digit[1]; MINUS($a,$b); $s="$a минус $b"; } if ($sum){ sayReply("$s будет: $sum",10); }else{ sayReply("Я не понимаю $matches[2]",10); }
viewtopic.php?f=23&t=2392&start=30#p82156
Более того - всякие дополнительные действия типа синуса или корня квадратного добавляются парой строчек
if (strpos($com,'квадратный корень из ')!== false) {
$com=str_replace('квадратный корень из','sqrt(',$com);
$com.=')';
}
- Gelezako
- Сообщения: 963
- Зарегистрирован: Чт июн 02, 2016 9:33 pm
- Благодарил (а): 205 раз
- Поблагодарили: 106 раз
- Контактная информация:
Re: чтение RSS + другие скрипты
я тоже что-то похожее пилил - финансового голосового ассистента
https://www.youtube.com/watch?v=wZSfGWj ... EdBGtX084E
но плюс моей реализации в том что можно голосом давать команды, типа "сколько будет 10 евро в рублях?" и Алиса голосом отвечала (требует установки модуля "Курсы валют").
https://www.youtube.com/watch?v=wZSfGWj ... EdBGtX084E
но плюс моей реализации в том что можно голосом давать команды, типа "сколько будет 10 евро в рублях?" и Алиса голосом отвечала (требует установки модуля "Курсы валют").
фанат Мажордомо
тематический блог http://blog.gelezako.com
плейлист про Мажордомо на ютубе https://www.youtube.com/playlist?list=P ... EdBGtX084E
тематический блог http://blog.gelezako.com
плейлист про Мажордомо на ютубе https://www.youtube.com/playlist?list=P ... EdBGtX084E
-
- Сообщения: 207
- Зарегистрирован: Вт июл 12, 2016 6:16 pm
- Благодарил (а): 2 раза
- Поблагодарили: 14 раз
Re: чтение RSS + другие скрипты
1 евал опасна и надо рисовать фильтрацию, а то можно такого наговорить что пол системы разнесешьfandaymon писал(а): ↑Вс июн 17, 2018 11:42 pm
При помощи eval всё-таки гораздо короче реализуется
viewtopic.php?f=23&t=2392&start=30#p82156
Более того - всякие дополнительные действия типа синуса или корня квадратного добавляются парой строчек
if (strpos($com,'квадратный корень из ')!== false) {
$com=str_replace('квадратный корень из','sqrt(',$com);
$com.=')';
}
2 надо предусмотреть несколько вариантов ибо не удобно говорить или писать - умножить делить
3 я рисовал эту штуку только для процентов и минус проценты - все остальное побочка, а в eval ее рисовать надо.
4 ну и уменьшить скрипт можно прилично так как я писал его за чем то для консоли, а не для $matches
-
- Сообщения: 1555
- Зарегистрирован: Сб янв 13, 2018 5:00 pm
- Благодарил (а): 39 раз
- Поблагодарили: 574 раза
Re: чтение RSS + другие скрипты
1. Вряд ли получится случайно что-то наговорить, что разнесёт систему. Да и специально тоже маловероятно. Во всяком случае если у тебя есть доступ к системе и желание её разнести, то всё это можно проделать гораздо прощеSas писал(а): ↑Пт июн 22, 2018 12:12 am1 евал опасна и надо рисовать фильтрацию, а то можно такого наговорить что пол системы разнесешьfandaymon писал(а): ↑Вс июн 17, 2018 11:42 pm
При помощи eval всё-таки гораздо короче реализуется
viewtopic.php?f=23&t=2392&start=30#p82156
Более того - всякие дополнительные действия типа синуса или корня квадратного добавляются парой строчек
if (strpos($com,'квадратный корень из ')!== false) {
$com=str_replace('квадратный корень из','sqrt(',$com);
$com.=')';
}
2 надо предусмотреть несколько вариантов ибо не удобно говорить или писать - умножить делить
3 я рисовал эту штуку только для процентов и минус проценты - все остальное побочка, а в eval ее рисовать надо.
4 ну и уменьшить скрипт можно прилично так как я писал его за чем то для консоли, а не для $matches
2. Каждый вариант это всего лишь одна дополнительная строка. А если писать, то можно использовать / и *... Да хоть **2. Без переделок
3. Ну например $com=str_replace('процентов от ','/100*',$com); делов-то...