К этому скрипту парсер Чупакабры ничего не добавит. Я прислал его на будущее. Когда нужно парсить JSON не стоит уже изобретать велосипед и выискивать информацию командами :find, вырезая куски :peek и т.д... Если, конечно нужно найти в JSON ответе один - два параметра, можно обойтись и своими силами ... А когда JSON возвращает много нужных данных - парсер Чупакабры незаменимая вещь. Ни о чём не надо думать - подсовываешь парсеру JSON, получаешь отпарсенный ключевой массив данных.
устранил проблему с повторным исполнением скрипта
Спасибо, всем пригодиться. Ткните носом где эта проблема была в тексте скрипта (для повышения образованности).
По поводу функций. Функция отличается от процедуры тем, что может иметь аргументы и может возвращать результат своей работы. Смотрите. Ваш парсер отлично справляется с исполнением скриптов чьи имена совпадают с пересланными на исполнение. Например посылаем /reboot. Если в репозитории роутера есть скрипт с таким именем - парсер его найдет и выполнит. А как быть, если есть функция ? У которой может быть N-ное число параметров и которая может вернуть результат своей работы в точку из которой она вызвана ?
Общая запись вызова функции, заранее размещенной в репозитории роутера такая [$FuncName var1=val1, var2=var2 ...].
Параметры функций (var) могут быть именованными и не содержать имен, тогда имеет значение их порядок 1,2,3 и т.д...
Для использования функции она должна быть объявлена переменной глобал, а потом вызвана.
:global $FuncName; [$FuncName var1=val1, var2=var2 ...]
Функция может вернуть результат своей работы, с помощью команды :return, в виде числа, строки, массива и т.д... то есть данных любого типа.
:global $FuncName; local answer [$FuncName var1=val1, var2=var2 ...]
В переменной answer будет результат.
Да ещё и надо понимать, что функция может быть аргументом другой функции, а также в РоутерОс поддерживается рекурсивный вызов функций ...
Честно говоря, реализация поддержки функций в Телеграмм-парсере представляется очень сложным, а может и не возможным делом. Возможно проще наделать скриптов с разными именами, содержащих разные значения нужных параметров и запускать их как процедуры. Возврат значений представляется вообще не реализуемой задачей ....
Наверное, я переборщил с вопросом о возможности реализации подержки функций в парсере Телеграмм - ну их к шуту, можно вполне без них обойтись ...