.. _interpreter_events: Обработка внутренних событий в интерпретаторе --------------------------------------------- В скрипте интерпретатора есть возможность обработать события Synergy :ref:`event-integration`. В скрипте доступна переменная `message`, которая является объектом с двумя полями: * `content` - строка, содержащая тело сообщения; * `props` - map, содержащий значения свойств сообщения. Добавим новый скрипт интерпретатора в Synergy IDE .. figure:: ../../_static/img/interpreter/interpreter_example.png :scale: 50% В нашем случае скрипт будет выполняться при генерировании события добавления комментария в документ`event.comment.document.add`. В скрипте пропишем код, который будет выводить в лог значения параметров события. .. code-block:: js console.error("content {}", message.content); console.error("props {}", message.props); /*добавим значение в map*/ message.props.put("test", "test"); console.error("values {}", message.props.values()); var keys = message.props.keySet().toArray(); console.error("========================"); for (let i = 0; i < keys.length; i++) { console.error("{} - {}", keys[i], message.props.get(keys[i])); } .. figure:: ../../_static/img/interpreter/interpreter_example1.png :scale: 50% В результате выполнения скрипта при добавлении комментария в документ будут строки в логе: .. code-block:: bash 12:25:57,592 ERROR [interpreter.event.comment.document.add] (...) content c0f39795-83c5-4f70-9043-b5dc8cec1e54 12:25:57,592 ERROR [interpreter.event.comment.document.add] (...) props {api_event=event.comment.document.add, JMSXDeliveryCount=1, documentID=759edb82-590b-40dd-ab62-620320937790, userID=1} 12:25:57,593 ERROR [interpreter.event.comment.document.add] (...) values [event.comment.document.add, 1, 759edb82-590b-40dd-ab62-620320937790, 1, test] 12:27:50,932 ERROR [interpreter.event.comment.document.add] (...) ======================== 12:25:57,593 ERROR [interpreter.event.comment.document.add] (...) api_event - event.comment.document.add 12:25:57,594 ERROR [interpreter.event.comment.document.add] (...) JMSXDeliveryCount - 1 12:25:57,594 ERROR [interpreter.event.comment.document.add] (...) documentID - 759edb82-590b-40dd-ab62-620320937790 12:25:57,595 ERROR [interpreter.event.comment.document.add] (...) userID - 1 12:25:57,595 ERROR [interpreter.event.comment.document.add] (...) test - test *Логика* Если у названия скрипта префикс указанный в настройках, то он запускается по-старому (ожидая dataUUID, разблокировывая процессы и т.д.) В остальных случаях выполняется запуск скрипта. Это примерно то же, что и при тестовом запуске, только с проставленными свойствами из сообщения. Название скрипта должно совпадать с событием Synergy, например, ``event.comment.document.add``