управление с телеги

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

Кто не планирует использовать мои скрипты с именами "log_print" и "ping", можно вырезать из основного скрипта "Telegram" часть кода:

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

          :if ($ScriptName = "log_print") do={
            :local startLoc1 ([:find $message "log_print"] +10)
            :local endLoc1 ([:find $message "log_print"] +12)
            :global logs
            :set logs [:pick $message $startLoc1 $endLoc1]
          }
          if ($ScriptName = "ping") do={
            :local startLoc2 ([:find $message "ping"] +5)
            :local endLoc2 ([:find $message "ping"] +20)
            :global pingaddr
            :set pingaddr [:pick $message $startLoc2 $endLoc2]
          }
Тут идет проверка на наличие как раз этих скриптов, либо если не используется какой-то один из них, то вырезаем код от ":if" до "}"
Это конечно делать не обязательно, но всетаки лучше будет убрать всё лишнее..


miner98
Сообщения: 1
Зарегистрирован: 31 июл 2020, 14:16

а случаем не пробовали отправлять графики daily, weakly, cpu и тд. ?


hAP ac2, hAP ac, RB951Ui-2HnD
Аватара пользователя
Virtue
Сообщения: 142
Зарегистрирован: 07 мар 2014, 10:17

miner98 писал(а): 31 июл 2020, 14:20 а случаем не пробовали отправлять графики daily, weakly, cpu и тд. ?
с графиками пока не заморачивался


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

добавляю весьма полезный скрипт, особенно для тех кто пробует впервые все настроить, но у него не получается, зачастую такое бывает из-за засоренности чата, скрипт чистит чат, запускаем его вручную многократно с периодичностью в несколько секунд и проверяем глобальную переменную /system/scripts/environment/content пока в ее содержимом не останется только
{"ok":true,"result":[]}
после данной процедуры зачастую скрипт управления с телеграм начинает работать

telega_clean

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

:local botID "bot1000099999:AAAAx0xXxxXXXXx_XXX0xXxX0XxxXxxXxxx"
:local chatID "-990009999"

:global content [/tool fetch url=("https://api.telegram.org/".$botID."/getUpdates") as-value output=user]
:set content ($content ->"data")

:if ([:len $content] > 23 ) do={

  :local startLoc  [:find $content "update_id" -1 ]
  :set startLoc ( $startLoc + 11 )
  :local endLoc [:find $content "," $startLoc]
  :local messageId ([:pick $content $startLoc $endLoc] + (1))

  :set startLoc  [:find $content "text" -1 ]
  :set startLoc ( $startLoc  + 7 )
  :set endLoc [:find $content "," ($startLoc)]
  :set endLoc ( $endLoc - 1 )
  :local message [:pick $content ($startLoc + 1) $endLoc]

  :set startLoc  [:find $content "chat" -1 ]
  :set startLoc ( $startLoc + 12 )
  :set endLoc [:find $content "," $startLoc]
  :local chatId ([:pick $content $startLoc $endLoc])

        :tool fetch keep-result=no url=("https://api.telegram.org/".$botID."/getUpdates?offset=$messageId")
}


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

обновленный скрипт telega_clean теперь достаточно один раз запустить и подождать пока глобальная переменная content не примет вид
{"ok":true,"result":[]}
можно применять при каждом засоре чата команд

telega_clean

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

:local botID "bot1000099999:AAAAx0xXxxXXXXx_XXX0xXxX0XxxXxxXxxx"

:global content [/tool fetch url=("https://api.telegram.org/".$botID."/getUpdates") as-value output=user]
:set content ($content ->"data")

while ([:len $content] > 23 ) do={
  :local startLoc  [:find $content "update_id" -1 ]
  :set startLoc ( $startLoc + 11 )
  :local endLoc [:find $content "," $startLoc]
  :local messageId ([:pick $content $startLoc $endLoc] + (1))
  :tool fetch keep-result=no url=("https://api.telegram.org/".$botID."/getUpdates?offset=$messageId")
  :delay 3
}


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

Отредактировал основной пост, изменил ссылку на инструкцию по созданию бота (по старой был упущен важный момент, а именно ни слова не было про то, что необходимо создать группу и добавить туда своего бота, в этой группе и будет происходить общение с ботом). Это действие также необходимо, чтобы получить айди чата.


niks200
Сообщения: 9
Зарегистрирован: 21 ноя 2020, 22:04

скажите, а чатайди он проверяет на валидность перед выполнением?


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

niks200 писал(а): 21 ноя 2020, 22:12 скажите, а чатайди он проверяет на валидность перед выполнением?
не совсем понял о какой валидности идет речь, но в скрипте присутствует строка проверки чата айди


niks200
Сообщения: 9
Зарегистрирован: 21 ноя 2020, 22:04

Да, это и имелось ввиду
Отличный скрипт! Попробовал - то что доктор прописал!
Сейчас думаю как написать скрипт, который можно запустить с телеги, чтобы он вкл или выкл. скрипты с периодическим запуском (вроде как шедуллером управлять удаленно)


Аватара пользователя
podarok66
Модератор
Сообщения: 4355
Зарегистрирован: 11 фев 2012, 18:49
Откуда: МО

niks200 писал(а): 23 ноя 2020, 00:02 Сейчас думаю как написать скрипт, который можно запустить с телеги, чтобы он вкл или выкл. скрипты с периодическим запуском (вроде как шедуллером управлять удаленно)
Там и думать нечего. Такие вещи без раздумий делаются. Команда в терминале выглядит примерно так:

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

/system scheduler set [find name=backup] disabled=yes


Мануалы изучил и нигде не ошибся? Фаервол отключил? Очереди погасил? Витая пара проверена? ... Тогда Netinstal'ом железку прошей и настрой ее заново. Что, все равно не фурычит? Тогда к нам. Если не подскажем, хоть посочувствуем...
Ответить