Страница 4 из 4

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

Добавлено: Вс июл 01, 2018 2:30 pm
Sas
Обновил скрипт анекдотов в блоге и выложил скрипт текст в цифры
Анекдоты теперь умеют: "расскажи 5 анекдотов" для пяти анекдотов или "расскажи анекдот" для одного
просто лень постоянно говорить расскажи анекдот или повтори для следующего анекдота :mrgreen:

Ссылка на блог

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

Добавлено: Вс окт 13, 2019 8:58 am
vitosmaxim80sad145
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 всё-таки гораздо короче реализуется

http://majordomo.smartliving.ru/forum/v ... =30#p82156

Более того - всякие дополнительные действия типа синуса или корня квадратного добавляются парой строчек

if (strpos($com,'квадратный корень из ')!== false) {
$com=str_replace('квадратный корень из','sqrt(',$com);
$com.=')';
}

пробовал и длинный калькулятор и по ссылке но не работают
создал шаблон сколько будет (.+) с кодом
08:45 Алиса: Ok, I'll remind you to 2+ 2
08:45 : 2+2

а если на компе пишеш 2 + 2 то отправляет2,2
08:56 Алиса: Ok, I'll remind you to 2 , 2
08:56 Виталий: 2 , 2

что не так

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

Добавлено: Вт окт 15, 2019 9:47 pm
vitosmaxim80sad145
А кто знает как сделать сцену чтобы можно было прочитать новость которую озвучила Алиса если заинтересовал заголовок

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

Добавлено: Вт окт 15, 2019 10:13 pm
xor
vitosmaxim80sad145 писал(а):
Вт окт 15, 2019 9:47 pm
А кто знает как сделать сцену чтобы можно было прочитать новость которую озвучила Алиса если заинтересовал заголовок
а как узнать, какой заголовок Алису заинтересовал? так то делай свойство, пиши туда интересную новость и это свойство выводи

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

Добавлено: Вт окт 15, 2019 10:26 pm
vitosmaxim80sad145
xor писал(а):
Вт окт 15, 2019 10:13 pm
vitosmaxim80sad145 писал(а):
Вт окт 15, 2019 9:47 pm
А кто знает как сделать сцену чтобы можно было прочитать новость которую озвучила Алиса если заинтересовал заголовок
а как узнать, какой заголовок Алису заинтересовал? так то делай свойство, пиши туда интересную новость и это свойство выводи

Ну не Алису заинтересовал а меня :) и я спрашивал как сделать сцену чтобы когда Алиса читает заголовок на сцене писало новость ?

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

Добавлено: Вт окт 15, 2019 10:33 pm
xor
vitosmaxim80sad145 писал(а):
Вт окт 15, 2019 10:26 pm

Ну не Алису заинтересовал а меня :) и я спрашивал как сделать сцену чтобы когда Алиса читает заголовок на сцене писало новость ?
https://kb.mjdm.ru/rss_channels_help/?u ... annelsHelp Читали?
оттуда
$params['TITLE'] -- заголовок новости
$params['BODY'] -- тело новости

ну вот боди и выводите в свойство и на сцену

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

Добавлено: Чт янв 23, 2020 5:52 pm
Garik908
Sas писал(а):
Вс июл 01, 2018 2:30 pm
Обновил скрипт анекдотов в блоге и выложил скрипт текст в цифры
Анекдоты теперь умеют: "расскажи 5 анекдотов" для пяти анекдотов или "расскажи анекдот" для одного
просто лень постоянно говорить расскажи анекдот или повтори для следующего анекдота :mrgreen:

Ссылка на блог
Можно про анедоты более подробно. Как куда и что... Пожалуйста, хочу слушать анекдоты.

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

Добавлено: Пт янв 24, 2020 11:58 am
Garik908
xor писал(а):
Пт июн 15, 2018 1:19 am
При запуске
runScript('anekdot',array('UPDATE'=>TRUE));

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

$r=read_a();
if ( empty($r)){
sayReply("Новых анекдотов нет, обновляю список",10);
 update_a();
 read_a();
}elseif($params['UPDATE']){
 update_a(); // сюда попадаем при 'UPDATE'=>TRUE
}else{
 sayReply("$r",10); // чтобы посмеяться надо сюда
}
ведь только обновление идет.
Попробуйте
runScript('anekdot',array('UPDATE'=>FALSE));
или просто
runScript('anekdot');
Добрый день! При runScript('anekdot'); выпадает это: Warning: Illegal string offset 'UPDATE' in C:\_majordomo\htdocs\modules\scripts\scripts.class.php(159) : eval()'d code on line 34. с чем это связано? ( У меня вин7) Если вручную нажать, запустить на скрип, то то же эта ошибка. А при runScript('anekdot',array('UPDATE'=>FALSE)); то пока нормально.