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

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

22 июл 2020, 12:55

Кто не планирует использовать мои скрипты с именами "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

31 июл 2020, 14:20

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


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

01 авг 2020, 22:16

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


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

01 авг 2020, 22:28

добавляю весьма полезный скрипт, особенно для тех кто пробует впервые все настроить, но у него не получается, зачастую такое бывает из-за засоренности чата, скрипт чистит чат, запускаем его вручную многократно с периодичностью в несколько секунд и проверяем глобальную переменную /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
Сообщения: 44
Зарегистрирован: 07 мар 2014, 10:17

06 авг 2020, 18:22

обновленный скрипт 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
Сообщения: 44
Зарегистрирован: 07 мар 2014, 10:17

11 авг 2020, 23:00

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


Ответить