Помощь со скриптами

Здесь выкладываем скрипты
Sertik
Сообщения: 892
Зарегистрирован: 15 сен 2017, 09:03

23 июн 2020, 15:57

# тут вставите отправку сообщения в Вашу телегу
/tool fetch url="https://api.telegram.org/botxxxxxxxxx/s ... xxxx&text=[:tostr $listaddress]"

Вот сюда. Так может не сработать, тогда делаем так:

:local smstext [:tostr $listaddress]
/tool fetch url="https://api.telegram.org/botxxxxxxxxx/s ... t=$smstext"


Чего не знаем то нагуглим
keyrus
Сообщения: 10
Зарегистрирован: 22 июн 2020, 10:34

25 июн 2020, 16:15

Sertik писал(а):
23 июн 2020, 15:57

:local smstext [:tostr $listaddress]
/tool fetch url="https://api.telegram.org/botxxxxxxxxx/s ... t=$smstext"
Работает, но как добавить текстовый комментарий к выводимому тексту, так что бы он не отправлялся каждый раз когда запускается скрипт, а только вместе с адресами.
Будет ли работать if в таком скрипте?


Sertik
Сообщения: 892
Зарегистрирован: 15 сен 2017, 09:03

26 июн 2020, 12:29

:if конечно работать будет.

Перед отправкой надо проверить были ли добавлены в адрес-лист новые адреса ...

В Вашем случае пишем так:

:if ([:len $listaddress]>0) do={ :local smstext [:tostr $listaddress]; /tool fetch url="https://api.telegram.org/botxxxxxxxxx/s ... t=("Добавлены новые адреса: "."$smstext")
}

Тогда отправка будет "с комментарием" и работать только когда новый адрес добавлен.

Ну всё, разжевал, кажется, осталось только проглотить :-)


Чего не знаем то нагуглим
keyrus
Сообщения: 10
Зарегистрирован: 22 июн 2020, 10:34

30 июн 2020, 15:13

Sertik писал(а):
26 июн 2020, 12:29
:if конечно работать будет.

Перед отправкой надо проверить были ли добавлены в адрес-лист новые адреса ...

В Вашем случае пишем так:

:if ([:len $listaddress]>0) do={ :local smstext [:tostr $listaddress]; /tool fetch url="https://api.telegram.org/botxxxxxxxxx/s ... t=("Добавлены новые адреса: "."$smstext")
}

Тогда отправка будет "с комментарием" и работать только когда новый адрес добавлен.

Ну всё, разжевал, кажется, осталось только проглотить :-)

Собственно я пытался делать через if но у меня не получилось, и это тоже не отрабатываетИзображение

После вставки if перестало работать, как и у меня когда я пытался дописать сам, по этому и задал вопрос про оператор if.

Я так же сравнивал len $listaddress и ничего не происходило, даже комментарий не дописывается.


Sertik
Сообщения: 892
Зарегистрирован: 15 сен 2017, 09:03

30 июн 2020, 17:43

Покажите Ваш скрипт целиком. Я не гадалка, не могу знать где ошибка у Вас.


Чего не знаем то нагуглим
keyrus
Сообщения: 10
Зарегистрирован: 22 июн 2020, 10:34

01 июл 2020, 09:30

Sertik писал(а):
30 июн 2020, 17:43
Покажите Ваш скрипт целиком. Я не гадалка, не могу знать где ошибка у Вас.

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

:local listaddress [:toarray ""]
:local myaddresslist "test"
:local mycomment "old"

:foreach i in=[/ip firewall address-list find where list=$myaddresslist] do={:if ([:len [/ip firewall address-list get $i comment]]=0) do={
:set listaddress [:put ($listaddress, [/ip firewall address-list get $i address])]
/ip firewall address-list set $i comment=$mycomment}};


:log info $listaddress

:log info [:len $listaddress]

:if ([:len $listaddress]>0) do={ :local smstext [:tostr $listaddress]; 
/tool fetch url="https://api.telegram.org/bot11111111:aaaaaaaaaaaaaaaaaaa/sendMessage\?chat_id=-111111111111&text=("add new addres: "."$smstext")" }


Аватара пользователя
Virtue
Сообщения: 34
Зарегистрирован: 07 мар 2014, 10:17

01 июл 2020, 13:07

keyrus писал(а):
01 июл 2020, 09:30
скрипт
позволю себе вмешаться в диалог, поигрался с синтаксисом, попробуйте так:

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

:local listaddress [:toarray ""]
:local myaddresslist "test"
:local mycomment "old"

:foreach i in=[/ip firewall address-list find where list=$myaddresslist] do={:if ([:len [/ip firewall address-list get $i comment]]=0) do={
:set listaddress [:put ($listaddress, [/ip firewall address-list get $i address])]
/ip firewall address-list set $i comment=$mycomment}};


:log info $listaddress

:log info [:len $listaddress]

:if ([:len $listaddress]>0) do={ :local smstext [:tostr $listaddress]; 
/tool fetch url="https://api.telegram.org/bot11111111:aaaaaaaaaaaaaaaaaaa/sendMessage\?chat_id=-111111111111&text= add new addres: $smstext" }


keyrus
Сообщения: 10
Зарегистрирован: 22 июн 2020, 10:34

01 июл 2020, 13:27

Virtue писал(а):
01 июл 2020, 13:07
keyrus писал(а):
01 июл 2020, 09:30
скрипт
позволю себе вмешаться в диалог, поигрался с синтаксисом, попробуйте так:

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

:local listaddress [:toarray ""]
:local myaddresslist "test"
:local mycomment "old"

:foreach i in=[/ip firewall address-list find where list=$myaddresslist] do={:if ([:len [/ip firewall address-list get $i comment]]=0) do={
:set listaddress [:put ($listaddress, [/ip firewall address-list get $i address])]
/ip firewall address-list set $i comment=$mycomment}};


:log info $listaddress

:log info [:len $listaddress]

:if ([:len $listaddress]>0) do={ :local smstext [:tostr $listaddress]; 
/tool fetch url="https://api.telegram.org/bot11111111:aaaaaaaaaaaaaaaaaaa/sendMessage\?chat_id=-111111111111&text= add new addres: $smstext" }
Так работает, спасибо


keyrus
Сообщения: 10
Зарегистрирован: 22 июн 2020, 10:34

01 июл 2020, 13:28

Sertik писал(а):
30 июн 2020, 17:43
Покажите Ваш скрипт целиком. Я не гадалка, не могу знать где ошибка у Вас.
Совестными усилиями доковыряли, спасибо
:ya_hoo_oo:


Sertik
Сообщения: 892
Зарегистрирован: 15 сен 2017, 09:03

01 июл 2020, 21:56

Ну слава богу ! Я опоздал, но товарищи выручили ...


Чего не знаем то нагуглим
Ответить