[Сценарий] Получение и чтение RSS + другие скрипты

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

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

Аватара пользователя
Gelezako
Сообщения: 963
Зарегистрирован: Чт июн 02, 2016 9:33 pm
Благодарил (а): 205 раз
Поблагодарили: 106 раз
Контактная информация:

Re: чтение RSS + другие скрипты

Сообщение Gelezako » Пт июн 15, 2018 10:46 am

всё равно не хочет озвучивать (
фанат Мажордомо
тематический блог http://blog.gelezako.com
плейлист про Мажордомо на ютубе https://www.youtube.com/playlist?list=P ... EdBGtX084E
Аватара пользователя
tarasfrompir
Сообщения: 3216
Зарегистрирован: Ср мар 02, 2016 8:18 pm
Откуда: Украина Пирятин
Благодарил (а): 223 раза
Поблагодарили: 815 раз

Re: чтение RSS + другие скрипты

Сообщение tarasfrompir » Пт июн 15, 2018 11:50 am

Так а может фраза длинная ?
Спасибо нам ПОМОЖЕТ..!
Аватара пользователя
Gelezako
Сообщения: 963
Зарегистрирован: Чт июн 02, 2016 9:33 pm
Благодарил (а): 205 раз
Поблагодарили: 106 раз
Контактная информация:

Re: чтение RSS + другие скрипты

Сообщение Gelezako » Пт июн 15, 2018 11:56 am

tarasfrompir1 писал(а):
Пт июн 15, 2018 11:50 am
Так а может фраза длинная ?
я думаю не имеет значения длинна фразы, просто в ходе ошибка
фанат Мажордомо
тематический блог http://blog.gelezako.com
плейлист про Мажордомо на ютубе https://www.youtube.com/playlist?list=P ... EdBGtX084E
Sas
Сообщения: 207
Зарегистрирован: Вт июл 12, 2016 6:16 pm
Благодарил (а): 2 раза
Поблагодарили: 14 раз

Re: чтение RSS + другие скрипты

Сообщение Sas » Пт июн 15, 2018 12:40 pm

Gelezako писал(а):
Пт июн 15, 2018 10:46 am
всё равно не хочет озвучивать (
Озвучивать или писать в телегу?
Если озвучивать то надо sayReply("$r",10) везде исправить 10 на свой уровень проговаривания
у меня на 10 всякий треш типа анекдотов погод, более важное на 20, на 50 и самое на 100
Аватара пользователя
Gelezako
Сообщения: 963
Зарегистрирован: Чт июн 02, 2016 9:33 pm
Благодарил (а): 205 раз
Поблагодарили: 106 раз
Контактная информация:

Re: чтение RSS + другие скрипты

Сообщение Gelezako » Пт июн 15, 2018 12:48 pm

заработало, спасибо!
фанат Мажордомо
тематический блог http://blog.gelezako.com
плейлист про Мажордомо на ютубе https://www.youtube.com/playlist?list=P ... EdBGtX084E
Sas
Сообщения: 207
Зарегистрирован: Вт июл 12, 2016 6:16 pm
Благодарил (а): 2 раза
Поблагодарили: 14 раз

Re: чтение RSS + другие скрипты

Сообщение 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);
}
fandaymon
Сообщения: 1553
Зарегистрирован: Сб янв 13, 2018 5:00 pm
Благодарил (а): 39 раз
Поблагодарили: 574 раза

Re: чтение RSS + другие скрипты

Сообщение fandaymon » Вс июн 17, 2018 11:42 pm

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);
}
При помощи eval всё-таки гораздо короче реализуется

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 + другие скрипты

Сообщение Gelezako » Пн июн 18, 2018 1:07 pm

я тоже что-то похожее пилил - финансового голосового ассистента
https://www.youtube.com/watch?v=wZSfGWj ... EdBGtX084E
но плюс моей реализации в том что можно голосом давать команды, типа "сколько будет 10 евро в рублях?" и Алиса голосом отвечала (требует установки модуля "Курсы валют").
фанат Мажордомо
тематический блог http://blog.gelezako.com
плейлист про Мажордомо на ютубе https://www.youtube.com/playlist?list=P ... EdBGtX084E
Sas
Сообщения: 207
Зарегистрирован: Вт июл 12, 2016 6:16 pm
Благодарил (а): 2 раза
Поблагодарили: 14 раз

Re: чтение RSS + другие скрипты

Сообщение Sas » Пт июн 22, 2018 12:12 am

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.=')';
}
1 евал опасна и надо рисовать фильтрацию, а то можно такого наговорить что пол системы разнесешь
2 надо предусмотреть несколько вариантов ибо не удобно говорить или писать - умножить делить
3 я рисовал эту штуку только для процентов и минус проценты - все остальное побочка, а в eval ее рисовать надо.
4 ну и уменьшить скрипт можно прилично так как я писал его за чем то для консоли, а не для $matches
fandaymon
Сообщения: 1553
Зарегистрирован: Сб янв 13, 2018 5:00 pm
Благодарил (а): 39 раз
Поблагодарили: 574 раза

Re: чтение RSS + другие скрипты

Сообщение fandaymon » Пт июн 22, 2018 12:55 am

Sas писал(а):
Пт июн 22, 2018 12:12 am
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.=')';
}
1 евал опасна и надо рисовать фильтрацию, а то можно такого наговорить что пол системы разнесешь
2 надо предусмотреть несколько вариантов ибо не удобно говорить или писать - умножить делить
3 я рисовал эту штуку только для процентов и минус проценты - все остальное побочка, а в eval ее рисовать надо.
4 ну и уменьшить скрипт можно прилично так как я писал его за чем то для консоли, а не для $matches
1. Вряд ли получится случайно что-то наговорить, что разнесёт систему. Да и специально тоже маловероятно. Во всяком случае если у тебя есть доступ к системе и желание её разнести, то всё это можно проделать гораздо проще
2. Каждый вариант это всего лишь одна дополнительная строка. А если писать, то можно использовать / и *... Да хоть **2. Без переделок
3. Ну например $com=str_replace('процентов от ','/100*',$com); делов-то...
Ответить