Телеграмма для Mikrotik...

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

Я понял в чем проблема. В группе нужно настроить права для пользователей. Я об этом в видео про установку говорил.
Пользователям в группе нужно убрать какие-нибудь права, а лучше все. Тогда группа из обычной преобразуется в супергруппу и получит префикс -100.
Спасибо большое, с этим я разобрался.

Если не трудно объясните как сделать кнопку по типу " Check for update"
Чтоб при нажатии исчезали другие кнопки и показывалось нужное меню.


Аватара пользователя
Brook
Сообщения: 127
Зарегистрирован: 24 май 2022, 00:29

Apollo22 писал(а): 07 дек 2022, 13:40
Спасибо большое, с этим я разобрался.

Если не трудно объясните как сделать кнопку по типу " Check for update"
Чтоб при нажатии исчезали другие кнопки и показывалось нужное меню.
У бота есть функция teEditMessageReplyMarkup.

Она заменяет существующую клавиатуру на новую. Ее описание есть в первом посте.


Аватара пользователя
Brook
Сообщения: 127
Зарегистрирован: 24 май 2022, 00:29

Друзья, опубликовал код бота с модулями Users и PPP.
Последний раз редактировалось Brook 08 янв 2023, 14:40, всего редактировалось 1 раз.


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

А ссылочку на скачивание ?


фрагменты скриптов, готовые работы, статьи, полезные приемы, ссылки
viewtopic.php?f=14&t=13947
Apollo22
Сообщения: 21
Зарегистрирован: 05 ноя 2022, 21:27

Добрый день.
Столкнулся с проблемой добавления дополнительного меню.

Добавляю в файл teRootMenu.rsc строку с кнопкой -
:local pictGwStatusInfo "\55\2B\31\46\33\31\30"
:local buttonGwStatusInfo [$teBuildButton fPictButton=$pictScripts
fTextButton=" Internet Status"
fTextCallBack="teCallbackRootMenu,GwStatusInfo"]

Создаю дополнительный файл с названием teGwStatusInfo.rsc (За основу взял -
teModules.rsc)

Инсталлирую на Mikrotik бот работает, кнопка появилась но при нажатии
ничего не происходит.
Если не трудно подскажите куда копать.
Заранее благодарен и не судите строго)))


Аватара пользователя
Brook
Сообщения: 127
Зарегистрирован: 24 май 2022, 00:29

Похоже, что уже ответил на этот вопрос в Телеграме, но можно продублировать и здесь.

При добавлении своих модулей в главное меню, не забывайте добавлять команду запуска в модуль teCallbackRootMenu


Аватара пользователя
Brook
Сообщения: 127
Зарегистрирован: 24 май 2022, 00:29

Оставлю это здесь тоже, может кому пригодится... Это сообщение с моего канала.

Друзья, есть мысли открыть код модуля DHCP. Только есть одно Но...

Этот модуль разрабатывался первым, на нём обкатывались все технологии и вообще концепция - Запись в таблице, как карточка в групповом чате. На нем и сейчас тестируются разные фичи.

Например он может работать с динамическими записями в DHCP Lease. В первой версии это было проблемой, потому что информация о записи, в том числе и messageID, хранится в поле Комментарий.

В этом модуле, информация о динамических записях хранится в отдельном массиве. И при удалении такой записи, карточка в группе меняет состояние, а вместо клавиатуры появляется одна кнопка Waiting. Если нажать, то бот предложит удалить запись.

Как следует протестировать всё я не успел, поэтому предлагаю открыть код последней версии для тестов. Очень желательно получить обратную связь, чтобы пофиксить баги.

Код уже открыт...


Аватара пользователя
Brook
Сообщения: 127
Зарегистрирован: 24 май 2022, 00:29

Друзья, относительно недавно написал еще одного бота, который работает на Mikrotik Script.

Это публичный бот и работает как сервис. Вот ссылка https://t.me/xgeoBot.
Буду очень признателен, если сообщество им немного попользуется, чтобы я мог отловить баги.

В очередной раз убеждаюсь, что Микротик очень мощный инструмент... Может быть кто-то тоже захочет создать что-то подобное, буду рад помочь в этом.
Есть еще мысли, что можно создать на этой базе, но об этом потом.

Вот канал сервиса https://t.me/geobotinfo


Apollo22
Сообщения: 21
Зарегистрирован: 05 ноя 2022, 21:27

Приветствую всех.

Так как с версии OS 7.9 поменялся формат вывода даты с (aug/10/2023) на (2023-08-10),
я придумал решение которое будет работать при обоих форматах.
Понимаю что решение не очень но оно работает :-):

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

:global teGetDate
:if (!any $teGetDate) do={ :global teGetDate do={

    :local date
	:local tmpdate [/system clock get date]
	:local dateformat
	:local tpmpformat [:pick $tmpdate 4]
	:if ($tpmpformat = 1) do={:set dateformat 0} else={:set dateformat 1}
	:if ($dateformat = 0) do={
    :local months {"jan"=1; "feb"=2; "mar"=3; "apr"=4; "may"=5; "jun"=6; "jul"=7; "aug"=8; "sep"=9; "oct"=10; "nov"=11; "dec"=12}
    :local tmpm ($months -> [:pick $tmpdate 0 3])
    :if ($tmpm < 10) do={:set tmpm ("0".$tmpm)
	}
    :return (([:pick $tmpdate 7 11]).".".$tmpm.".".([:pick $tmpdate 4 6]))
	} else={
    :if ($dateformat > 0) do={
        :return ([:pick $tmpdate 0 4].".".[:pick $tmpdate 5 7].".".[:pick $tmpdate 8 10])
    }
	}

  }
}


Аватара пользователя
Brook
Сообщения: 127
Зарегистрирован: 24 май 2022, 00:29

Apollo22 писал(а): 10 авг 2023, 11:50 Приветствую всех.

Так как с версии OS 7.9 поменялся формат вывода даты с (aug/10/2023) на (2023-08-10),
я придумал решение которое будет работать при обоих форматах.
Понимаю что решение не очень но оно работает :-):
 Code

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

:global teGetDate
:if (!any $teGetDate) do={ :global teGetDate do={

    :local date
	:local tmpdate [/system clock get date]
	:local dateformat
	:local tpmpformat [:pick $tmpdate 4]
	:if ($tpmpformat = 1) do={:set dateformat 0} else={:set dateformat 1}
	:if ($dateformat = 0) do={
    :local months {"jan"=1; "feb"=2; "mar"=3; "apr"=4; "may"=5; "jun"=6; "jul"=7; "aug"=8; "sep"=9; "oct"=10; "nov"=11; "dec"=12}
    :local tmpm ($months -> [:pick $tmpdate 0 3])
    :if ($tmpm < 10) do={:set tmpm ("0".$tmpm)
	}
    :return (([:pick $tmpdate 7 11]).".".$tmpm.".".([:pick $tmpdate 4 6]))
	} else={
    :if ($dateformat > 0) do={
        :return ([:pick $tmpdate 0 4].".".[:pick $tmpdate 5 7].".".[:pick $tmpdate 8 10])
    }
	}
  }
}
Не совсем понял вот это

:local tpmpformat [:pick $tmpdate 4]
:if ($tpmpformat = 1) ...

Получается проверяем есть ли на этом месте в строке 1? А если там другая дата?

Наверное надо искать символ "/" и по нему определять формат даты?


upd: Пардон посмотрел не на ту дату. Наверное надо искать символ "-"

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

:local tmpdate [system/clock/get date]; 
:local tpmpformat [:pick $tmpdate 4]; 
:if ($tpmpformat = "-") do={...}


Ответить