оповещение в телегу

Здесь выкладываем скрипты
Правила форума
Уважаемые Пользователи форума, обратите внимание!
Ни при каких обстоятельствах, Администрация форума, не несёт ответственности за какой-либо, прямой или косвенный, ущерб причиненный в результате использования материалов, взятых на этом Сайте или на любом другом сайте, на который имеется гиперссылка с данного Сайта. Возникновение неисправностей, потерю программ или данных в Ваших устройствах, даже если Администрация будет явно поставлена в известность о возможности такого ущерба.
Просим Вас быть предельно осторожными и внимательными, в использовании материалов раздела. Учитывать не только Ваши пожелания, но и границы возможностей вашего оборудования.
Ответить
-13-
Сообщения: 125
Зарегистрирован: 18 мар 2021, 12:45

Sertik писал(а): 14 сен 2023, 12:57 Кстати, раз Вы это всё делаете для Телеги, то Вы практически создали свою собственную библиотеку скриптов, подобную моей SATELLITE
(viewtopic.php?f=14&t=13648), только лучше !
Вы могли бы поделиться этим с сообществом, если хотите. Ну или сделайте это тогда, когда будете считать работу завершенной на каком-то этапе. Сделайте отдельный топик. Желаю успехов !
Вашу модульность возьму на заметку, может сам перейду на что-то подобное.
может как нибудь осилю установочный скрипт, а пока это просто хобби


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

Хобби хорошее, можно только приветствовать. Главное в этом вопросе - стабильность. Продолжайте, мы радуемся Вашим успехам и желаем дальнейших ! Скриптописателей сейчас мало - настоящие программисты заняты вероятно на основной работе - им некогда. Кто-то появляется, напишет что-нибудь и исчезает в никуда. Так что всегда хорошо, когда в семье есть прибавление. :-):

P/S установочный скрипт это недолго. Раз у Вас все скрипты в репозитории делается просто (мой метод):

пишите маленький установочный скрипт, в котором глобальные настройки и стартап.
сохраняете копию репозитория /system script export file=backup.rsc
Потом удаляете смело все лишние скрипты.
Создаёте нового юзера под именем Вашей будущей биллиотеки.
Заходите под ним.
Каждый скрипт открываете, добавляете пробел и стираете, сохраняете. Он сохранится под owner нового юзера. Ну и комментарий скрипту можно добавить соответствующий.
Затем делаете /system script export file=myScriptLib.rsc
Всё !
Стираете все скрипты и делаете /import file=backup.rsc (это может занять несколько минут, дождитесь successful !)

Когда пользователь сделает на своём роутере /import file=myScriptLib.rsc он увидит все Ваши скрипты под новым owner и ему будет удобно их дифференцировать со своими, а также он увидит и комментарии к ним.

Удачи !


фрагменты скриптов, готовые работы, статьи, полезные приемы, ссылки
viewtopic.php?f=14&t=13947
Brond
Сообщения: 19
Зарегистрирован: 09 фев 2018, 12:03

Добрый день,
Есть скрипт отправки уведомления на почту ip адрес при попадании их в Adress list он работает.
mail

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

:log info message=("Start Sending Report");
:local ipList value="";
:foreach tmpAddress in=[/ip firewall address-list find where dynamic=yes and list=BlackListWinbox] do={
  :set $ipList value=([/ip firewall address-list get $tmpAddress value-name=address]."\r\n".$ipList);
}

:if ($ipList != "") do={
  /tool e-mail send from="mikrotik01@fcom.ru" to="warning@fcom.ru" subject=("BlackListWinbox ".[/system clock get date]." ".[/system clock get time]) body=("Auto-blacklisted host:\r\n".$ipList)
  :log info message=("Sending Report End");
}
Хочу переделать отправку в телеграм, но из-за $ipList сообщение не оправляется.
Telegram

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

:log info message=("Start Sending Report");
:local ipList "";
:local hasEntries false;

:foreach tmpAddress in=[/ip firewall address-list find where dynamic=yes and list=BlackListWinbox] do={
  :set ipList ($ipList . "\r\n" . [/ip firewall address-list get $tmpAddress value-name=address]);
  :set hasEntries true;
}

:if ($hasEntries) do={
  :local messageBody ("List of auto-blacklisted host:\r\n" .$ipList);
  
  /tool fetch url=("https://api.telegram.org/bot1003412305:AAE_XIDNKAXWBYE9J33JААRB0U2FP2LbE/sendmessage?chat_id=-4178532902&text= .$messageBody") mode=https keep-result=no
  :log info message=("Sending Report End");
}
Подскажите пожалуйста где ошибка?


-13-
Сообщения: 125
Зарегистрирован: 18 мар 2021, 12:45

замените в коде

:set $ipList ($ipList . "%0A" . [/ip firewall address-list get $tmpAddress value-name=address]);


Brond
Сообщения: 19
Зарегистрирован: 09 фев 2018, 12:03

Спасибо!
Исправленый код

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

:log info message=("Start Sending Report");
:local ipList "";
:local hasEntries false;

:foreach tmpAddress in=[/ip firewall address-list find where dynamic=yes and list=BlackListWinbox] do={
  :set $ipList ($ipList . "%0A" . [/ip firewall address-list get $tmpAddress value-name=address]);
  :set hasEntries true;
}

:if ($hasEntries) do={
  :local messageBody ("List of auto-blacklisted host:%0A" .$ipList);
  
  /tool fetch url=("https://api.telegram.org/bot1003412305:AAE_XIDNKAXWBYE9J33JААRB0U2FP2LbE/sendmessage?chat_id=-4178532902&text= .$messageBody") mode=https keep-result=no
  :log info message=("Sending Report End");
}
}


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

Если убрать всё ненужное, то получится так:

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

:log info "Start Sending Report"
:local ipList
:local hasEntries false

:foreach tmpAddress in=[/ip firewall address-list find where dynamic=yes and list=BlackListWinbox] do={
  :set $ipList ($ipList . "%0A" . [/ip firewall address-list get $tmpAddress address])
  :set hasEntries true
}

:if ($hasEntries) do={
  :local messageBody ("List of auto-blacklisted host:%0A" .$ipList)
  
  /tool fetch url=("https://api.telegram.org/bot1003412305:AAE_XIDNKAXWBYE9J33JААRB0U2FP2LbE/sendmessage?chat_id=-4178532902&text= .$messageBody") mode=https keep-result=no
  :log info "Sending Report End"
}
}


фрагменты скриптов, готовые работы, статьи, полезные приемы, ссылки
viewtopic.php?f=14&t=13947
Brond
Сообщения: 19
Зарегистрирован: 09 фев 2018, 12:03

Работает, спасибо!


Ответить